Open in the interactive docs · markdown for agents: https://neuraldeep.tech/docs/diarize.md

Diarization · who spoke when

With the same key — speaker labelling under /v1/audio/diarize: audio → "who spoke when" segments. The Nemotron-3-Diarization model on our GPUs, up to 8 speakers, any audio format (WAV, MP3, OGG, M4A and more), files up to 500 MB and 4 hours. It does not transcribe: for a speaker-labelled transcript, join the result with /v1/audio/transcriptions by time. A separate bucket — the limit is counted in minutes of audio, rounded up.

curl -s https://api.neuraldeep.tech/v1/audio/diarize \
  -H "Authorization: Bearer $NEURALDEEP_API_KEY" \
  -F [email protected]

Response:

{"duration": 61.0, "num_speakers": 2, "minutes_charged": 2,
 "segments": [{"speaker": "SPEAKER_0", "start": 1.1, "end": 5.75},
              {"speaker": "SPEAKER_1", "start": 17.28, "end": 21.26}]}

Speakers are numbered in order of first appearance. Form fields: response_format=rttm returns standard RTTM, min_duration=0.3 drops fragments shorter than 0.3 s. Remaining minutes: GET /v1/audio/diarize/quota; the day and month blocks have used, limit, remaining and reset_at, like search, OCR and images.

Input limits and errors. Empty file 400, file over 500 MB 413, recording longer than 4 hours 413, undecodable audio 400, a response_format other than json or rttm gives 400. The response has to fit into 300 seconds. Minutes used up: 429 with X-Quota-Pool, X-Quota-Scope, X-Quota-Reset and Retry-After. An empty wallet on a key in Wallet mode: 402. A failure on our side: 502.

The model was not trained on Russian; on Russian speech our speaker and turn labelling matched the reference, but the first seconds of a turn are sometimes left without a speaker.

Reference sections (markdown for agents)