Skip to main content
Turn detection identifies when a speaker has finished talking — the core signal a voice agent needs to know when to respond. The STT streaming API supports turn detection out of the box: the server detects end-of-turn automatically, and you can tune its sensitivity or take full manual control. Turn detection is available on the WebSocket streaming endpoint. Sync (file upload) transcription processes complete audio files, so turn detection does not apply.

How it works

With inworld/inworld-stt-1 streaming, turn detection runs by default — no configuration required:
  1. As you stream audio, the server returns interim (partial) transcription results.
  2. When the server detects end-of-turn (for example, a sustained pause), it finalizes the transcript for that turn (isFinal: true).
  3. Speech after the turn boundary starts a new transcript.
With default settings, a sustained mid-utterance pause (on the order of a couple of seconds) is enough to split the transcript into two final results. The exact pause duration is not fixed — it depends on the end-of-turn model’s confidence and can be tuned with the thresholds below. The server also emits voice-activity events you can use to drive application behavior (e.g., interrupt playback when the user starts speaking):

Tuning automatic turn detection

Adjust sensitivity via transcribeConfig in the first WebSocket message:
Turn-detection tuning fields are also available for AssemblyAI models via assemblyaiConfig (minEndOfTurnSilenceWhenConfident, maxTurnSilence, vadThreshold). Turn-detection behavior for third-party models follows the capabilities of each provider.

Manual turn control

To hand turn control fully to the client, disable server-side voice activity detection by setting vadThreshold to 0:
With VAD disabled, the server no longer splits turns automatically. Signal turn boundaries yourself:
  • Send an endTurn message at the end of each speaker turn to finalize the transcript.
  • Send closeStream when you are done sending audio.
With manual turn control, a single turn has a maximum length (currently around 30 seconds; subject to change). Send endTurn regularly at natural turn boundaries rather than relying on the limit.

Choosing a mode

Next steps

WebSocket API Reference

Full message and configuration schema for the streaming endpoint.

Developer Quickstart

Make your first STT API call and get a transcript.