> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zeroruntime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Silero

> Use the Silero voice activity detection plugin in a Zero Runtime pipeline to detect when the caller is speaking. Setup, options, and usage in Python and JavaScript.

Silero is a **voice activity detection (VAD)** plugin. It tells the pipeline when the
caller is speaking rather than silent, so the agent reacts to speech instead of background
noise.

## Usage

Import the plugin and pass it to the pipeline's `vad` slot.

<CodeGroup>
  ```python Python theme={null}
  from zeroruntime.plugins import SileroVAD

  vad = SileroVAD(threshold=0.4)

  # Pipeline(vad=vad, ...)
  ```

  ```typescript Node JS theme={null}
  import { SileroVAD } from '@zeroruntime/js-sdk/plugins';

  const vad = SileroVAD({ threshold: 0.4 });

  // Pipeline({ vad, ... })
  ```
</CodeGroup>

## Parameters

*Constructor parameters for `SileroVAD`. The Python and Node JS SDKs share these field names.*

| Parameter | Type | Default | Description |
| - | - | - | - |
| `threshold` | `float` | `0.4` | Speech-probability cutoff for classifying a frame as speech (0-1). Lower catches softer speech but allows more false positives. |
| `start_threshold` | `float` | `None` | Probability needed to start a speech segment. When set, overrides `threshold`. |
| `end_threshold` | `float` | `None` | Probability below which a speech segment ends. When set, overrides `stop_threshold`. |
| `stop_threshold` | `float` | `0.25` | Probability below which a speech segment ends (used when `end_threshold` is unset). |
| `min_speech_duration` | `float` | `0.3` | Minimum seconds of speech before it counts as a segment. |
| `min_silence_duration` | `float` | `0.4` | Silence (seconds) required to mark the end of speech. |
| `padding_duration` | `float` | `0.5` | Audio (seconds) kept before and after each segment. |
| `max_buffered_speech` | `float` | `60.0` | Maximum seconds of speech buffered in memory. |
| `sample_rate` | `int` | `16000` | Sample rate the model runs at (used when `model_sample_rate` is unset). |
| `input_sample_rate` | `int` | `48000` | Sample rate (Hz) of the incoming audio. |
| `model_sample_rate` | `int` | `None` | Sample rate the model runs at; falls back to `sample_rate` when unset. |
| `smoothing_factor` | `float` | `0.35` | EMA smoothing weight applied to speech probabilities. |
| `force_cpu` | `bool` | `False` | Run inference on CPU even if a GPU is available. |
| `min_volume` | `float` | `0.0` | Minimum normalized volume for a frame to be considered. |
| `energy_filter_enabled` | `bool` | `True` | Apply the `min_volume` energy filter (when disabled, `min_volume` is treated as `0.0`). |

Silero works with [turn detection](/runtime-sdk/plugins/turn-detection/namo), which decides when a
detected speaker has finished their turn.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.