Blog

In short: A year after Precision-2, we are releasing Precision-3, the most accurate and the most tunable diarization model we have built. Across our 15 benchmark datasets, diarization error rate drops by 10.4% against Precision-2, from 16.02 to 14.35. Over half of that improvement comes from the model getting better at telling speakers apart: it now assigns speech to the right speaker 18.7% more often.
Accuracy stopped being the whole problem
Every generation of the Precision series has shipped with a single number going down. Precision-1 was 20% more accurate than the state of the art at the time, and Precision-2 took another 14% off that. Diarization error rate is a good headline metric, and we keep improving it, but a year of production feedback made something clear: our customers do not all mean the same thing when they say the diarization was wrong.
Talk to enough of them, and the disagreements start to look structural rather than incidental. A team building TTS training corpora wants every trace of overlapping speech gone, and would rather over-detect cross-talk and throw away clean audio than risk a single contaminated segment slipping through. A team producing training data for voice cloning wants the opposite instinct: catch every short silence break, even if that means over-segmenting the audio. A team building voiceprints for a meeting notetaker wants neither; they would rather discard an uncertain segment than build a voiceprint on it. Three customers, three opposite requirements, and no single fixed configuration that serves all of them.
There is a second half to the problem, and it shows up after the model has already returned its answer. Diarization sits early in the pipeline, so any error it makes gets inherited by everything downstream: the speaker-attributed transcript, the analytics built on top of it, the turn-taking logic of a voice agent. If all a team gets back is a segmentation, they have no way of telling a confident boundary from a marginal one, and end up writing heuristics on top of a decision they cannot actually inspect. Accuracy matters, but on its own it doesn't tell you what to trust.
Precision-3 is our answer to both halves. It is our most accurate batch diarization model to date, a 10.4% relative reduction of DER against Precision-2, and it is the first Precision model to expose the machinery behind that decision: sensitivity parameters on the input, frame-level probabilities on the output, and speed-to-accuracy operating modes for on-premises deployments. All of it at the same price as Precision-2.
What Precision-3 does differently
New input parameters, on the API and on-prem
Two sensitivity parameters are now available to every customer.
Parameter | Range | Effect |
|---|---|---|
| -5.0 to 5.0, default 0 | Adjusts voice activity detection sensitivity. New on the API. |
| -5.0 to 5.0, default 0 | Adjusts overlap and cross-talk sensitivity. New on the API |
New output scores, on the API and on-prem
Each new output score answers a single question.
Output | What it answers | Status |
|---|---|---|
| How likely is it that this specific speaker is active on this frame | New on API and on-prem. Replaces the deprecated |
| How likely is it that there is cross-talk on this frame | New on API and on-prem |
| How likely is it that there is speech on this frame | Existed on-prem, now on the API |
| How confident the model is in the speaker attribution of a segment | Unchanged |
The frame-level segmentation confidence output is deprecated as a result. Separating voice activity, overlap, and speaker identity also means a filtering rule you write today will still make sense six months from now, because every term in it maps to something you can actually observe in the audio.
Operating modes, on-prem only
On-premises deployments choose a profile per deployment
Average DER - 15 datasets


