Skip to main content
Dictation has two transcription endpoints with different limits. /v1/transcribe/live takes audio while it is still being recorded and is what the SDK uses. /v1/transcribe takes a finished recording over HTTP; see Transcribing a finished recording. Set the audio part’s Content-Type to match the format you send. /v1/transcribe/live decodes audio as it arrives, and compressed formats cannot be decoded incrementally, so it rejects them with 415. Send compressed audio to /v1/transcribe, or decode it to WAV or raw PCM first.

WAV and raw PCM

For WAV, the sample rate and channel count are read from the file header, and the sample_rate and channels config fields are ignored. For raw PCM there is no header to read, so both fields are required in the config part:
Raw PCM is the easier format to upload while the user is still speaking, since frames can go on the wire as they come off the microphone with no container to finalize. See Uploading while recording.

When audio is rejected

Audio that violates a constraint is rejected with a 400, 413, or 415. On a chunked upload the 413 can arrive part-way through the request rather than at the end, because the server is measuring the audio as it arrives. See Error handling for the full table. For a recording longer than 120 seconds, wait until it finishes and post it to /v1/transcribe. For audio longer than 20 minutes, use Pre-recorded STT. For a live transcript while the speaker is still talking, use Real-time STT.