Speech and audio
Speaker Diarization and Overlap Attribution
Explain diarization pipelines, embeddings, clustering, segmentation, resegmentation, overlap, speaker count, and attributed evaluation.
By the end you can
- Define speaker diarization and overlap attribution as an operational problem with explicit inputs, outputs, and boundaries
- Distinguish clustering diarization, end-to-end diarization, and attributed diarization without treating them as interchangeable
- Trace the workflow from detect speech and overlap through attribute cautiously
- Evaluate speaker diarization and overlap attribution using diarization error with collar and overlap policy stated and evidence from difficult deployment slices
Example
The error rate that cannot say which way the timeline broke
Diarization error rate reports one thing: how much reference speaker time was attributed to the wrong speaker. It does not report which way the timeline broke. Hervé Bredin said so in one sentence in 2017, presenting pyannote.metrics: “While the diarization error rate provides a convenient way to compare different diarization approaches, it is usually not enough to understand the type of errors commited by the system.”
His remedy was two numbers instead of one. pyannote.metrics reports cluster purity and coverage as a pair. They separate over-segmentation — one speaker split into several — from under-segmentation, several speakers merged into one. One participant cut into three clusters and three participants collapsed into one cluster are opposite failures with opposite fixes. The headline error rate leaves them looking alike. It counts mislabelled time. It says nothing about whether the system made too many identities or too few.
A timeline whose one published number is silent about the shape of its own mistakes. That is what the rest of this lesson works on.
- The ground here is the whole pipeline behind that timeline: segmentation, embeddings, clustering, resegmentation, overlap handling, the speaker count, and the attributed evaluation laid over all of it. One aggregate score sits on top of the lot.
- The failure running underneath every part of it is leaving overlapped speech out of both the reference and the metric. That is why the next section starts with the scoring rules rather than with any system.
- The evidence to ask for is a diarization error rate with its collar and overlap policy stated. NIST's RT-05S plan and the Third DIHARD Challenge Evaluation Plan give opposite answers on both questions. The number moves with them.
- The practical response is Bredin's: report cluster purity and coverage beside the error rate. Over-segmentation and under-segmentation are the two ways a timeline goes wrong, and the error rate names neither of them.
Case
Same detector, different collar, different number
A score that stays quiet is worth suspecting for a second reason. Some of what a diarization score is permitted to notice is written into the scoring rules rather than into the system. Change the rules and the number changes.
Diarization error rate was introduced for NIST's Rich Transcription Spring 2003 evaluation. Two years later, NIST's RT-05S plan wrote the allowance down twice over. It sets a forgiveness collar: “A forgivness collar of 0.25 seconds (both + and -) will not be scored around each boundary”. A few lines later it restates the same rule: “250 millisecond time collars will be employed around each reference segment to forgive timing errors in the reference”. The quarter-second either side of every reference boundary is the moment of a speaker change. It is not scored at all.
The same section decides what the headline number is allowed to see: “Although the speaker mapping will take regions of overlapping speech into account, for consistency with the STT task, the primary metric will be based on non-overlapping speech only.” Overlap performance is reported. It is reported separately, outside the figure anyone quotes.
The DIHARD challenges broke with that convention on purpose, and put the break in the plan itself. From the Third DIHARD Challenge Evaluation Plan in 2020: “Contrary to practice in the NIST RT evaluations, NO forgiveness collar will be applied to the reference segments prior to scoring and overlapping speech WILL be evaluated.” It held in practice as well as on paper. DIHARD II's baseline paper records that “All metrics are computed using version 1.0.1 of the dscore tool without the use of forgiveness collars and with scoring of overlapped speech.”
Now take two systems reported at the same diarization error rate. One was scored with a 0.25-second collar and overlap excluded. The other had no collar and overlap evaluated. They are not being compared. Ask which collar was used before you read the number.
Comparison
12.28% against 28.77% on the same mixtures
Clustering diarization groups segment embeddings without fixed speaker labels. Each stretch of the timeline is assigned to one cluster, so a passage where two people talk at once is credited to a single speaker. Nothing in the method holds a label steady across a change in the audio either. There were never any labels to hold.
The first of those costs has been measured. In 2019 an end-to-end neural diarization system from Fujita and colleagues reached 12.28% DER on simulated speech mixtures. A conventional clustering-based system produced 28.77% on the same material. Their abstract names the reason: “Besides its end-to-end simplicity, the proposed method also benefits from being able to explicitly handle overlapping speech during training and inference.” That gap is not a tuning difference. It is the difference between a method that can label two active speakers and one whose output has no room to say so.
Attributed diarization starts somewhere else again. It maps anonymous speaker tracks to known participants using additional evidence. Anonymous tracks and named participants are not two grades of the same output. They are answers to different questions. A result from one of these three approaches settles nothing about the other two. A 12.28% DER on mixtures says nothing about whether the right name was attached to the track.
Clustering diarization
Groups segment embeddings without fixed speaker labels.
- Decision focus: Detect speech and overlap
- Useful evidence: Diarization error with collar and overlap policy stated
- Watch for: Ignoring overlapped speech in reference and metric
- Best used when its assumptions are documented for speaker diarization and overlap attribution
End-to-end diarization
Predicts speaker activities jointly, often with a maximum or learned speaker set.
- Decision focus: Create speaker evidence
- Useful evidence: Jaccard or segment-based speaker activity measures
- Watch for: Using channel identity as speaker identity
- Best used when its assumptions are documented for speaker diarization and overlap attribution
Attributed diarization
Maps anonymous speaker tracks to known participants using additional evidence.
- Decision focus: Infer speaker structure
- Useful evidence: Speaker-count and overlap-detection error
- Watch for: Fixing speaker count incorrectly
- Best used when its assumptions are documented for speaker diarization and overlap attribution
Who spoke when, not who they are
Underneath all three sits one definition. Speaker diarization partitions speech over time by anonymous speaker identity: who spoke when, not who they are. A system gets there by combining activity detection, segmentation, embeddings, clustering or sequence modeling, overlap handling and optional resegmentation. Speaker naming is a separate process that happens afterwards. Diarization does not establish legal identity.
What it does instead is fail in ways the timeline never displays. It can split one person into several clusters — the over-segmentation purity and coverage were built to expose. It can merge different people into one. It can mis-handle overlap, which the primary NIST-style metric was not scoring in the first place. And it can inherit channel or seating cues that hold up only until participants move.
So the question is not how good the model is. It is whether the speech and overlap you detected still support the attribution you make on top of them. That link decides whether a diarization score can back the decision at all.
Attaching a name to a diarized turn makes a claim the system was never built to check.
Example
Median DER below 10% in six domains, 35–45% in three
Attribution means something different in a meeting, a call center, a broadcast archive and a clinical conversation. DIHARD III put numbers on how far apart those settings really are. The 2021 write-up drew on 499 valid system outputs, from 30 organisations forming 21 teams, across 11 domains. Median Track 1 DER came in below 10% for six of those domains. For clinical interviews and telephone speech it sat between 10% and 20%.
Then the floor drops. From the results section: “For the final three domains – meeting speech, web videos, and restaurant – performance ranges awful with median track 1 DER ranging from 35% to 45%.”
Same task, same metric, same year: a sub-10% problem in six settings and a 35–45% problem in three. A diarization result carries its domain with it. The core evaluation set of that challenge is itself 8.75% overlapped speech.
- In meetings, anonymous tracks support search even without naming participants, which is how a bad timeline can sit unremarked for weeks. Meeting speech is one of the three domains DIHARD III put in the 35–45% median Track 1 DER band.
- In call centers, agent and customer attribution affects compliance and analytics, so the two tracks have to stay separate and stay themselves. Telephone speech sits in DIHARD III's 10–20% band: better than meetings, and still not a rate you would ignore.
- In broadcast archives, recurring speakers span music, cuts and varied recording quality. The nearest published neighbour, web videos, sits in the same 35–45% band as meeting speech and restaurant recordings.
- In a clinical conversation, an attribution error can alter who reported a symptom or an instruction. Clinical interviews are in the 10–20% band: low enough to be trusted by habit, high enough to move a line in a record.
Key idea
19% of AMI evaluation speech is overlapped
Diarization is made tractable by four simplifications. Each one comes back when the recording stops matching the assumption behind it. Overlapped speech is left out of the reference and the metric. Channel identity is used as speaker identity. The speaker count is fixed at the wrong number. Speakers are named from weak conversational or positional cues.
The first is the one nobody sees, since a metric that skips overlap cannot report on what it skipped. In real meeting audio it is not a rounding error. The proportion sits in a table caption from 2020: “For instance, AMI evaluation set amounts to 14h of audio, 82% of which is speech (11.5h), among which 19% is overlapped speech (2.2h).” Bullock and colleagues then ran an overlap-aware pipeline over that set. DER fell from 29.7% to 23.8% — 5.9 points absolute, 20% relative. Roughly 0.8 points came from the VB-HMM resegmentation step. Roughly 5.1 came from the overlap-assignment step alone, which pulled missed detection down from 20.8% to 13.0%. A collar-based, non-overlapping primary metric would have shown almost none of it.
The third simplification has a named cost too. Horiguchi and colleagues open their 2020 abstract with it: “Recently proposed end-to-end speaker diarization outperformed conventional clustering-based speaker diarization, but it has one drawback: it is less flexible in terms of the number of speakers.” The second and fourth are the ones with a person's name on them: a channel read as a speaker, and an anonymous track labelled from cues that were never identity evidence. That is where anonymous identity, not legal identity, becomes a concrete mistake.
All four end in the same place. A turn is credited to someone who did not say it. The transcript carries no mark to show which turns those are.
Leaving overlap out of the reference and the metric does not make crosstalk go away. On the AMI evaluation set it is 2.2 of 11.5 hours of speech that the primary score never looks at.
Visual
15.29% against 19.43% once the count is unknown
Those unmarked turns are produced in a particular order, and the order is what makes them invisible. The work creates speaker evidence first, then detects speech and overlap, then attributes cautiously.
The first step is the one that goes when a deadline arrives. Embeddings need a window long enough to be worth extracting from, and shortening that window is the cheapest cut available. Drop it and the detection step is working from evidence nobody checked. The attribution step never tests the assumption either. Being cautious about the marks you were handed is not the same as asking about the ones that were never made.
Inferring speaker structure is where the count gets decided, and deciding it in advance has a measured price. In 2020 Horiguchi and colleagues attached encoder-decoder based attractors (EDA) to an end-to-end model, so that the number of speakers is produced rather than assumed. On CALLHOME with an unknown number of speakers the result was 15.29% DER. The x-vector-based clustering method gave 19.43%. On simulated two-speaker mixtures EDA scored 2.69%, where vanilla SA-EEND — the fixed-speaker-count end-to-end baseline, not a clustering system — gave 4.56%. Nearly two points on the two-speaker case, where the count was not even in doubt. That is what an assumption about speaker count costs when it is baked into the architecture rather than estimated.
1. Detect speech and overlap
Represent none, one, or several active speakers.
2. Create speaker evidence
Extract embeddings or sequence features from suitable windows.
3. Infer speaker structure
Estimate count, cluster segments, and smooth assignments over time.
4. Attribute cautiously
Use enrollment or metadata only with confidence, consent, and correction tools.
Wherever speech and overlap were marked, cautious attribution treats those marks as settled and never asks what went unmarked.
Steps
Audit a diarization timeline with purity and coverage, not one rate
An audit runs that order backwards. The timeline is the artefact under audit. It should be detailed enough that another team can check whether overlapped speech was scored or quietly dropped.
The first move is to stop auditing against a single figure. pyannote.metrics gives the reading that tells you which failure you have: “Over-segmented results (e.g. too many speaker clusters) tend to lead to high purity and low coverage, while under-segmented results (e.g. when two speakers are merged into one large cluster) lead to low purity and higher coverage.” High purity with low coverage is one person cut into several tracks. Low purity with higher coverage is several people wearing one label. Separating missed speech, false alarm, confusion, split, merge and overlap errors is the same discipline applied column by column.
Three notes are then enough, and they follow the pipeline. First, what does your speech and overlap detection assume? Then one case that breaks it: a participant who changes microphones halfway through the meeting, or the 19% of AMI evaluation speech that arrives with two people talking. Then what the attribution step does when that case appears — merge the tracks, mark them uncertain, or carry on naming speakers who are not there.
1. Label error categories
Separate missed speech, false alarm, confusion, split, merge, and overlap errors.
2. Change the channel
Test movement, device handoff, remote links, and reverberation.
3. Review long sessions
Look for identity drift and re-entry after silence.
4. Expose editing controls
Allow users to merge, split, rename, and mark uncertain segments.
Give the people reading the timeline the means to merge, split, rename and flag segments as uncertain, or the audit ends with an error someone spotted and nobody could correct.
Example
25.99% on one metric, 59.51% on the other, same output
What an audit reads by hand, an evaluation has to hold as two numbers at once. DIHARD II showed how far apart two metrics on one system can sit. Jaccard error rate was introduced there in 2019 and defined this way: “An optimal mapping between speakers in the reference diarization and speakers in the system diarization is determined and for each pair the Jaccard index of their segmentations is computed. JER is defined as 1 minus the average of these scores, expressed as a percentage.” On the identical baseline output, Track 1 scored 25.99% DER and 59.51% JER on the evaluation set. Track 2 scored 50.12% DER against 72.1% JER.
Nothing changed between those pairs except what was being counted. DER weights time. A system that handles the long-talking speakers well can look strong while short-turn speakers are being lost. JER averages per speaker, and refuses to let that trade go unrecorded. Report one and you have chosen which speakers matter without saying so.
The set of metrics should also mark the point where overlap has been left out of the reference, so the timeline is flagged rather than trusted.
- For the core task, the evidence is diarization error with the collar and overlap policy stated: a 0.25-second collar with a non-overlapping primary metric, as in NIST's RT-05S plan, or no collar with overlap scored, as in the Third DIHARD Challenge Evaluation Plan.
- For how the system behaves in service, it is a per-speaker measure alongside the time-weighted one. 25.99% DER and 59.51% JER came off the same DIHARD II Track 1 output. Reporting only the first would have hidden the second.
- The robustness slice is speaker-count and overlap-detection error read per domain. DIHARD III's medians run from below 10% in six domains to 35–45% in meeting speech, web videos and restaurant recordings. The aggregate figure describes none of them.
- Over the system's working life, the evidence is attributed transcript error and manual correction time — the pair that says what a mislabelled turn actually costs after the score has been filed.
Report diarization error with collar and overlap policy stated together with attributed transcript error and manual correction time.
Key takeaways
- Diarization error rate cannot name the failure it is measuring. It “is usually not enough to understand the type of errors commited by the system”, Bredin wrote in 2017. His pyannote.metrics supplies cluster purity and coverage as the pair that separates over-segmentation, one speaker split into several, from under-segmentation, several speakers merged into one.
- Diarization answers who spoke when, not who they are. Naming is a separate process laid on top, and the result does not establish legal identity, so a diarized turn cannot be made to carry that weight.
- Create speaker evidence first and attribute cautiously last, and estimate the speaker count rather than fixing it. Encoder-decoder based attractors reached 15.29% DER on CALLHOME with an unknown number of speakers where x-vector-based clustering gave 19.43%, and 2.69% on simulated two-speaker mixtures where vanilla SA-EEND gave 4.56%.
- Clustering diarization, end-to-end diarization and attributed diarization answer related but different questions. An end-to-end model measured 12.28% DER on simulated mixtures against 28.77% for a conventional clustering-based system, because only one of the two can explicitly label overlapping speech.
- The collar and the overlap policy are the number. NIST's RT-05S plan forgives 0.25 seconds either side of every boundary and states that “the primary metric will be based on non-overlapping speech only”. The Third DIHARD Challenge Evaluation Plan applies “NO forgiveness collar” and evaluates overlapping speech. On the AMI evaluation set overlap is 2.2 of 11.5 hours of speech, worth 5.9 DER points to handle.
- Report diarization error with collar and overlap policy stated alongside a per-speaker measure and the operational cost. DIHARD II's Track 1 baseline scored 25.99% DER and 59.51% JER on one and the same output, and DIHARD III's per-domain medians run from below 10% to 35–45%.