Voxa.Audio.Diarization 0.7.2-alpha

This is a prerelease version of Voxa.Audio.Diarization.
dotnet add package Voxa.Audio.Diarization --version 0.7.2-alpha
                    
NuGet\Install-Package Voxa.Audio.Diarization -Version 0.7.2-alpha
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Voxa.Audio.Diarization" Version="0.7.2-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Voxa.Audio.Diarization" Version="0.7.2-alpha" />
                    
Directory.Packages.props
<PackageReference Include="Voxa.Audio.Diarization" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Voxa.Audio.Diarization --version 0.7.2-alpha
                    
#r "nuget: Voxa.Audio.Diarization, 0.7.2-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Voxa.Audio.Diarization@0.7.2-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Voxa.Audio.Diarization&version=0.7.2-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Voxa.Audio.Diarization&version=0.7.2-alpha&prerelease
                    
Install as a Cake Tool

Voxa.Audio.Diarization

Speaker diarization for Voxa (VLS-005) — "who spoke when", filling the long-present but always-null TranscriptionFrame.SpeakerId for batch / meeting transcription.

This package ships the seams + a pure-C# pipeline — not a model:

  • ISpeakerSegmentation — audio → speech regions (model-backed; e.g. Pyannote).
  • ISpeakerEmbedding — a speech span → a fixed-width speaker vector (model-backed; e.g. WeSpeaker).
  • IDiarizer / DiarizationPipeline — the orchestrator. The pipeline composes a segmenter + an embedder and does the rest in pure C#: form regions → embed each → constrained agglomerative clustering by cosine distance (centroid linkage) → stable speaker ids, with consecutive same-speaker regions merged into one turn. Centroid linkage matches what speech-core / pyannote calibrate the 0.715 default threshold against.
  • DiarizerConfig — tunables, defaulted to speech-core's values. The one that matters is ClusteringThreshold (cosine-distance merge ceiling, default 0.715); MinSpeakers / MaxSpeakers (0 = auto) force a floor / cap.

Why the orchestration is dependency-free

The pipeline references no ML runtime (and not even Voxa.Core) — steps 3–4 take float[] embeddings and emit DiarizedSegment[] with no I/O. That is what makes the clustering testable on hand-built synthetic embeddings in the default lane (two tight groups → two speakers, threshold sensitivity, speaker-count caps, determinism) with no model download, mirroring speech-core's runtime-free DiarizationPipeline.

Not yet here (needs real pinned models / a consumer)

  • The reference ONNX implementations (Pyannote segmentation + WeSpeaker embedding) live in a separate opt-in Voxa.Audio.Diarization.Onnx package — deferred until their models are pinned (real SHA-256 + cleared licences) and built on the VLS-006 ONNX host.
  • The voxa transcribe --diarize CLI verb that writes SpeakerId onto the transcript — the natural first consumer, which only does something once the ONNX impls exist.
  • Real-time / streaming diarization and speaker identification (enrollment against known voices) are out of scope (follow-ups once embeddings exist).
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Voxa.Audio.Diarization:

Package Downloads
Voxa.Audio.Diarization.Onnx

Reference ONNX implementations for Voxa speaker diarization (VLS-005 WS2). Ships PyannoteOnnxSegmentation — an ISpeakerSegmentation backed by the MIT-licensed pyannote segmentation-3.0 model on the shared Voxa.Audio.Onnx host. The model takes raw 16 kHz audio (SincNet front-end is inside the graph) and emits speaker activity; the package decodes powerset → speech regions in pure C#. Pin is the sherpa-onnx export (MIT).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.7.2-alpha 86 7/10/2026
0.7.1-alpha 63 7/10/2026
0.7.0-alpha 73 7/10/2026
0.6.0-alpha 77 6/22/2026