Skip to content

Provenance and licence of the legacy pyannote_segmentation / wespeaker_v2 diarizer models #1010

Closed

Description

@rudyironhack

Hello, and thanks for FluidAudio.

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:

  1. 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.
  2. Licence. Under what licence does Fluid Inference publish these two converted files, and may a commercial app download and run them?
  3. 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.

Thank you.

Activity

  1. Alex-Wengg commented on Oct 12, 2026

    @Alex-Wengg
    Member

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions