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: anaudio_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
status: "queued" or "processing". model is optional. metadata (up to 16 KB) is echoed back on the diarization and in webhooks.
3. Get the result
Wait for a webhook (diarization.completed or diarization.failed) or poll GET /v1/diarizations/{id} every few seconds.
The result
segmentsare 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_durationis the time anyone speaks;overlap_durationis the time two or more people speak at once.- Audio with no speech completes with
num_speakers: 0and emptyspeakersandsegments.
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.
