--- license: mit library_name: voxpath tags: - speaker-recognition - quantizer - voxpath - pyannote --- # voxpath quantizer Trained HierarchicalHashQuantizer (18 bits grouped into 6 display words of vocab size 8) that maps L2-normalized 192-dim speaker embeddings from [`PalabraAI/redimnet2 (b6-vox2-lm, 192-dim, via torch.hub)`](https://huggingface.co/PalabraAI/redimnet2 (b6-vox2-lm, 192-dim, via torch.hub)) into hierarchical word paths like `chalk.fjord.bismuth.elm`. Use with [`voxpath`](https://github.com/DJRHails/voxpath) to assign LM-readable speaker identities for diarization + transcription pipelines. ## Files - `voxceleb+librispeech+commonvoice+voices.redimnet2-b6.hierarchical-hash.quantizer.json` — fitted quantizer state (0.1 MB). ## Training corpus Trained on unique English-speaking speakers from VoxCeleb 2 + LibriSpeech + CommonVoice EN (HF streaming builds via `voxpath corpus build`), each utterance ≥3 s, embedded with ReDimNet2-B6 (vox2, large-margin), L2-normalized. ## Loading ```python from huggingface_hub import hf_hub_download from voxpath.hashing import HierarchicalHashQuantizer path = hf_hub_download( "DJRHails/voxpath-hierarchical-hash-redimnet2-b6", "voxceleb+librispeech+commonvoice+voices.redimnet2-b6.hierarchical-hash.quantizer.json", ) quantizer = HierarchicalHashQuantizer.load(path) # Then, given a pyannote/embedding output `embedding` (shape (192,)): voxpath = quantizer.quantize(embedding) print(voxpath.to_tag()) # e.g. SPEAKER:halite.rill.bismuth.elm ``` ## Why model-and-embedder-specific Speaker embeddings don't translate across embedders — a quantizer fitted on `pyannote/embedding` outputs has no meaning for embeddings from `wespeaker`, `ECAPA-TDNN`, or anything else. The repo name pins both the quantizer family (HierarchicalHashQuantizer) and the embedding model so users find the right artifact at a glance.