Highlights
Nemotron 3 Diarization (Sortformer v3) replaces Sortformer v2: up to 8 speakers, much better on overlapping speech, and all four of NVIDIA's latency presets (30.4 s to 0.32 s) from a single ONNX via StreamingProfile. Validated against NVIDIA NeMo's output. Model: nemotron3_diar_v3.onnx
Breaking changes
- Sortformer v2 models are no longer supported. Download
nemotron3_diar_v3.onnx; loading a v2 ONNX returns an error. NUM_SPEAKERSis now 8.DiarizationConfig::callhome()anddihard3()are removed (they were tuned for v2).DiarizationConfig::default()now matches NeMo: 0.5 threshold, no
smoothing.- Raw predictions (
predict_raw,diarize_chunk_raw) now have one row per 10 ms (was 80 ms).median_windowcounts 10 ms frames. - The default streaming latency is NVIDIA's offline preset (30.4 s buffer). For live audio, use
set_profile(StreamingProfile::low_latency()). ModelConfig::with_custom_configureclosures must now beSend + Sync(#120).
What's Changed
- fix: use TDT durations for timestamps by @nemosupremo in #118
- Make ModelConfig::build_session public by @rbanderovskyi in #119
- Make ModelConfig Send + Sync by @rbanderovskyi in #120
- Allow a separate execution config for the TDT decoder/joint by @rbanderovskyi in #121
- Split diarize into predict_raw and post_process by @rbanderovskyi in #125
- Remove the now-unused ParakeetTDTModel::from_pretrained by @rbanderovskyi in #124
- Add a per-window session router to Sortformer by @rbanderovskyi in #123
- Trim the explanatory comments from the diarize split by @rbanderovskyi in #126
- Add a verified Orukeet TDT example by @Nathan-Roll1 in #128
- Add sortformer v3 by @altunenes in #129
New Contributors
- @nemosupremo made their first contribution in #118
- @rbanderovskyi made their first contribution in #119
- @Nathan-Roll1 made their first contribution in #128
Full Changelog: v0.3.7...v0.3.8