Skip to Content
Builder Docs
Agent Design & Conversation Logic

Turns, Silero VAD & Interruptions

Plain-English UI guide for Voice Sensitivity presets, Start/Stop turn strategies, Silero VAD vs. Provider VAD, the 3 user muting layers, Smart Turn, and Realtime S2S turn ownership.

Start Here: Fast UI Tuning Guide

For 90% of client calls, open Workflow Settings -> General -> Turn Detection and pick a Voice Sensitivity Preset (Balanced for normal calls, High Sensitivity for soft-spoken callers, Noisy Room for traffic/speakerphone) instead of tweaking individual thresholds manually.

1. Plain-English UI Settings Guide

Open any workflow's Settings -> General panel and Canvas Node Properties:

Voice Sensitivity Presets (Quick Tuning)

(Clicking a card updates the 4 fields below simultaneously while leaving VAD Silence Hold (vad_stop_secs) untouched. Brand-new workflows default to 0.20 / 0.50 / 0.8s / 3.5s, which the UI highlights under High Sensitivity.)

UI PresetVolume Floor (vad_min_volume)Neural Confidence (vad_confidence)Silence Before Responding (turn_silence_timeout_secs)Safety Watchdog Timeout (user_turn_stop_timeout)Use When
High Sensitivity (Recommended)0.200.500.7s3.5sSurveys, soft-spoken callers, quick "yes/no" replies, landline audio
Balanced (Default)0.350.650.9s4.5sNormal indoor/mobile calls in quiet rooms
Noisy Room (Noise Shield)0.550.751.2s5.0sStreet noise, office chatter, fans, delivery riders, speakerphone
Custom Tuned0.05–0.800.30–0.900.3–2.5s (API 3.0s)1.0–15.0sFine-tuning edge cases (pair with VAD Silence Hold 0.10–1.00s, default 0.25s)

