IBM Cloud Docs
语音活动检测

语音活动检测

IBM Watson® Speech to Text 服务提供了两个语音活动检测参数,用于控制用于语音识别的音频。 这些参数指定服务对非语音事件和背景噪声的敏感度。 参数是独立的: 您可以单独或一起使用这些参数。

大多数语言模型都支持语音活动检测。 有关更多信息,请参阅语言模型支持

语音活动检测的工作方式

语音活动检测使用输入音频流,并确定要传递流中的哪些部分用于语音识别。 背景语音和噪声会对语音识别产生不利影响,导致服务转录错误的词、生成实际并不存在的词,或者省略输入音频包含的词。 语音活动检测功能可帮助确保只处理用于语音识别的相关音频。

可以使用此功能来控制语音识别的以下方面:

  • 抑制背景噪音。 呼叫中心数据通常包含来自其他座席的串扰(“串音”)。 对此,可以设置音量阈值,音量低于此阈值时将忽略这类背景语音。
  • 抑制背景噪音。 某些音频(例如,在工厂中录制的语音)可能包含高音量的背景噪声。 对此,可以设置阈值,音量低于此阈值时将忽略这类背景噪声。
  • 抑制非语音音频事件。 背景音乐和背景音事件(例如,向电话线上保持等待的客户播放的音频)可能导致识别不准确。 此外,静默也可能会导致不必要的识别或转录错误。 对此,可以设置阈值,音量低于此阈值时将忽略这类事件。

缺省情况下,语音活动检测配置为针对每个模型的一般用例提供最佳性能。 对于特定用例,缺省设置可能并不是最佳设置,并且可能导致转录缓慢,或导致词插入和删除。 因此鼓励您试验不同的设置来确定哪些值最适用于您的音频。

语音检测器灵敏度

使用 speech_detector_sensitivity 参数可调整语音活动检测的灵敏度。 使用此参数可抑制因音乐、咳嗽和其他非语音事件而产生的词插入。 服务通过根据语音和非语音活动的先前模型来评估输入音频块,对其传递用于语音识别的音频产生偏见。

指定介于 0.0 到 1.0 之间的浮点值。 缺省值为 0.5,表示针对敏感度级别提供合理的折中。 值 0.0 会抑制所有音频(不转录任何语音)。 值 1.0 不会抑制任何音频(语音检测敏感度处于禁用状态)。 这些值在敏感度相对于语音的单调曲线上增加。 指定一个或两个小数位的精度 (例如,0.55) 通常是足够的。

此参数会影响语音识别的质量和等待时间:

  • 值越低,等待时间越短,因为可能传递用于语音识别的音频越少。 但是,较低的设置可能会导致丢弃包含实际语音的音频块,造成文字记录中丢失有效的内容。
  • 值越高,等待时间越长,因为可能传递用于语音识别的音频越多。 但是,较高的设置可能会导致传递包含非语音事件的音频块,造成向文字记录添加虚假内容。

语音检测器灵敏度示例

以下示例请求为同步 HTTP 接口的 speech_detector_sensitivity 参数指定值 0.6。 在这种情况下,服务识别到的非语音事件比缺省情况可能要略多一些。

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"

背景音频抑制

使用 background_audio_suppression 参数根据背景音频的音量来抑制背景音频,以防止其被转录为语音。 使用此参数可抑制私下会话或背景噪声。 例如,有相对稳定且安静(低信号能量)的背景声音时,请使用此参数。 因为此类噪声可能会干扰转录,所以可能会在音频中并无实际语音之处生成内容。

指定位于 0.0 到 1.0 范围内的浮点值。 缺省值为 0.0,表示不抑制(背景音频抑制处于禁用状态)。 值 0.5 表示针对一般用途提供合理水平的音频抑制。 值 1.0 会抑制所有音频(不转录任何语音)。 这些值在单调曲线上增加。 指定一个或两个小数位的精度 (例如,0.55) 通常是足够的。

此参数还可能会影响语音识别的质量和等待时间。 但是,由于缺省情况下禁用了背景噪声抑制,因此将此参数设置为大于零的值只能缩短等待时间。 但是,值越高,传递用于语音识别的音频会逐渐减少,这可能会导致文字记录中丢失有效内容。

背景音频抑制示例

以下示例请求为同步 HTTP 接口的 background_audio_suppression 参数指定值 0.5。 在这种情况下,服务会抑制合理水平的背景音频。

IBM Cloud

curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

IBM Cloud Pak for Data IBM Software Hub

curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"

语言模型支持

支持将 speech_detector_sensitivitybackground_audio_suppression 参数用于以下语言模型:

  • 对于大型语音模型和下一代模型, 所有模型都支持这些参数。
  • 对于先前生成的模型, 大多数模型都支持这些参数。 以下车型目前不支持语音活动检测。 这些参数在用于这些模型时会被忽略。
    • 阿拉伯语宽带模型 (ar-MS_BroadbandModel)
    • 巴西葡萄牙语宽带模型 (pt-BR_BroadbandModel)
    • 中文宽带模型 (zh-CN_BroadbandModel)
    • 中文窄带模型 (zh-CN_NarrowbandModel)
    • 德语宽带模型 (de-DE_BroadbandModel)