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

# Turn Detector

> Use the unified Turn Detector plugin with the server-hosted Echo model to decide when the caller has finished speaking, in Python, JavaScript, and Go.

The **Turn Detector** decides when the caller has finished their turn, so the agent replies
at the right moment rather than interrupting or pausing too long. It uses **Echo**, a
server-hosted model exposed through the Zero Runtime Inference Gateway via the unified
`TurnDetector` class. Nothing is downloaded or loaded on your machine; authentication requires
`ZRT_AUTH_TOKEN`. Choose `echo-small` for the lowest latency or `echo-large` for higher
accuracy.

## Usage

Set your auth token, then construct `TurnDetector` with the `echo-small` or `echo-large`
model and pass it to the pipeline's `turn_detector` slot.

<CodeGroup>
  ```python Python theme={null}
  # Set ZRT_AUTH_TOKEN in your environment.

  from zrt.plugins import TurnDetector

  turn_detector = TurnDetector(model="echo-small")

  # Pipeline(turn_detector=turn_detector, ...)
  ```
</CodeGroup>

The turn detector pairs with [voice activity detection](/plugins/vad/silero): VAD finds that
the caller is speaking, the turn detector decides when they have stopped.

## What's next

For the four-state classification, model comparison, supported languages, and
end-of-utterance handling, see the full
[Turn Detection guide](/build/turn-detection-and-interruptions/turn-detection).