Mode | Precision-3 | Precision-2 | Gain |
|---|---|---|---|
Accuracy | 14.35 | 16.02 | 1.67 points, 10.4% |
Balance | 14.94 | 16.31 | 1.37 points, 8.4% |
Speed | 15.52 | 16.91 | 1.39 points, 8.2% |
15 datasets: NOTSOFAR, AVA-AVD, AliMeeting, INA, AMI, AMI-SDM, SBCSAE, MSDWILD, DIHARD, CALLHOME, ALLIES, RAMC, VoxConverse, VoxSRC2023, AISHELL.
Time required to diarize 1 hour of audio using B200s
Mode | Precision-3 | Precision-2 | Speedup | Real-time factor |
|---|---|---|---|---|
Accuracy | 3.05s | 5.28s | 1.73× (-42%) | 681× → 1,181× |
Balance | 1.43s | 3.33s | 2.33× (−57%) | 1,080× → 2,518× |
Speed | 0.97s | 2.45s | 2.51× (−60%) | 1,471× → 3,700× |
Inside Precision-3 itself, only 1.17 DER points separate accuracy mode from speed mode. Moving from Precision-2 to Precision-3 gains anywhere between 1.37 and 1.67 points, depending on the mode you land on. Put differently, Precision-3 in speed mode, the fastest configuration we offer, still beats Precision-2 in accuracy mode, the previous best, by 0.50 points. Picking a latency profile no longer costs you a generation of quality.
Where Precision-3 fits
Use the input parameters to bias the model toward one error type.
Extracting clean training data: There are now two ways to handle overlap, so pick the one that fits your use case. Raise
crosstalkSensitivityto over-detect overlap, or filter oncrosstalkProbabilityafterward to remove every overlapping section.Detect more speech: Raise
vadSensitivityto fill short gaps between adjacent speech turns and detect one-word turns that might be missed otherwise.
Use the output scores when the decision belongs to your product logic, not to the model.
Building high-quality voiceprints: Keep only the segments above a
speakerProbabilityorturnLevelConfidencethreshold, trading recall for precision.Routing to human review: Flag the segments below a confidence threshold instead of reviewing the full transcript.
Monitoring quality over time: Track probability distributions per audio source to detect drift before it shows up in user complaints.
Use the output scores for a better speaker-attributed transcription
Knowing which speaker said which word gets hard the moment speech overlaps, since most STT engines only transcribe one speaker at a time. We now give you two ways to handle that: let exclusive diarization do the hard part for you, or use speakerProbability to make the call yourself.
Resolving overlap for speech-to-text: Use
speakerProbabilityto decide which speaker is most likely being transcribed.
Use the operating modes when the deployment has a latency budget.
Speed for latency-sensitive or high-volume workloads, balance for general-purpose deployments, and accuracy when diarization quality is what drives the product. These are deployment-level decisions rather than per-request ones, and they now behave predictably enough that you can set one and leave it alone.
Why it is better
The error that disappeared is the one that hurts
Diarization error rate splits into three components: false alarm, missed speech, and speaker confusion, and averaging the reduction across all three hides which one actually moved.
DER Component | Precision-3 | Precision-2 | Change |
|---|---|---|---|
False alarm |
|
|
|
Missed detection in single speaker regions |
|
|
|
Missed detection in crosstalk regions |
|
|
|
Speaker confusion in single speaker regions |
|
|
|
Speaker confusion in crosstalk regions |
|
|
|
Overall DER |
|
|
|
The figures in this post are averaged over 15 benchmark datasets: AISHELL, ALLIES, AliMeeting, AMI, AMI-SDM, AVA-AVD, CALLHOME, DIHARD, INA, MSDWILD, NOTSOFAR, RAMC, SBCSAE, VoxConverse and VoxSRC2023. The suite covers meetings, telephone conversations, broadcast, read speech, and in-the-wild recordings, in both single and multi-microphone conditions, which is what makes the average meaningful across use cases rather than tuned to one of them.
Over half of the improvement comes from speaker confusion: the model got better at deciding who is speaking, not just whether someone is speaking. That distinction matters more than it looks on paper, because speaker confusion is the error that surfaces downstream, as wrong speaker labels in a transcript, as broken analytics, as a voice agent replying to the wrong participant, and it's the most expensive one to fix after the fact. A missed silence break can be recovered from the waveform. A wrong speaker label can't.
Better instrumentation for the cases that go wrong
Two of the most common conversations we have with support are about speaker over-detection and about speech getting assigned to the wrong speaker. Until now, both investigations ended in the same place: the model produced a segmentation, the segmentation was wrong, and there was no intermediate signal to look at to understand why. Frame-level speaker, speech, and cross-talk probabilities change that, because now we can see whether the model hesitated, where it hesitated, and whether the failure came from voice activity detection or from speaker attribution. Both categories happen to be exactly where Precision-3 improves the most, so this release both reduces how often these cases happen and makes the ones that remain easier to diagnose.
How it compares
Average diarization error rate on four public benchmarks; lower is better.

Measured against whichever competitor performs best on each dataset, Precision-3 comes in roughly 47% lower on DIHARD, 40% lower on AISHELL, three times better on AliMeeting, 2.2 times better on AMI, and 2.6 times better on AMI SDM.
The control surface is where the gap widens the most. Every speech-to-text provider returns a per-word confidence score, and some add a language confidence score on top. ElevenLabs and Speechmatics expose a speaker count sensitivity. But none of them combine diarization-specific probabilities with input sensitivity controls at this level of granularity, and for us that combination isn't a feature checkbox; it's the part of the problem we've spent a decade on, first in the open-source pyannote.audio toolkit and now in the Precision series.
Getting started
On the API, set "model": "precision-3". Existing requests keep behaving the way they always have until Precision-3 becomes the default, and you don't need to change any code to benefit from the accuracy gain. The new parameters and outputs are opt-in, so you can adopt the accuracy improvement today and pick up the control surface whenever you're ready.
On-premises, Precision-3 comes with a package update: the new version has to be deployed before the model is available to your workloads. On the API, Precision-3 will roll out on the API first as an opt-in option, then become the default, and finally Precision-2 will be deprecated
Pricing is unchanged. The accuracy gain, the two sensitivity parameters, and the frame-level probabilities all come at the Precision-2 rate.
Start with Precision-3 in the dashboard or read the API documentation.
Check out our guided video tutorial to start using the new optimization capabilities.
