Speaker diarization: know who spoke, and when.
Separate any recording into speaker turns and align them to the transcript. Run diarization on its own or as one stage of a larger pipeline, metered independently at half the going rate.
What speaker diarization is.
Speaker diarization is the task of determining who spoke when in an audio recording. It takes a single mixed audio stream and returns a timeline of speaker turns: contiguous spans of audio, each attributed to a distinct voice, labeled Speaker 1, Speaker 2 and so on.
Crucially, diarization does not know who those people are. It establishes that two voices are different, not that one belongs to a named person. Attaching real identities is a separate task — speaker identification — which compares each separated voice against previously enrolled voiceprints.
Why it matters
A transcript without speaker labels is much less useful than it looks. "Can you confirm the account number" means something different depending on whether the agent or the customer said it. Talk-ratio metrics, per-speaker sentiment, interruption analysis, compliance review and readable meeting notes all depend on the split being correct first.
What makes it hard
Overlapping speech is the dominant source of error: when two people talk at once, a naive system assigns the region to whichever voice is louder. Short turns — a one-word "mhm" — carry little signal to cluster on. Similar-sounding voices, channel noise, and recordings that mix a close-mic speaker with a distant one all degrade accuracy. Diarization error rate, the standard metric, counts missed speech, false alarms and speaker confusion together.
Four stages, one request.
Split the recording where the active speaker changes, including short interjections and overlap.
Turn each segment into a speaker embedding that captures voice characteristics independent of words.
Group segments belonging to the same voice, inferring the speaker count when you do not supply it.
Attach speaker labels to transcript words and timings so turns and text agree.
Diarization or identification?
Where speaker separation earns its keep.
Separate agent from customer to measure talk ratio, interruptions and handover quality.
Attribute every line to a participant so a transcript reads as a conversation, not a wall of text.
Keep interviewer and subject separate across long recordings for coding and analysis.
Label hosts and guests for chaptering, searchable archives and per-speaker captions.
Establish who said what in regulated recordings, with retention you control.
Split agent turns from human turns to measure latency, barge-in and interruption handling.
Questions, answered.
What is speaker diarization?
Speaker diarization answers "who spoke when". It divides a recording into segments and groups them by voice, producing speaker turns with start and end times. It does not name anyone — it separates distinct voices and labels them Speaker 1, Speaker 2 and so on.
How is diarization different from speaker identification?
Diarization separates voices without knowing who they are. Speaker identification matches those separated voices against enrolled voiceprints to attach real identities. Diarization needs no prior enrollment; identification does. Most pipelines run diarization first, then identification where identity matters.
How much does the diarization API cost?
Diarization is $0.0010 per minute, or $0.06 per hour of audio — roughly half the published rate of comparable speaker services. It is metered as its own stage, so you pay for it only on requests that use it.
Do I need to know the number of speakers in advance?
No. Speaker count is inferred from the audio. If you already know it, or know a range, you can supply it to constrain clustering, which usually helps on short or noisy recordings.
Does diarization handle overlapping speech?
Overlap is the hardest part of the problem and the main driver of diarization error. Segmentation is designed to detect overlapping regions rather than silently assigning them to one speaker. Recording quality and microphone setup still matter a great deal.
Can I run diarization without transcription?
Yes. Diarization is available as a standalone operation returning speaker turns and timings. Run it with transcription when you want speaker labels aligned to words.
Which diarization models do you use?
Ultrafield proprietary speaker models alongside pyannote-family open-weight models. As with speech recognition, the engine is selected per request and switching does not change your integration.
Is real-time diarization supported?
Batch diarization is available now and is where accuracy is highest, since clustering benefits from seeing the whole recording. Streaming speaker separation is on the roadmap alongside the Realtime API.
Bring us the difficult audio.
Overlapping speakers, uneven microphones, long recordings. Tell us about the workload and we will come back with an honest read on accuracy, latency and cost.
Diarization $0.06/hr · Speaker ID $0.05/hr