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

# Tune VAD and cross-talk sensitivity

> Tune how sensitively the model detects speech and overlapping speech.

Two input parameters let you trade precision against recall on the detection stages of the pipeline. Both are floats in `[-5.0, 5.0]` and both default to `0.0`, which is the balanced setting.

| Parameter              | Controls                     | Higher values                           | Lower values                                               |
| ---------------------- | ---------------------------- | --------------------------------------- | ---------------------------------------------------------- |
| `vadSensitivity`       | Voice activity detection     | Increase recall — less speech is missed | Increase precision — less non-speech is detected as speech |
| `crosstalkSensitivity` | Overlapping speech detection | Detect more overlapping speech          | Report only clear overlaps                                 |

The defaults are tuned for general-purpose audio. Reach for these parameters when you know something specific about your recordings that the balanced setting does not account for.

## When to raise or lower `vadSensitivity`

**Raise it** when speech is being missed — quiet or distant speakers, soft back-channels ("mm-hm", "right"), heavily compressed phone audio, or a recording where short utterances matter and you would rather over-detect than lose them.

**Lower it** when non-speech is being picked up as speech — background music, keyboard noise, laughter, HVAC hum, or a noisy open-plan office. This is also the setting to reach for when downstream transcription is producing text for segments that contain no words.

## When to raise or lower `crosstalkSensitivity`

**Raise it** for genuinely conversational audio where interruptions carry meaning: debates, multi-party meetings, contact-center calls where agent and customer talk over each other.

**Lower it** when you need clean, non-overlapping segments — for example when feeding results to a transcription step that expects one speaker at a time, or when brief acknowledgements are being reported as overlap and fragmenting your turns.

<Tip>
  Tune one parameter at a time and compare against a fixed sample of your own audio.
</Tip>

## Two ways to handle overlap

There are two distinct approaches, depending on what you need.

If you are interested in speaker diarization, use `crosstalkSensitivity` to bias detection toward or away from overlap, and read the resulting turns.

If you are a power user interested in overlapping speech itself, request `crosstalkProbability` and apply your own threshold after the fact:

```json theme={null}
{
  "url": "https://files.pyannote.ai/marklex1min.wav",
  "model": "precision-3",
  "crosstalkProbability": true
}
```

## Example request

<CodeGroup dropdown>
  ```python sensitivity.py theme={null}
  import requests

  data = {
      "url": "https://files.pyannote.ai/marklex1min.wav",
      "model": "precision-3",
      "vadSensitivity": 1.5,
      "crosstalkSensitivity": 1.5,
  }

  response = requests.post(
      "https://api.pyannote.ai/v1/diarize",
      headers={"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"},
      json=data,
  )
  print(response.json())
  ```

  ```bash theme={null}
  curl -X POST "https://api.pyannote.ai/v1/diarize" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://files.pyannote.ai/marklex1min.wav",
      "model": "precision-3",
      "vadSensitivity": 1.5,
      "crosstalkSensitivity": 1.5
    }'
  ```

  ```typescript sensitivity.ts theme={null}
  const data = {
    url: "https://files.pyannote.ai/marklex1min.wav",
    model: "precision-3",
    vadSensitivity: 1.5,
    crosstalkSensitivity: 1.5,
  };

  const response = await fetch("https://api.pyannote.ai/v1/diarize", {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" },
    body: JSON.stringify(data),
  });
  console.log(await response.json());
  ```
</CodeGroup>

Both parameters are also accepted on the [identify endpoint](/api-reference/identify), with the same ranges and defaults.

## Related

* [Output scores](/tutorials/output-scores) — inspect the effect of these parameters frame by frame
* [Configuring the number of speakers](/tutorials/speaker-configuration) — constrain how many speakers the model may find
