Files
pipecat/changelog/4244.fixed.md
Aleix Conchillo Flaqué dcd21e7ff4 Rework audio idle detection with timestamp-based adaptive sleep
Replaces the per-frame asyncio.Event signaling with a monotonic
timestamp updated on each audio frame. The handler sleeps until the
next deadline (last_audio_time + timeout), recomputing on each wake-up
to account for audio arriving during sleep.

This avoids waking the handler on every audio frame (~50/s at 20ms
chunks), and guarantees detection latency is bounded by timeout rather
than 2 * timeout.

Also renames audio_starvation_timeout to audio_idle_timeout and
associated identifiers for consistency with existing pipecat naming
(user_idle_timeout, etc.).
2026-04-10 10:35:18 -07:00

307 B

  • Fixed VADController getting stuck in the SPEAKING state when audio frames stop arriving mid-speech (e.g. user mutes mic). A new audio_idle_timeout parameter (default 1s, set to 0 to disable) forces a transition back to QUIET and emits on_speech_stopped when no audio is received while speaking.