> ## Documentation Index
> Fetch the complete documentation index at: https://daily-docs-pr-4892.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# TEN VAD

> Voice activity detection using the TEN VAD backend

export const CommunityMaintained = ({maintainer, maintainerUrl, repo}) => <Note>
    <strong>Community-maintained integration.</strong> This service is built and
    maintained by{" "}
    <a href={maintainerUrl} target="_blank" rel="noreferrer">
      {maintainer}
    </a>
    . Pipecat does not test or officially support it. Please report issues and
    request changes on the{" "}
    <a href={repo} target="_blank" rel="noreferrer">
      source repository
    </a>
    . Learn more about{" "}
    <a href="/api-reference/server/services/community-integrations">
      community integrations
    </a>
    .
  </Note>;

<CommunityMaintained maintainer="rahulsolanki001" maintainerUrl="https://github.com/rahulsolanki001" repo="https://github.com/rahulsolanki001/pipecat-ten-vad" />

## Overview

`TenVadAnalyzer` is a Pipecat `VADAnalyzer` implementation backed by
[TEN VAD](https://github.com/TEN-framework/ten-vad), a low-latency,
high-performance voice activity detector for real-time voice agents. It analyzes
incoming audio and reports voice activity confidence, letting a transport detect
when a user starts and stops speaking. It is a drop-in alternative to Pipecat's
built-in `SileroVADAnalyzer`.

<CardGroup cols={2}>
  <Card title="Source Repository" icon="github" href="https://github.com/rahulsolanki001/pipecat-ten-vad">
    Source code, examples, and issues for the TEN VAD integration
  </Card>

  <Card title="PyPI Package" icon="cube" href="https://pypi.org/project/pipecat-ten-vad/">
    The `pipecat-ten-vad` package on PyPI
  </Card>

  <Card title="TEN VAD" icon="book" href="https://github.com/TEN-framework/ten-vad">
    The upstream TEN VAD project and supported platforms
  </Card>
</CardGroup>

## Installation

This is a community-maintained package distributed separately from `pipecat-ai`.

First install the TEN VAD backend (per the source repository, install it directly
from GitHub):

```bash theme={null}
pip install git+https://github.com/TEN-framework/ten-vad.git
```

Then install the integration:

```bash theme={null}
pip install pipecat-ten-vad
```

## Prerequisites

No API key is required to use the VAD analyzer itself. You need:

* **TEN VAD backend**: Installed from GitHub as shown above.
* **16 kHz audio**: TEN VAD requires a `16000` Hz sample rate.

<Note>
  Supported platforms (per the source repository): Linux x64, macOS (arm64 +
  x64), and Windows x64.
</Note>

## Configuration

Constructor parameters for `TenVadAnalyzer`:

<ParamField path="sample_rate" type="int" default="None">
  Audio sample rate in Hz. Must be `16000` if provided. Passing any other value
  raises a `ValueError`.
</ParamField>

<ParamField path="threshold" type="float" default="0.6">
  Detection threshold (0.0–1.0) used by TEN VAD. Higher values require a
  stronger voice signal to trigger.
</ParamField>

<ParamField path="params" type="VADParams" default="None">
  Pipecat VAD smoothing parameters (e.g. `stop_secs`). See
  [`VADParams`](#vadparams) below.
</ParamField>

### VADParams

Standard Pipecat VAD smoothing parameters, passed via the `params` argument using
`VADParams(...)`. A commonly tuned field:

| Parameter   | Type    | Default | Description                                                                                                  |
| ----------- | ------- | ------- | ------------------------------------------------------------------------------------------------------------ |
| `stop_secs` | `float` | `0.3`   | Seconds of silence before end-of-turn is triggered. Lower is more responsive; higher cuts fewer turns short. |

## Usage

Pass `TenVadAnalyzer` to a transport's `vad_analyzer`, the same way you would use
`SileroVADAnalyzer`:

```python theme={null}
from pipecat.audio.vad.vad_analyzer import VADParams
from pipecat.transports.services.daily import DailyParams, DailyTransport
from pipecat_ten_vad import TenVadAnalyzer

transport = DailyTransport(
    room_url,
    token,
    "My Bot",
    DailyParams(
        audio_in_enabled=True,
        audio_out_enabled=True,
        vad_enabled=True,
        vad_analyzer=TenVadAnalyzer(
            sample_rate=16000,
            threshold=0.6,
            params=VADParams(stop_secs=0.3),
        ),
        vad_audio_passthrough=True,
    ),
)
```

## Compatibility

Tested with Pipecat v0.0.106. Check the [source
repository](https://github.com/rahulsolanki001/pipecat-ten-vad) for the latest
tested version and changelog.
