Skip to main content
AirCaps Diarization-v1 answers who spoke when: it labels every stretch of speech in a recording with a speaker, including overlapping speech, and returns no transcript. Use it to segment meetings, interviews and calls by speaker, to count speakers, or to attach speakers to a transcript you already have.
AirCaps Diarization-v1 is enabled per account. If GET /v1/account shows "enabled": false for aircaps-diarization-v1, requests return 403 model_access_denied. To get access, talk to sales.

1. Provide the audio

The same sources as batch transcription: an audio_url, or a file_id from an upload URL or a direct upload. Any audio format ffmpeg can read works; channels are mixed down. Files are 0.1 s to 6 hours long.

2. Create the diarization

The response is a diarization with status: "queued" or "processing". model is optional. metadata (up to 16 KB) is echoed back on the diarization and in webhooks.
There is no language_code: diarization works from the voices, not the words.

3. Get the result

Wait for a webhook (diarization.completed or diarization.failed) or poll GET /v1/diarizations/{id} every few seconds.

The result

  • segments are in time order. Overlapping speech appears as overlapping segments of different speakers (above, speaker 0 and speaker 1 both talk from 5.9 s to 6.12 s).
  • Times are seconds from the start of the audio, with millisecond precision.
  • Speakers are numbered in order of first speech and are consistent within one diarization only. The model finds the number of speakers itself.
  • speech_duration is the time anyone speaks; overlap_duration is the time two or more people speak at once.
  • Audio with no speech completes with num_speakers: 0 and empty speakers and segments.

RTTM

GET /v1/diarizations/{id}/rttm returns the same segments as an RTTM file, the format diarization scoring tools read:

Python example

Limits and usage

  • Audio is billed by duration and counts toward your account’s usage limit, shared by all models. Failed jobs don’t count.
  • Diarizations share your account’s asynchronous job limits (concurrent jobs, queue, requests per minute) with transcripts.
  • Files up to 6 hours. Longer files fail with audio_too_long.

Delete

DELETE /v1/diarizations/{id} cancels a running job or deletes a finished diarization, its stored result and the uploaded file it used. Diarizations are otherwise deleted after 30 days.