Skip to main content
Pipecat Smart Turn uses a Whisper-based audio model (~8 MB) to predict turn completion directly from speech audio. It detects prosodic cues — falling intonation, speech rate changes — that indicate a caller has finished speaking. Provider identifier: pipecat_smart_turn_eos

Source Location


How It Works

  1. UserAudioPacket audio is accumulated in a rolling float32 buffer (max ~5 seconds at 16 kHz)
  2. When a final SpeechToTextPacket arrives, the model runs inference on the buffered audio
  3. The model outputs a turn-completion probability (0.0 – 1.0)
  4. If probability >= threshold → set timer to quick_timeout (caller is likely done)
  5. If probability < threshold → set timer to silence_timeout (caller is likely still speaking)
  6. Interim transcripts reset the timer to fallback_timeout
  7. When the timer fires, EndOfSpeechPacket is emitted

Parameters


Model Setup

Docker

The model is downloaded from Hugging Face during the Docker build and patched for ONNX Runtime compatibility. No manual action required.

From Source

Download the model manually:
If you encounter ONNX opset errors, patch the model:
To override the model path:
Requires ONNX Runtime (libonnxruntime) — same dependency as Silero/FireRed VAD.