You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Provenance and licence of the legacy pyannote_segmentation / wespeaker_v2 diarizer models #1010
We use FluidAudio (at 20d4f0bd) in a paid macOS app for dictation and meeting transcription. For speaker voiceprints we call DiarizerModels.download() and DiarizerManager.extractSpeakerEmbedding(from:), which fetch and run pyannote_segmentation.mlmodelc and wespeaker_v2.mlmodelc from FluidInference/speaker-diarization-coreml. The models are downloaded at runtime from Hugging Face; we do not ship them in our installer.
The model repository's NOTICE.md and README.md say these legacy files are outside the Community-1 licence scope and that their source and licensing must be evaluated separately. #927 covered the Community-1 artifacts; this is the same question for the legacy ones, which are still what DiarizerModels downloads by default.
Could you clarify:
Upstream checkpoints. Which checkpoints (name and revision) were converted into pyannote_segmentation.mlmodelc and wespeaker_v2.mlmodelc? Our guess is pyannote/segmentation-3.0 (MIT) and pyannote/wespeaker-voxceleb-resnet34-LM (CC-BY-4.0). The metadata only records the toolchain (torch 2.6.0, coremltools 8.3.0), and the generated class name of wespeaker_v2 is wespeaker_int8, so we cannot tell which checkpoint and quantisation it comes from.
Licence. Under what licence does Fluid Inference publish these two converted files, and may a commercial app download and run them?
Way forward. If the legacy pair cannot be cleared, do you plan to move DiarizerModels to the Community-1 Embedding + FBank artifacts? Is there, or will there be, an API to get a single speaker embedding from those, as extractSpeakerEmbedding(from:) does today? We assume their vectors are not compatible with those from wespeaker_v2, so our users would have to rebuild their saved voiceprints. Please correct us if that is wrong.
Your guess is right: by output parity on AMI, pyannote_segmentation is pyannote/segmentation-3.0 (MIT) and wespeaker_v2 is pyannote/wespeaker-voxceleb-resnet34-LM (CC-BY-4.0) with 8-bit palettized weights, so commercial download and use is fine with attribution; NOTICE.md now documents this (7eab74f3). The community-1 Embedding produces near-identical vectors (cosine ≈ 0.998 vs wespeaker_v2), so saved voiceprints should carry over, though there's no community-1 single-embedding API yet.
Activity
Alex-Wengg commentedon Oct 12, 2026
Your guess is right: by output parity on AMI,
pyannote_segmentationispyannote/segmentation-3.0(MIT) andwespeaker_v2ispyannote/wespeaker-voxceleb-resnet34-LM(CC-BY-4.0) with 8-bit palettized weights, so commercial download and use is fine with attribution; NOTICE.md now documents this (7eab74f3). The community-1Embeddingproduces near-identical vectors (cosine ≈ 0.998 vswespeaker_v2), so saved voiceprints should carry over, though there's no community-1 single-embedding API yet.