Turn Detection & Interruption Controls Explained

  • Interruption Strategy (turn_start_strategy — When the caller can interrupt the bot):
    • Default (default): Stops the bot whenever Silero VAD (~0.2s voice onset) or any interim/final transcript fires. Lowest latency, most sensitive to backchannels.
    • Minimum words (min_words, 1–10 words, default 3): When the bot is silent, opens the turn immediately on VAD (0 ms delay) with a 1-word threshold; when the bot is speaking, ignores coughs and short backchannels ("hmm", "okay") until interim/final text reaches N words (and resets sub-threshold filler so it doesn't bleed into the next turn).
    • Provisional VAD (provisional_vad, 0.1–5.0s, default 1.5s): Pauses bot output playback cleanly on speech onset while waiting up to N seconds for a real transcript; if none arrives, resumes playback seamlessly and locks out late false alarms for the rest of that bot utterance.
  • Detection Strategy (turn_stop_strategy — When the bot decides the caller finished speaking):
    • Transcription-based (transcription): Waits for Silence Before Responding (0.8s default) + finalized transcript (or STT deadline).
    • Smart Turn Analyzer (turn_analyzer): Evaluates a local ML prosody model over 500ms pre-speech + up to 8s of speech. Even if it predicts COMPLETE, it waits Silence Before Responding; if INCOMPLETE ("Wait, my number is..."), it waits up to Incomplete Turn Timeout (smart_turn_stop_secs, 0.5–10s, default 2.0s), bypassing extra debounce once that timer fires (capped by a secondary safety fallback).
  • Idle & Call Duration Guardrails:
    • Max User Idle Timeout (max_user_idle_timeout, 10.0s default; <= 0 disables): Two-strike check-in after bot finishes speaking—Strike 1 asks "Are you still there?", Strike 2 politely hangs up. Resets whenever caller speaks.
    • Max Call Duration (max_call_duration, runtime default 300s): Hard call limit capped by tier/org duration limit (note: UI helper copy notes 600s, while API/runtime default is 300s).
  • Per-Node Allow Interruption (allow_interrupt):
    • Start Call: Defaults false so line noise or "Hello?" doesn't break the opening greeting.
    • Agent: Defaults true (turn false only on mandatory disclosures/readbacks).
    • End Call: Always forced false and hidden in the node editor so closing goodbyes finish cleanly.

2. Quick Recipes by Symptom

(Detailed step-by-step fixes live in Audio & Turn Problems.)

  • Bot cuts caller off mid-sentence: Switch Detection Strategy to Smart Turn Analyzer or raise Silence Before Responding (1.0–1.4s).
  • Traffic/fan noise interrupts bot: Choose Noisy Room preset, raise Minimum Words to 3–4, or turn Allow Interruption off on key disclosures.
  • Bot misses quiet "yes" / "haan": Switch to High Sensitivity preset (0.20 volume / 0.50 confidence) and keep Boost Short Affirmations ON.
  • 4-second awkward silence after caller finishes: Lower Silence Before Responding (0.7–0.8s) and lower Safety Watchdog Timeout toward 2.5–3.5s.

3. How Turns Work Under the Hood

A Turn is one complete speaker floor interval (User Turn or Agent Turn). Local Silero VAD checks both vad_min_volume AND vad_confidence every 32 ms (plus a 1.0s audio-idle failsafe if a mic mutes mid-sentence), and VAD Silence Hold (vad_stop_secs) should stay short (0.20–0.35s, default 0.25s) while pacing is tuned via Silence Before Responding.

Loading diagram...

All Turn & Timer Behaviors at a Glance

  • Voice User Turn: Triggered by Silero VAD (or External STT Turn) -> transcribed by STT -> passed to LLM.
  • DTMF Keypad Turn (Plivo): When Enable DTMF is on, keypad presses buffer and flush to the LLM on # or after 3.0s of keypad inactivity.
  • Delayed Start (Start Call): When delayed_start = true, waits delayed_start_duration (0.1–10.0s, default 2.0s) after call answer before playing the opening greeting.
  • Safety Watchdog Timeout (user_turn_stop_timeout, default 3.5s / 4.0s external): Fires at 1x timeout if VAD is already quiet on a stalled transcript, or 2x timeout if line static kept VAD stuck open.
  • Bot Output VAD Tail (bot_vad_stop_secs): Defaults to 3.0s in standard pipeline mode and 0.5s in Realtime S2S mode for snappy bot-turn closure.

4. Local Silero VAD vs. Provider Turn Ownership

Pipeline ConfigurationWho Detects Start/Stop?Which Settings Control It?
Standard Pipeline + Deepgram Nova-3 / Sarvam / SmallestAI / OpenAI STTLocal Silero VAD + Local Turn StrategiesVoice Sensitivity Presets, vad_stop_secs, Interruption Strategy, Detection Strategy, plus optional provider STT server endpointing
External-Turn STTs: Deepgram Flux (flux-general-*), Talkar Managed Flux (multi/de/en/es/fr/hi/it/ja/nl/pt/ru), or Cartesia ink-2External STT Turn EventsSTT EOT thresholds unconditionally replace Detection Strategy (user_turn_stop_timeout defaults 4.0s). Explicitly choosing min_words or provisional_vad still overrides default start behavior in cascade mode.
openai_realtime, azure_realtime, grok_realtimeProvider Server VADLocal Silero VAD, vad_*, turn_start_strategy, and turn_stop_strategy are inactive (user_mute_strategies gates input forwarding while muted).
google / google_vertex (Gemini Live)Local VAD tracking + Gemini Server Barge-InUses local Silero VAD for turn lifecycle tracking with local interruptions disabled (Gemini owns barge-in).
ultravox RealtimeLocal VAD + UltravoxLocal Silero VAD handles turn lifecycle tracking and local interruptions.

5. Three Active User Muting Layers Preventing False Interruptions

False interruptions aren't stopped at TTS—incoming caller audio/transcription frames are filtered at the front door by three OR'd muting layers:

  1. Startup Greeting Mute: Always mutes caller barge-in from second zero until the bot's very first utterance completes, preventing pickup clicks or "Hello?" from cancelling your greeting regardless of allow_interrupt.
  2. Function / Tool Execution Mute: Mutes user speech turns while mid-call HTTP, transfer, or DB tools are running—with a dedicated speech listener exception on wait_for_user so callers can resume early by speaking.
  3. Node, Transition & Teardown Mute: Mutes caller frames whenever allow_interrupt = false on the active node, whenever queued transition or tool-filler speech is playing, or while tearing down at hangup.

On this page