CoolFace
Modelpublic

briox/diarization-js-community-1

sourceHugging Facemitupdated 5mo agoView on Hugging Face
0likes
Model Card

diarization-js · community-1 artifacts

ONNX-exported model weights and PLDA parameters bundled for the `diarization-js` JavaScript library — a port of pyannote/speaker-diarization-community-1 that runs fully in the browser (WebGPU / WASM) or in Node, no Python required.

⚠️ This repository hosts artifacts only (model files). The pipeline code lives in the npm package diarization-js.

Live demo

'test a full scale demo in browser'

Contents

FileSizePurposeOriginLicense
segmentation-3.0.onnx~6 MBPowerset multi-label segmentation backbone`pyannote/segmentation-3.0`MIT
embedding-resnet34.onnx~26 MBResNet34 speaker embedding extractor`pyannote/wespeaker-voxceleb-resnet34-LM`CC-BY-4.0
plda-params-vbx.json~1 MBPLDA parameters for VBx clustering`pyannote/pyannote-audio`MIT

These three files are functionally equivalent to the upstream pyannote/speaker-diarization-community-1 pipeline at the time of export. Validated end-to-end against the Python reference (DER = 1.73% on VoxConverse v0.3 dev).

Usage

Install the runtime:

bash
npm install diarization-js onnxruntime-web   # browser
npm install diarization-js onnxruntime-node  # Node

Load and run:

ts
import * as ort from "onnxruntime-web/webgpu";
import { DiarizationPipeline, ensureArtifacts } from "diarization-js";

const artifacts = await ensureArtifacts(); // fetches this repo, caches
const pipeline = await DiarizationPipeline.load({
  ort,
  ...artifacts,
});

const result = await pipeline.run(float32Audio16k);
console.log(result.segments);

In Node the artifacts are cached on disk under ~/.cache/diarization-js/. In the browser the HTTP cache (max-age headers from huggingface.co) handles deduplication — first load fetches ~33 MB, subsequent loads are local.

Self-hosting

The library never hard-requires huggingface.co. Pass any base URL that serves the same three filenames to ensureArtifacts({ source: "..." }), or load the bytes yourself and pass them directly to DiarizationPipeline.load.

Citing

If you use this package in academic work, please cite the upstream pyannote.audio papers:

bibtex
@inproceedings{Bredin2023,
  title={pyannote.audio 2.1 speaker diarization pipeline},
  author={Bredin, Hervé},
  booktitle={Interspeech},
  year={2023}
}

License

  • Code (diarization-js npm package): MIT
  • Weights in this repository: see per-file table above. Redistributed here under the upstream licenses; original copyright holders retain their rights.