语音活动检测

语音活动检测功能可用于检测应用程序内是否有语音活动。大多数情况下,客户不需要调整 Vivox SDK 的默认语音活动检测 (VAD) 设置。

提示:在手动调节 VAD 设置之前,请使用自动调整 VAD 测试设置。与默认 VAD 设置相比,自动调整 VAD 能够更有效地检测玩家的说话状态。

可以使用 VivoxService.Instance.EnableAutoVoiceActivityDetectionAsync() 启用自动调整 VAD。这将允许 SDK 自动配置 VoiceActivityDetection 设置。这将覆盖 VivoxService.Instance.SetVoiceActivityDetectionPropertiesAsync() 中的任何手动设置。

如果使用 VivoxService.Instance.DisableAutoVoiceActivityDetectionAsync() 禁用了自动调整 VAD,则可以调用 VivoxService.Instance.SetVoiceActivityDetectionPropertiesAsync(int hangover, int noiseFloor, int sensitivity) 来专门设置属性,或将这些属性重置为默认级别。

参数细节

hangover 参数定义了 VAD 在检测到最后一个语音帧之后从语音模式切换回到静音所需的时间长度(以毫秒为单位)。默认设置是 2000。

noiseFloor 参数是介于 0 与 20000 之间的无量纲值,用于控制 VAD 将语音与背景噪声分隔的状态。较低的数值对应较为安静的用户环境,其中语音是唯一的人声来源。较高的数值对应嘈杂的背景环境。默认值为 576。

注意:更改 VAD 本底噪声设置不会影响当前加入的频道。如果终端用户可以更改 VAD 设置,请向用户说明本底噪声设置只有在开启下一次语音会话后才能生效,或者仅允许用户在频道外时进行本底噪声设置。

sensitivity 参数是介于 0 与 100 之间的无量纲值,表示 VAD 的敏感度。增大此值会减小 VAD 的敏感度(0 表示最敏感,而 100 表示最不敏感)。敏感度值越高,触发 VAD 所需的音频音量越大。默认值为 43。

使用默认 VAD 且显示 vad_sensitivity 滑动条的应用程序应将敏感度值限制在 0(传输所有麦克风活动)和 70(传输的活动很有限)之间。