模块 API

mod_tencent

mod_tencent 是一个ASR/TTS模块,它通过HTTPS与腾讯云端进行语音合成(TTS)交互,通过WebSocket与腾讯云端进行语音识别(ASR)交互。

ASR

mod_tencent 中包含 ASR 服务,提供 asr 引擎 tencent,使用WebSocket与腾讯语音识别接口交互,腾讯接口文档参见实时语音识别接口

参数说明

华为 tencent asr 引擎参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。

配置文件参数说明

	<asr>
		<param name="asr-url" value="wss://asr.cloud.tencent.com/asr/v2"/>
		<param name="app-id" value=""/>
		<param name="secret-id" value=""/>
		<param name="secret-key" value=""/>
		<param name="model-type" value="8k_zh_large"/>
		<param name="need-vad" value="1"/>
		<param name="filter-empty-result" value="0"/>
		<param name="threshold" value="400"/>
		<param name="vad-mode" value="-2"/>
		<param name="start-input-timers" value="true"/>
		<param name="no-input-timeout" value="5000"/>
		<param name="speech-timeout" value="5000"/>
		<param name="confidence_threshold" value="400"/>
		<param name="silence-ms" value="500"/>
		<!--<param name="voice-ms" value="500"/>-->
		<param name="segment-recording-prefix" value=""/>
		<param name="disable-engine-data" value=""/>
		<param name="speech-noise-threshold" value="0"/> <!-- [-1, 1] -->
		<param name="hotword-list" value=""/>
		<param name="hotword-id" value=""/>
		<param name="customization-id" value=""/>
		<param name="convert-num-mode" value=""/>
		<param name="filter-dirty" value="2"/>
		<param name="filter-modal" value="1"/>
		<param name="filter-punc" value="0"/>
	</asr>
  • asr-url: 腾讯asr语音识别的地址。
  • app-id: 腾讯项目ID,获取方式参见API 密钥管理页面
  • secret-id: 秘钥ID,详情参见API 密钥管理页面
  • secret-key: 秘钥,详情参见API 密钥管理页面
  • model-type:语言引擎模型类型,详情参考实时语音识别接口中的engine_model_type
  • need-vad:是否开启腾讯asr vad功能,默认值为1,即开启vad功能。
  • filter-empty-result:是否回调识别空结果,0:回调空结果,1:不回调空结果,默认值为0。
  • threshold:vad检测的噪音阈值,默认值为400。
  • vad-mode:vad模式,详见VAD
  • start-input-timers:开启收集语音计时,默认false。
  • no-input-timeout:无输入(未检测到通话)超时时间,单位毫秒。默认值5000。
  • speech-timeout:语音超时时间,单位毫秒。默认值为5000,最小值为2000。
  • confidence_threshold:静音阈值,默认值400。
  • silence-ms:语音断句检测阈值,单位毫秒。默认值1000。
  • voice-ms:在指定时间内,如果连续检测到说话声音大于threshold。则认为说话人开始说话,单位毫秒,默认值为240。
  • segment-recording-prefix:分段录音路径,若为空则不开启分段录音,默认值为空。
  • disable-engine-data:是否在asr识别结果内添加engine_data param,默认为false。
  • speech-noise-threshold: 噪音参数阈值,默认为0,取值范围:[-1,1]。
  • hotword-list:临时热词表,默认不携带。详情参考实时语音识别接口中的hotword_list
  • hotword-id:热词表 id,默认不携带。详情参考实时语音识别接口中的hotword_id
  • customization-id:自学习模型 id,默认不携带。详情参考实时语音识别接口中的customization_id
  • convert-num-mode:是否进行阿拉伯数字智能转换,0:不转换,直接输出中文数字,1:根据场景智能转换为阿拉伯数字,3: 打开数学相关数字转换。默认值为1。
  • filter-dirty:是否过滤脏词,0:不过滤脏词;1:过滤脏词;2:将脏词替换为*,默认为0。
  • filter-modal:是否过滤语气词,0:不过滤语气词;1:部分过滤;2:严格过滤,默认为0。
  • filter-punc:是否过滤句末的句号,0:不过滤句末的句号;1:过滤句末的句号,默认为0。

临时参数说明

例子:

play_and_detect_speech /root/10s.wav detect:tencent {start-input-timers=true,no-input-timeout=5000,speech-timeout=5000,asr-result-fire-session-event=true}default

这里的 start-input-timersno-input-timeoutspeech-timeout会覆盖配置文件中的参数,而asr-result-fire-session-event为临时参数所特有的。

