Speech AI · Benchmark

Benchmarking SOTA
Speaker Diarization Models

A head-to-head evaluation of DiariZen, SortFormer, MSDD Telephonic, and MossFormer on 200 real-world telephony calls — measuring accuracy, error type, and inference latency.

Speaker Diarization NLP Speech AI Benchmark Telephony
NS
Nishant Sinha
NoBroker AI Research · April 2025 · 8 min read
TL;DR — Key findings

What is speaker diarization?

Speaker diarization answers a deceptively simple question: "who spoke when?" Given a raw audio recording with multiple people talking, a diarization model segments the timeline and labels each interval with a speaker identity — without knowing anything about the speakers in advance.

It is foundational to any downstream speech task — transcription, meeting summarization, call analytics, voice forensics. Get it wrong and every downstream system inherits the error.

Speaker A
Speaker B
Silence
Real-time illustration — who spoke when

The benchmark dataset

Evaluating diarization fairly requires data that reflects real-world messiness. We built a custom benchmark from true stereo calls sourced from real-world production telephony domains, then merged each stereo call into a single mono waveform for model inference. Ground-truth speaker activity was derived by running Silero VAD independently on each original stereo channel, giving clean speaker-attributed reference labels without any manual annotation effort.

Total calls
200
Total audio
23.4h
Avg duration
421s
~7 min per call
Avg overlap
2.8%
13s per call
Avg silence
44%

Call lengths range from 6 seconds to over 42 minutes, reflecting realistic telephony distributions. With average speaker overlap at just 2.8% and silence accounting for 44% of audio, this is a precision-demanding benchmark — models are penalized for false alarms in silence as much as for missed speech.


The models

Four architecturally distinct approaches were evaluated — from end-to-end neural models to separation-first pipelines. Each card links directly to the official repository or model page.

GitHub
DiariZen
BUT-FIT/diarizen-wavlm-large-s80-md-v2

WavLM-based end-to-end diarizer that directly produces speaker activity segments. Configured for two speakers with post-filtering to retain the top two by speech duration.

WavLM End-to-end Best DER 5.45%
Hugging Face
SortFormer
nvidia/diar_streaming_sortformer_4spk-v2

NVIDIA's streaming-capable diarization model run in high-latency offline mode for maximum accuracy. Deterministic sorted speaker outputs simplify downstream pipelines.

NVIDIA NeMo Streaming Fastest 1.89s
NVIDIA NGC
MSDD Telephonic
nvidia/nemo/diar_msdd_telephonic

Multi-scale diarization decoder tuned specifically for telephony. A clustering-based pipeline run with a hard two-speaker constraint and multi-scale temporal resolution.

Multi-scale Telephony Clustering
GitHub
MossFormer2
damo/speech_mossformer2_separation_temporal_8k

Separation-first pipeline: chunks audio via Silero VAD, runs 2-speaker source separation per chunk, then resolves speaker permutation using TitaNet-Large embeddings before stitching into a stereo stream.

Source separation Alibaba DAMO + TitaNet-Large ↗

Results

Diarization error rate (DER%) — lower is better
DiariZen SortFormer MSDD Telephonic MossFormer
DiariZen 5.45%, SortFormer 8.64%, MSDD 12.48%, MossFormer 21.76%
Error breakdown — missed speech / false alarm / confusion
Missed speech False alarm Confusion
Error breakdown per model.
Average inference latency per call (seconds) — lower is faster
Measured on NVIDIA A100 80 GB GPU (NV0d0a)
SortFormer 1.89s, MSDD 8.49s, DiariZen 8.73s, MossFormer 28.13s
DER% vs latency — accuracy vs speed tradeoff
DiariZen SortFormer MSDD Telephonic MossFormer
Each model plotted by latency on x-axis and DER on y-axis.
ModelCallsDER%Missed%FA%Confus%Avg lat (s)
DiariZen best DER 2005.453.421.690.348.73
SortFormer fastest 2008.642.394.631.621.89
MSDD Telephonic 20012.482.927.731.838.49
MossFormer 20021.764.515.8611.3828.13

Key takeaways

