# Voice Activity Detection

> Understand voice activity detection in Vivox.

Voice activity detection detects the presence or absence of speech in an application. In most cases, customers do not need to adjust the default voice activity detection (VAD) settings of the Vivox SDK.

The Vivox Unreal SDK does not provide an API to adjust the VAD settings. If you want to modify the code for the Unreal wrapper, you can add support for the `vx_req_aux_set_vad_properties` request from the Core SDK. You can manipulate the VAD mic gating by using these requests and handling their responses.

To use `vx_req_aux_set_vad_properties` and `vx_req_aux_get_vad_properties`, you need to add these requests to an existing endpoint or an exposed function of the Unity API, or create a new endpoint. To confirm your successful requests, ensure that you handle the responses.

Before manually tuning the VAD settings, test your setup using Automatically Adjusted VAD. Automatically Adjusted VAD is better at detecting a player speaking than the default VAD settings.

> **Note:**
>
> Use `vad_auto` when a player uses the onboard microphone and speakers on PCs and mobile devices. Players using high-quality Bluetooth earbuds, headsets or USB headsets might not benefit from `vad_auto` as many of those devices have built-in noise reduction or directional microphones that already produce a clean voice signal.

Set `vad_auto` to 1 in the `vx_req_aux_set_vad_properties` call to enable automatic adjustment. See the example shown below to enable `vad_auto`:

```plaintext
vx_req_aux_set_vad_properties_t *req;
vx_req_aux_set_vad_properties_create(&req);
req->vad_hangover = 2000;
req->vad_sensitivity = 43;
req->vad_noise_floor = 576;
req->vad_auto = 1;
vx_issue_request(&req->base);
```

> **Note:**
>
> Although the VAD ignores the other settings when `vad_auto` is enabled, you must provide valid parameters or the call will return an error. This example provides the default values for the `vad_hangover`, `vad_sensitivity`, and `vad_noise_floor`.

If the Automatically Adjusted VAD does not help, disable vad\_auto by setting it to 0 and provide values for `vad_hangover`, `vad_sensitivity`, and `vad_noise_floor`.

> **Note:**
>
> Changes to the VAD noise floor settings do not affect currently joined channels. If the ability to change VAD settings is available to the end-user, indicate that noise floor changes only take effect in the next voice session or only allow changing the noise floor channel when the client is not in-channel.
