> ## 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.

# Overview

> Read timing and audio quality so the agent replies, yields, and hears clearly.

In a voice conversation, the agent must get timing and audio quality right. It needs to know when the user has finished speaking, when to yield if someone interrupts, and it needs clean audio to make accurate decisions. This section covers the features that handle all three.

<img src="https://mintcdn.com/zeroruntime/q3ZgSvvBl7VLzLk2/images/turn-detection-overview.svg?fit=max&auto=format&n=q3ZgSvvBl7VLzLk2&q=85&s=66903db71305bcb6e9f457411e505a24" alt="Turn detection, VAD, and de-noise in the pipeline" className="block w-full my-4" width="1160" height="340" data-path="images/turn-detection-overview.svg" />

## What this section covers

<CardGroup cols={1}>
  <Card title="Turn detection" icon="comment-dots" href="/build/turn-detection-and-interruptions/turn-detection">
    Decide when the user has actually finished a turn so the agent replies at the right moment.
  </Card>

  <Card title="VAD and interruptions" icon="waveform-lines" href="/build/turn-detection-and-interruptions/vad-and-interruptions">
    Detect whether speech is present and let the user barge in while the agent is talking.
  </Card>

  <Card title="De-noise" icon="headphones" href="/build/turn-detection-and-interruptions/denoise">
    Remove background noise before audio reaches the pipeline so every stage works from clean input.
  </Card>
</CardGroup>

## Turn Detection and VAD

VAD and turn detection answer two different questions, and work best paired, with VAD as the first-pass speech detector and the turn detector deciding when the turn is over:

* **VAD**: *is anyone speaking?* Fast and lightweight, but tracks silence only, not meaning.
* **Turn Detection**: *is the user actually done?* A semantic model shifts from raw audio analysis to Natural Language Understanding (NLU), reading words and context to tell a real endpoint from a thinking pause.

| Aspect           | Traditional VAD (Silence-Based)                 | Semantic Turn Detection                                  |
| :--------------- | :---------------------------------------------- | :------------------------------------------------------- |
| Detection method | Listens for silence.                            | Understands words and context.                           |
| Approach         | Relies on a fixed timer (e.g. 800ms).           | Uses a transformer model to predict intent.              |
| Performance      | Often interrupts or lags.                       | Knows when to wait and when to respond instantly.        |
| Handling pauses  | Struggles with natural pauses and filler words. | Distinguishes between a brief pause and a true endpoint. |

## Interruptions

Real conversations aren't strictly turn by turn. When a user cuts in, interruption handling lets the agent stop and listen, using VAD or STT to confirm they genuinely want the turn.

## Noise Cancellation

Background noise such as typing, fans, or street sound lowers transcription accuracy and confuses turn detection. De-noise strips it from the incoming audio in real time, so STT, VAD, and the turn detector all work from a clean signal.

## What's Next

<CardGroup cols={3}>
  <Card title="Turn Detection" icon="comment-dots" href="/build/turn-detection-and-interruptions/turn-detection">
    Set up semantic turn detection first.
  </Card>

  <Card title="VAD and Interruptions" icon="waveform-lines" href="/build/turn-detection-and-interruptions/vad-and-interruptions">
    Add VAD and handle user interruptions.
  </Card>

  <Card title="De-noise" icon="headphones" href="/build/turn-detection-and-interruptions/denoise">
    Remove background noise before the pipeline.
  </Card>
</CardGroup>

## References

<Tabs>
  <Tab title="Python">
    #### Examples

    <CardGroup cols={2}>
      <Card title="Cascade Basic" icon="github" href="https://github.com/ZeroRuntimeAI/zrt-python-sdk-examples/blob/main/features/basic_cascade.py">
        Voice agent with VAD and turn detection configured.
      </Card>
    </CardGroup>

    #### SDK Reference

    <CardGroup cols={2}>
      <Card title="End of Utterance" icon="book" href="/api-reference/python/core/errors-and-config#eouconfig">
        `End of Utterance` in the Python API reference.
      </Card>

      <Card title="VAD" icon="Mic" href="/api-reference/python/core/pipeline#vad">
        `VAD` in the Python API reference.
      </Card>
    </CardGroup>
  </Tab>
</Tabs>
