Skip to main content
Together AI’s real-time transcription API uses Voice Activity Detection (VAD) to automatically identify speech segments in an audio stream. While speech is ongoing, the server streams partial transcriptions as delta events. When VAD detects enough silence, the segment ends and the server emits a final completed event with the full transcript. VAD runs a dedicated model on the server to compute a speech probability for each audio frame. Frames above a configurable threshold are classified as speech, and the resulting speech regions are grouped into segments based on silence gaps, minimum durations, and padding.

Parameters

All VAD parameters are optional. If omitted, the server uses sensible defaults tuned for conversational audio.

Common configurations

Conversational audio (default)

The defaults work well for typical voice assistant and conversational use cases: clean microphone audio at 16kHz with turn-taking between speakers.

Phone calls and low-quality audio

Phone audio (8kHz, low SNR) produces lower speech probabilities, so a much lower threshold is needed. Higher min_silence_duration_ms prevents splitting mid-sentence pauses common in call center recordings. A higher max_speech_duration_s allows longer uninterrupted turns.

Configure VAD

You can configure VAD in two ways:

Query parameters at connection time

Pass VAD parameters directly in the WebSocket URL:
To disable VAD entirely, use turn_detection=none:

Session message after connection

Send a transcription_session.updated message after receiving session.created:
To disable VAD via session message, set turn_detection to null:

Disable VAD

With VAD disabled, the server does not automatically segment audio. No completed events are emitted until you explicitly send an input_audio_buffer.commit message, at which point the entire buffered audio is transcribed. This is useful when your application controls segmentation externally.

Example: real-time transcription with custom VAD

Next steps