Dograh

LiveKit VAD vs Pipecat VAD: Every Setting and Its Default

LiveKit VAD vs Pipecat VAD: Every Setting and Its Default
ComparisonNovember 6, 2026·6 min read

LiveKit VAD vs Pipecat VAD: Every Setting and Its Default

Abhishek Kumar
Abhishek Kumar·Co-founder, Dograh AI

Co-founder of Dograh, building the future of open-source voice AI agents. Own your voice AI stack.

LiveKit and Pipecat both run the Silero VAD model, so the difference is in their defaults. LiveKit fires at a 0.5 speech probability and waits 0.55 seconds of silence. Pipecat asks for 0.7 plus a volume floor and waits 0.2 seconds. Dograh, the open-source AI voice agent platform we build on Pipecat, can be self-hosted or run on Dograh Cloud.

Key Takeaways

  • Both frameworks wrap the same Silero model with different trigger and silence defaults.
  • LiveKit waits 0.55 seconds of silence before speech stops. Pipecat waits 0.2.
  • On noisy lines, raise the speech threshold and the minimum speech time first.

This post is part of our guide to voice activity detection, where VAD marks speech and turn detection decides when callers finish. Below, we list each framework's VAD and interruption settings from its own code, then what to change for noisy phone lines and where Dograh fits.

Pipecat's VAD settings, from its code

Pipecat keeps its VAD settings in one small class, VADParams, which every analyzer takes. Pipecat's source sets confidence to 0.7, start_secs to 0.2, stop_secs to 0.2 and min_volume to 0.6. A frame counts as speech only when the Silero score clears the confidence and the volume clears the floor, and the two timers turn those frames into speech start and speech stop events.

The Silero wrapper, SileroVADAnalyzer, accepts audio at 8,000 or 16,000 Hz only and reads 512 samples at 16 kHz or 256 at 8 kHz, 32 milliseconds either way. It runs the ONNX model on the CPU and resets the model's state every 2 seconds, because the state drifts in long silence or noise. The repo also carries a Krisp VIVA analyzer, which accepts more sample rates, and an AIC Quail analyzer.

Pipecat's VAD only marks speech, and the turn ends in a separate strategy. The default SpeechTimeoutUserTurnStopStrategy waits a user_speech_timeout of 0.6 seconds and for the transcript. The Smart Turn option is a small audio model that runs on the CPU and listens to how a sentence sounds, with a stop_secs of 3 seconds for turns it judges unfinished. Interruptions are a third setting, a turn start strategy such as a minimum word count.

LiveKit's VAD settings, from its code

LiveKit sets its Silero options when the plugin loads, through VAD.load. The Silero plugin docs list activation_threshold 0.5, min_speech_duration 0.05 seconds, min_silence_duration 0.55 seconds and prefix_padding_duration 0.5 seconds, with up to 60 seconds of buffered speech. The sample_rate takes 8,000 or 16,000 and defaults to 16,000, and force_cpu keeps inference on the CPU.

Speech ends when the score falls below a deactivation threshold, set 0.15 under the activation threshold by default, so a score hovering near 0.5 does not flicker on and off. The docs spell out the trade-off for the main threshold: a higher value "might miss soft speech", and a lower one "might identify noise as speech".

Turn and interruption settings sit in a separate object. In LiveKit Agents' turn handling options, the endpointing delay runs from 0.5 to 3 seconds after speech before a turn ends, in a fixed or dynamic mode. Interruptions are on by default and need 0.5 seconds of speech (min_duration), with min_words at 0. After a false interruption, the agent resumes its line once 2 seconds of silence pass. The older AgentSession arguments for these settings are deprecated in favour of this object.

One Silero model, two sets of defaults

The two frameworks load the same model and make different bets. LiveKit fires sooner on soft speech and waits longer before calling speech stopped. Pipecat asks for a higher score and a volume floor, then stops quickly and leaves the patience to its turn strategy. The table adds Dograh, which runs Pipecat's analyzer underneath.

