模块 API
ASR(语音识别)
XSwitch 内置了很多 ASR 模块。ASR 的全称是 Automatic Speech Recognition,即自动语音识别。ASR 模块可以将用户的语音转换为文本,从而实现语音识别功能。
不同的 ASR 模块使用不同的引擎,大部分模块使用云端服务,如阿里、讯飞、百度等,也有的模块使用本地引擎。
VAD
ASR 跟 VAD 相关。VAD 即 Voice Activity Detection(语音活动检测),简单来讲,就是用于检测什么时候开始说话,什么时候结束说话。
很多 ASR 引擎都内置了 VAD 功能,一般都推荐使用 ASR 引擎内置的 VAD 功能。
ASR 参数中有几个与 VAD 相关的参数:
voice-ms:语音检测时间,单位毫秒。在这段时间内如果连续检测到语言则认为开始说话。silence-ms:静音检测时间,单位毫秒。在这段时间内如果边续检测到静音则认为是结果讲话,推荐值为500~700毫秒。threash:声音检测能量阈值。vad-mode:VAD 模式,用于选择 VAD 引擎和模式。默认值为-2,即使用 ASR 引擎内置的 VAD。
如果 ASR 引擎内置的 VAD 效果不好,也可以通过vad-mode参数选择其他的 VAD 引擎。以下是可用的 vad-mode 列表(注意,根据您使用的版本不同,并不是所有版本中都支持这些模式):
-2:默认,使用 ASR 引擎内置的 VAD。-1:系统内置 VAD,简单 VAD。0:FVAD 0。1:FVAD 1。2:FVAD 2。3:FVAD 3。20:Silero VAD。
详见 VAD 。
通用参数
ASR 模块有一些通用参数。这些参数对理论上对所有引擎都有效。如果 ASR 模块通用参数与特定引擎相关参数重叠,推荐使用通用参数。
language:语言,不同的引擎有不同的格式,如zh-CN等。no-input-timeout:无输入(未检测到通话)超时时间,单位毫秒。典型值5000。speech-timeout:语音超时时间,单位毫秒。典型值:15000。add-punc:是否添加标点符号。默认值为false。partial:是否返回识别中间结果。默认值为false。
VAD 相关参数:
voice-ms:语音检测时间,单位毫秒。在这段时间内如果连续检测到语言则认为开始说话。若参数不存在则使用默认的时间(不同引擎默认值可能不同),推荐值为60毫秒。silence-ms:静音检测时间,单位毫秒。在这段时间内如果边续检测到静音则认为是结果讲话,推荐值为500~700毫秒。threash:声音检测能量阈值。
不同的引擎有不同的参数,详见各引擎相关的文档。