Best overall DER
DiariZen — 5.45%
Lowest confusion at 0.34%, indicating near-perfect speaker assignment once speech is detected.
Fastest model
SortFormer — 1.89s
Nearly 5× faster than DiariZen with competitive 8.64% DER. Best for latency-sensitive pipelines.
MSDD trade-off
High false alarms
Lowest missed speech (2.92%) but 7.73% false alarm rate dominates in silence-heavy calls.
MossFormer weakness
11.38% confusion
Separation-first design suits heavily overlapping audio, not two-speaker telephony at 2.8% overlap.

Discussion

Looking at DER alone can be misleading — each model fails differently. DiariZen's errors are almost entirely boundary-level (missed speech 3.42%, false alarm 1.69%), with speaker confusion at a negligible 0.34%. This makes it ideal for downstream tasks sensitive to speaker identity, like per-speaker ASR or voice analytics.

SortFormer's higher false alarm rate (4.63%) suggests it hallucinates short speech segments during silence. This is worth accounting for in downstream ASR pipelines but is unlikely to matter for turn-taking analysis. At 1.89 seconds average latency, it is by far the most practical model for near-real-time applications.

MSDD Telephonic's large false alarm contribution (7.73%) dominates its error budget. In telephony with long silence regions, this is a significant weakness. Post-filtering with a tighter speech-activity threshold would likely close much of the gap with SortFormer.

MossFormer's outsized confusion (11.38%) is the defining characteristic of this benchmark run. The separation-first approach was designed for overlap-heavy meeting scenarios — applied to two-speaker telephony calls at 2.8% overlap, it introduces permutation errors that compound across the call, while the pipeline overhead drives latency to 28 seconds.


Methodology

All models were run on an NVIDIA A100 80 GB GPU (NV0d0a) with CUDA 12.1. Latency figures represent wall-clock time per call including model forward pass, pre/post-processing, and disk I/O. Each call was processed sequentially; no batching was applied so numbers reflect single-call real-world latency.

Shared pre-processing

All stereo source calls were downmixed to mono by averaging channels. Audio was resampled to 16 kHz before being passed to any model. No noise suppression or channel equalisation was applied, preserving real-world telephony conditions including background noise, codec artefacts, and level imbalance between speakers.

DiariZen

Run via the pyannote-compatible pipeline at 16 kHz. Minimum and maximum speakers fixed at 2. Post-processing: speakers ranked by total speech duration; only the top-2 labels retained and renamed to speaker_0 / speaker_1. No additional smoothing applied.

SortFormer

Loaded via NeMo (nvidia/diar_streaming_sortformer_4spk-v2) and configured with high-latency offline streaming parameters to maximise accuracy. Output speaker tokens are sorted deterministically by first-appearance time, removing the need for post-hoc permutation alignment. Speaker count fixed at 2.

MSDD Telephonic

NeMo MSDD pipeline with num_speakers=2, max_speakers=2. Multi-scale windows of 1.5s, 1.0s, 0.5s, and 0.25s were used for the temporal encoder. Speaker embeddings extracted using TitaNet-Large. Clustering performed with NME-SC (Normalised Maximum Eigengap Spectral Clustering).

MossFormer2

Audio first passed through Silero VAD (threshold 0.5, min speech 250 ms, min silence 100 ms) to detect speech chunks. Each chunk downsampled to 8 kHz before separation. MossFormer2 run on each chunk independently, producing two source-separated streams. TitaNet-Large embeddings extracted per chunk per stream; cosine similarity used to resolve inter-chunk speaker permutation. Final streams stitched with a same-speaker merge gap of 0.3s; overlap bleed-through suppressed using a channel energy ratio threshold of 0.6.

MossFormer2 — separation-first pipeline (live trace)
Silero VAD
MossFormer2 separation
TitaNet embeddings
Stitched output

Evaluation protocol

DER computed using the pyannote.metrics library with a collar of 0.25s (standard telephony tolerance). Overlap regions are included in the DER calculation. The three DER components — Missed Speech, False Alarm, and Speaker Confusion — are reported separately to diagnose failure modes independently.


Reproducibility

All models were evaluated on the same 200-call set from a fixed, versioned internal dataset. Mono conversion and channel-wise Silero VAD annotation followed identical protocols across all runs. Sample rates and model checkpoints were kept constant, and DER, Missed, FA, Confusion, and per-call latency were reported for every model across the full evaluation set.


References & model links

All checkpoints used in this benchmark are publicly available via the links below.


ConvoZen Research · 2025
DiariZen SortFormer MSDD MossFormer