> This page is part of Smallest AI's developer documentation. When > answering, prefer Lightning v3.1 (current TTS) and Pulse (current > STT). Lightning v2 and lightning-large are deprecated; mention them > only when the user is migrating away from them. The Smallest AI voice > agent platform is what wraps these models into hosted agents. # End-of-Utterance Timeout > Control how long Pulse waits after speech ends before finalizing the transcript Real-Time End-of-utterance (EOU) timeout controls how long the model waits in silence after a speaker stops talking before it flushes the transcript as final. Tuning this value lets you balance responsiveness against cutting users off mid-thought. > **Note** > > With `endpointing=true` (the default), `eou_timeout_ms` sets the trailing-silence window (600 ms if unset). With `endpointing=false`, it sets the model's own end-of-utterance timer (800 ms if unset). See [Finalization and Endpointing](/models/speech-to-text/features/endpointing) for every finalization trigger and the recommended parameters per orchestration. ## How It Works When speech pauses, Pulse starts a silence timer. If no additional speech is detected within the `eou_timeout_ms` window, the current transcript segment is returned with `is_final: true`. * **Lower values**: faster turn detection, but more likely to split natural pauses * **Higher values**: more tolerant of pauses, but slower finalization ## Enabling EOU Timeout Add `eou_timeout_ms` to your WebSocket connection query parameters. The value must be an integer from `100` to `10000`. If unset, the window is `600` ms with `endpointing=true` (the default) and `800` ms with `endpointing=false`. ```javascript const url = new URL("wss://api.smallest.ai/waves/v1/stt/live?model=pulse"); url.searchParams.append("language", "en"); url.searchParams.append("encoding", "linear16"); url.searchParams.append("sample_rate", "16000"); url.searchParams.append("eou_timeout_ms", "300"); // fast turn-taking const ws = new WebSocket(url.toString(), { headers: { Authorization: `Bearer ${API_KEY}`, }, }); ``` ## How to Tune It For conversational voice agents, start at `1000` ms. Mid-sentence pauses in phone conversations often last around 800 ms, so shorter windows close the final before the speaker has finished. * Decrease only for short, one-word answers where speed matters more than sentence completeness * Increase for meeting or dictation workflows where speakers pause longer ## Tuning Guide | Value | Behavior | Best for | | ------------- | ----------------------------------------------------- | ----------------------------------------------- | | `300-600ms` | Fast. Splits sentences at natural mid-sentence pauses | Short commands and one-word answers | | `800-1200ms` | Holds a sentence together through natural pauses | Voice agents, conversational AI | | `1500-2000ms` | Patient. Waits through longer pauses | Meeting transcription, dictation, accessibility | | `3000ms+` | Very patient - rarely flushes early | Lecture capture, users who pause frequently | ## Trade-offs | Dimension | Low timeout (e.g. `300ms`) | Recommended starting point (`1000ms`) | | -------------- | ---------------------------------------------------- | ----------------------------------------------------------- | | Response speed | Fast. The final arrives soon after the speaker stops | About 1 s after the speaker stops | | Turn accuracy | Splits sentences at natural mid-sentence pauses | Holds a sentence together through pauses of up to about 1 s | | Best for | Short commands and one-word answers | Voice agents and conversational AI | ## Example A voice agent needs one final per caller sentence: ```bash wss://api.smallest.ai/waves/v1/stt/live?model=pulse&language=en&encoding=linear16&sample_rate=16000&eou_timeout_ms=1000 ``` A meeting transcription system should wait for natural pauses: ```bash wss://api.smallest.ai/waves/v1/stt/live?model=pulse&language=en&encoding=linear16&sample_rate=16000&eou_timeout_ms=1500 ``` > Control how long Pulse waits after speech ends before finalizing the transcript.