SileroVAD Extension
Silero Voice Activity Detection (VAD) is a machine learning-based tool designed to identify segments of audio that contain human speech. It is highly efficient, lightweight, and capable of operating in real-time, making it ideal for applications such as speech recognition, telecommunication systems, and audio processing pipelines.
You can find more information about Silero VAD at https://github.com/snakers4/silero-vad
Dependencies​
The SileroVAD extension requires the ONNX extension to be loaded.
Nodes​
The SileroVAD Extension provides the following audio nodes for a Switchboard SDK audio graph:
| Node | Description |
|---|---|
| VAD | Detects voice activity in audio signal. |
Demo​
Silero VAD Integration Reference
Tuning VAD​
The most impactful parameter is minSilenceDurationMs, which controls how long silence must persist before VAD fires an end event. The default is 100 ms, which is too short for conversational speech; inter-word pauses run 200–500 ms in natural speech. Start at 300 ms and tune from there based on whether utterance boundaries land where you expect them to.
The companion parameter is speechPadMs (default 0 ms), which adds padding before and after each detected speech segment. The before-padding addresses start-clipping: VAD takes one or more frames to activate, cutting off the first phoneme before the buffer captures it. Setting speechPadMs to 100–200 ms recovers that lost audio.
threshold (default 0.5) sets the confidence score above which Silero classifies a frame as speech. Lowering it increases sensitivity in quiet environments; raising it reduces false activations in noisy ones. Don't go below 0.3 without testing in your target environment; at very low values, music and HVAC will trigger detection.
frameSize (default 512 samples, or 32 ms at 16 kHz) controls the processing window. At 16 kHz, 512 is the only supported value; the underlying Silero model rejects any other size at that sample rate. If your pipeline uses 8 kHz audio, 256 samples is supported.
Common VAD Problems​
The two most common problems are related: clipped utterance starts and false mid-sentence boundaries. Both come from timing parameters sitting at their defaults. If the first word is consistently cut off, increase speechPadMs to 150–250 ms; the frame-activation delay is consuming the first syllable before your buffer captures it. If utterances are split mid-sentence, minSilenceDurationMs is too short for your speakers; 500 ms works for deliberate speech, 700 ms for users who pause frequently between phrases.
False activations from environmental noise are a separate class of problem. If VAD fires on fans or HVAC noise, raise the threshold first. If the noise floor is high enough that raising the threshold would suppress soft speech as well, add upstream noise suppression; RNNoise or Speex DSP significantly improve Silero's accuracy in challenging environments.
VAD that never fires an end event usually indicates continuous noise above threshold. Check your input gain first: an overdriven microphone creates clipping artifacts that read as continuous speech energy. Check the audio graph for feedback loops. If neither explains it, raise the threshold or add noise suppression.
On platforms using the ONNX runtime, the first activation is often slow by a few hundred milliseconds because the runtime initializes on first inference. Pre-warm the model at app startup by running a silent frame through the VAD node before the user needs real-time detection.
Download​
You can find the download links for this extension on our Downloads page.