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) into
hierarchical word paths like chalk.fjord.bismuth.elm.
Use with 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
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.