One caller recording with a pause runs through the same Silero model in Pipecat and in LiveKit. LiveKit starts marking speech on the soft opening and marks it stopped 0.55 seconds into the pause; Pipecat starts later and marks it stopped after 0.2 seconds.
Dograh runs Pipecat's analyzer underneath, so the 0.2-second stop is what runs under every Dograh call. The right values depend on your callers' audio, so move one setting at a time and re-test on a real call.
SettingPipecatLiveKitDograh
DetectorSilero, with Krisp VIVA and AIC Quail as optionsSilero pluginSilero through Pipecat
Speech thresholdconfidence 0.7 and min_volume 0.6activation_threshold 0.5, released 0.15 lowerPipecat's 0.7 and 0.6, set in code
Speech before it countsstart_secs 0.2 smin_speech_duration 0.05 s0.2 s
Silence before speech stopsstop_secs 0.2 smin_silence_duration 0.55 s0.2 s
Sample rates8,000 or 16,000 Hz8,000 or 16,000 Hz, 16,000 by default8,000 or 16,000 Hz, the carrier's rate on phone calls
Turn endSpeech timeout 0.6 s, or Smart Turn (3 s)Endpointing 0.5 to 3 sTranscription-based, or Smart Turn Analyzer (Incomplete Turn Timeout 2 s)
Interruption guardTurn start strategy, such as minimum wordsmin_duration 0.5 s, min_words 0Minimum words, 2 by default (1 to 10)
LicenceBSD 2-ClauseApache 2.0BSD 2-Clause
Dograh

Open Source Alternative to Vapi / Retell

Self-hosted voice agent platform — no per-minute fees

dograh-hq/dograh

Star on GitHub

What to change for noisy phone lines

The right values depend on your callers' audio, so move one setting at a time and re-test on a real call. A TV or a busy shop floor both produce sound that a speech model scores as speech some of the time, and the aim is to keep that sound from starting a turn or stopping the agent.

On Pipecat, raise confidence and min_volume so background speech scores under the line, and raise start_secs so a short bang never becomes a speech start. Use a minimum-word turn start strategy for interruptions, so the agent keeps talking until the transcript holds real words. If Silero still struggles on your audio, the Krisp analyzer is the other detector in the repo to try.

On LiveKit, raise activation_threshold and accept that very soft voices may be missed, then raise min_speech_duration above its 0.05-second default. For interruptions, raise min_duration or set min_words above 0, which needs a speech-to-text model. Keep false-interruption resume on, so an agent stopped by a noise picks its line back up.

Both Silero wrappers take 8 kHz audio directly, and Silero's published scores are measured at 16 kHz, so judge every change on recorded phone calls. Our comparison of WebRTC VAD vs Silero VAD covers how the detector itself behaves on noisy 8 kHz audio.

Where Dograh fits on top of Pipecat

Dograh runs on a fork of Pipecat and uses its SileroVADAnalyzer with a stop time of 0.2 seconds, so the Pipecat column above is what runs under every Dograh call. The detector values are set in code. In the agent editor you get the two settings that change what callers hear, Turn Detection and Interruption Strategy, without writing pipeline code.

For noisy phone lines, the lever is Minimum words. It is the default Interruption Strategy, and the agent keeps talking until the caller's transcript holds 2 words, or up to 10 if you raise it. Voice activity, the other strategy, stops the agent on any detected speech and fits quiet lines. For callers who pause mid-sentence, Smart Turn Analyzer waits up to its Incomplete Turn Timeout, 2 seconds by default.

If you are still choosing a framework, LiveKit vs Pipecat compares them beyond VAD, and Dograh vs Pipecat shows what a ready platform adds on top of the framework. Because Dograh is open source under the BSD 2-Clause licence, every default in the last column can be read in its code.

Join the Dograh Community

Dograh is an OSS alternative to Vapi. Join our Slack community for queries, releases, best practices & community interactions.

Glossary

Activation threshold
The Silero score above which LiveKit counts a frame as speech, 0.5 by default. Pipecat's equivalent is confidence, 0.7 by default, paired with a volume floor.
Deactivation threshold
The lower score at which LiveKit's plugin marks speech as ended, 0.15 under the activation threshold by default. The gap stops a borderline score from switching speech on and off.
Endpointing delay
How long LiveKit waits after speech before ending the caller's turn, between 0.5 and 3 seconds by default. It sits after the VAD silence timer, not inside it.
False interruption
An interruption that turns out to be noise or a short sound, judged by silence afterwards. LiveKit treats one as false after 2 seconds of silence and resumes the agent's line.

Frequently Asked Questions

Get started with Dograh

Build, deploy, and scale AI agents with Dograh. Join the community of developers building the future.