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