模块 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-timers
、no-input-timeout
、speech-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
。