跳到主要内容

语音活动检测

流式声波及其派生类型(如可捕获声波)支持语音活动检测(VAD)。VAD会过滤输入的音频数据,仅在检测到语音时填充内部缓冲区。

该插件提供两种VAD实现方案:

默认实现使用libfvad,这是一个轻量级的语音活动检测库,可在Runtime Audio Importer支持的所有平台和引擎版本上高效运行。

基础用法

创建声波后,使用ToggleVAD函数启用VAD:

切换VAD节点

启用VAD后,您可以随时重置它:

重置VAD节点

默认VAD设置

使用默认VAD提供程序时,您可以通过更改VAD模式来调整其敏感度:

Set VAD Mode节点

mode参数控制VAD过滤音频的激进程度。数值越高限制越严格,意味着误报可能性更低,但可能会遗漏部分语音。

VAD提供程序

启用ToggleVAD功能后,您可以根据需求选择不同的语音活动检测(VAD)提供程序。默认提供程序是内置的,而Silero VAD等其他提供程序可通过扩展插件获取。

设置VAD提供程序节点

Silero VAD 扩展

Silero VAD 通过神经网络提供更精确的语音检测。使用方法如下:

  1. 确保项目中已安装 Runtime Audio Importer 插件
  2. Google Drive 下载 Silero VAD 扩展插件
  3. 将下载的压缩包解压到项目的 Plugins 文件夹中(如果该文件夹不存在请先创建)
  4. 重新编译项目(此扩展需要 C++ 项目)
important
  • 默认 VAD 支持 Runtime Audio Importer 兼容的所有引擎版本(UE 4.24、4.25、4.26、4.27、5.0、5.1、5.2、5.3、5.4、5.5 和 5.6)
  • Silero VAD 支持 Unreal Engine 4.27 及所有 UE5 版本(4.27、5.0、5.1、5.2、5.3、5.4、5.5 和 5.6)
  • Silero VAD 目前仅支持 Windows 平台
  • 此扩展以源代码形式提供,需要使用 C++ 项目
  • 有关手动构建插件的更多信息,请参阅 Building Plugins 教程

安装完成后,您可以使用 SetVADProvider 函数选择 Silero 类提供程序作为 VAD 提供程序。

语音开始与结束检测

语音活动检测(VAD)不仅能检测语音的存在,还能检测语音活动的开始和结束。这对于在播放或捕获过程中触发语音开始或结束事件非常有用。

您可以通过调整参数(如最小语音持续时间和静音持续时间)来自定义语音开始和结束检测的灵敏度。这些参数有助于微调检测,避免误报,例如拾取短暂噪音或语音间过短的停顿。

最小语音持续时间

最小语音持续时间参数设置了触发语音开始事件所需的最小连续语音活动量。这有助于过滤掉不应被视为语音的短暂噪音,确保只有持续的语音活动才会被识别。最小语音持续时间的默认值为 300 毫秒

设置最小语音持续时间节点

静默时长

静默时长参数用于设置触发语音结束事件所需的静默持续时间。这可以防止在单词或句子之间的自然停顿期间过早结束语音检测。静默时长的默认值为500毫秒

设置静默时长节点

绑定到语音委托

您可以绑定特定的委托来响应语音开始或结束事件。这对于基于语音活动触发自定义行为非常有用,例如启动/停止文本识别,或调整其他音频源的音量。

绑定事件到OnSpeechStarted 绑定事件到OnSpeechEnded

对比VAD提供商

默认VAD (libfvad)

优势:

  • 轻量高效
  • 全平台兼容
  • 资源占用极低
  • 适合移动设备和低功耗设备

适用场景:

  • 安静环境中的简单语音检测
  • 移动应用程序
  • 性能优先的项目
  • 需要全平台支持的场景