所有支持的临时参数如下:

  • param-done:重启WebSocket连接。
  • no-input-timeout:无输入(未检测到通话)超时时间,单位毫秒。默认值5000。
  • speech-timeout:语音超时时间,单位毫秒。默认值为5000,最小值为2000。
  • start-input-timers:开启收集语音计时,默认false。
  • confidence-threshold:静音阈值,默认值400。
  • silence-ms:静音检测时间,单位毫秒。默认值500,最小值20。
  • vad-mode:vad模式,详见VAD
  • add-punc:是否添加标点符号,默认值为false。
  • auto-resume:语音识别完成后是否重置asr,默认值为false。
  • asr-result-fire-switch-event:语音识别完成后是否发送DETECTED_SPEECH事件,默认值为false。
  • asr-result-fire-session-event:是否将识别结果放入session event queue内,默认值为false。
  • channel-uuid:通话uuid。
  • app-uuid:执行本次asr命令时的标识uuid,最终会放入DETECTED_SPEECH事件内,作为回调辨别依据。
  • segment-recording-prefix:分段录音路径,若为空则不开启分段录音,默认值为空。
  • disable-engine-data:是否在asr识别结果内添加engine_data param,默认为false。
  • speech-noise-threshold: 噪音参数阈值,默认为0,取值范围:[-1,1]。
  • model-type:语言引擎模型类型,详情参考实时语音识别接口中的engine_model_type
  • need-vad:是否开启腾讯asr vad功能,默认值为1,即开启vad功能。
  • filter-empty-result:是否回调识别空结果,0:回调空结果,1:不回调空结果,默认值为0。
  • filter-dirty:是否过滤脏词,0:不过滤脏词;1:过滤脏词;2:将脏词替换为*,默认为0。
  • filter-modal:是否过滤语气词,0:不过滤语气词;1:部分过滤;2:严格过滤,默认为0。
  • filter-punc:是否过滤句末的句号,0:不过滤句末的句号;1:过滤句末的句号,默认为0。
  • hotword-list:临时热词表,默认不携带。详情参考实时语音识别接口中的hotword_list
  • customization-id:自学习模型 id,默认不携带。详情参考实时语音识别接口中的customization_id
  • convert-num-mode:是否进行阿拉伯数字智能转换,0:不转换,直接输出中文数字,1:根据场景智能转换为阿拉伯数字,3: 打开数学相关数字转换。默认值为1。

调用示例

以一个系统路由为例,先执行 app answer,然后调用 play_and_detect_speech 执行 asr 引擎。

answer
play_and_detect_speech /root/10s.wav detect:tencent {start-input-timers=true,no-input-timeout=5000,speech-timeout=5000,asr-result-fire-switch-event=true}default

上述命令中的/root/10s.wav为容器内已存在的音频文件,请根据实际情况更改。

若您使用XCC进行语音合成,请参考XCC DETECT,同时将示例中的asr_engine更换为tencent

TTS

mod_tencent 中包含 TTS 服务,提供 TTS 引擎 tencent,即腾讯的语音合成,腾讯对接文档参考语音合成

参数说明

腾讯 tts 参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。

配置文件参数说明

	<tts>
		<settings>
			<param name="tts-url" value="https://aai.ap-chengdu.tencentcloudapi.com"/>
			<param name="app-id" value="a"/>
			<param name="secret-id" value="i"/>
			<param name="secret-key" value="s"/>
			<param name="model-type" value="1"/>
			<param name="volume" value="1"/>
			<param name="speed" value="1"/>
			<param name="voice-type" value="0"/>
			<param name="primary-language" value="1"/>
			<param name="Region" value="ap-chengdu"/>
			<param name="curl-timeout" value="2"/>
			<param name="curl-connect-timeout" value="2"/>
			<param name="tts-file-ext" value="wav"/>
		</settings>
	</tts>
  • tts-url:腾讯TTS接口地址。
  • app-id:- app-id: 腾讯项目ID,获取方式参见API 密钥管理页面
  • secret-id: 秘钥ID,详情参见API 密钥管理页面
  • secret-key: 秘钥,详情参见API 密钥管理页面
  • model-type:模型类型,详情参考语音合成接口中的ModelType
  • volume:音量,默认值为1。
  • speed:语速,默认值为1。
  • voice-type:音色 ID,默认值为0,详情参考语音合成接口中的VoiceType
  • primary-language:主语言类型,1:中文,2:英文,3:日文,默认值为1。
  • region:地域ID,详见地域列表
  • curl-timeout:HTTPS请求超时时间,单位秒,默认值为2。
  • curl-connect-timeout:HTTPS连接超时时间,单位秒,默认值为2。
  • tts-file-ext:tts缓存文件后缀格式,默认值为wav。

临时参数说明

mod_tencent暂不支持临时参数。

调用示例

以一个系统路由为例,先执行 app answer,然后调用 speak 执行 tts 引擎。

注意,mod_tencent的音色由配置文件内的voice-type决定

answer 
speak tencent|default|这是一个测试字符串。

若您使用XCC进行TTS放音,请参考XCC TTS,同时将示例中的tts_engine更换为tencent

阿里云