“Order twenty…” The assistant starts confirming twenty units. “…fourteen, sorry,” the caller continues, while the old answer keeps playing.
A faster model cannot repair that interaction by itself. Trace the turn boundary, the correction and the last stale audio the listener hears. The successful result is fourteen, with the earlier confirmation stopped or repaired.
Match the symptom to its owner
| Symptom | First investigation |
|---|---|
| Early quantity reply · V02 | LiveKit turn_detection, endpointing.min_delay, or provider turn events. Balance early replies against waits on finished turns. |
| “Uh-huh” interrupts · V13 | interruption.mode, min_duration, min_words; adaptive handling where supported. Preserve genuine short “stop” interruptions. |
| Old audio continues · V08 | Measure caller interruption onset to last stale audible sample. Split detection delay from playback stop and queue clearing. |
| Next answer uses twenty · V02/V08 | Final transcript, preemptive-response cancellation and conversation state. Preserve fourteen; discard stale responses and count wasted work. |
These are unexecuted investigations. Match LiveKit’s TurnHandlingOptions to the installed SDK and detection mode. In STT mode, its minimum endpointing delay adds to the provider’s signal. Change one control at a time. LiveKit tuning guide
.
Decide who ends the turn—and who stops playback
Voice activity detection (VAD) detects speech or silence. A context-aware detector can also assess whether the thought is complete. The application may instead use explicit completion, such as push-to-talk.
LiveKit with Deepgram Flux separates responsibilities: Flux supplies conversational recognition and turn events; LiveKit coordinates the application. Deepgram’s integration guide still requires VAD for interruption handling. Ending a user turn and detecting speech over an answer are separate jobs. Integration guide .
Gemini Live API, currently a preview, combines more of the audio interaction. It supports automatic VAD or explicit activity boundaries. On interruption, the client must stop playback and clear queued audio even when server generation stops. Gemini Live capabilities .
Choose based on the controls and maintenance your application needs. Both designs leave listener-side playback work to the app.
Measure all the way to the listener
Real streaming stages overlap. Adding their durations can double-count time, and adding component 95th percentiles cannot produce the end-to-end percentile. Measure the complete distribution directly, with clock-alignment limits recorded. First audible output and a complete useful answer are different endpoints.
Run V02, V08 and V13 from the scenario pack , and attach the events to the latency CSV . Report premature replies, missed corrections, stale playback and failed turns alongside timing. Keep unsuccessful attempts visible; a quick response with the wrong quantity is still a failed turn.
Documentation reviewed September 6, 2026. The scripts and timing example are synthetic.






