模块 API
mod_huawei
mod_huawei 是一个ASR/TTS模块,它通过HTTPS与华为云端进行语音合成(TTS)交互,通过WebSocket或HTTPS与华为云端进行语音识别(ASR)交互。
ASR
mod_huawei 中包含 ASR 服务,提供两个 asr 引擎 huawei与huawei-rest,其中huawei-rest asr 引擎对应华为的一句话识别HTTP接口,使用HTTPS与华为接口交互,华为接口文档参见一句话识别;huawei asr引擎对应华为实时语音识别接口,使用WebSocket与华为接口交互,华为接口文档参见实时语音识别接口。
参数说明
华为 huawei 与huawei-rest 两个 asr 引擎参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。
huawei与huawei-rest共用配置文件参数。
配置文件参数说明
<asr> <param name="asr-url" value="https://sis-ext.cn-north-1.myhuaweicloud.com"/> <param name="project-id" value=""/> <param name="region" value="cn-north-1"/> <param name="threshold" value="400"/> <param name="vad-mode" value="-1"/> <param name="start-input-timers" value="false"/> <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="60"/> </asr>
asr-url: 是华为asr语音识别的地址。project-id: 华为项目ID,获取方式参见获取项目ID。region: 区域,不同区域对应asr请求地址不同,详情参见终端节点。threshold: vad检测的噪音阈值,默认值为100。vad-mode:vad模式,详见VAD,默认值为-1。start-input-timers:开启收集语音计时,默认false。no-input-timeout:无输入(未检测到通话)超时时间,单位毫秒。默认值5000。speech-timeout:语音超时时间,单位毫秒。默认值为5000,最小值为2000。confidence_threshold:静音阈值,默认值400。silence-ms:语音断句检测阈值,单位毫秒。默认值500,最小值20。voice-ms:在指定时间内,如果连续检测到说话声音大于threshold。则认为说话人开始说话,单位毫秒,默认值为60。
临时参数说明
例子:
play_and_detect_speech /root/10s.wav detect:huawei-rest {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为临时参数所特有的。
以下为huawei asr 引擎支持的临时参数:
no-input-timeout:无输入(未检测到通话)超时时间,单位毫秒。默认值5000。speech-timeout:语音超时时间,单位毫秒。默认值为5000,最小值为2000。start-input-timers:开启收集语音计时,默认false。confidence-threshold:静音阈值,默认值400。silence-ms:语音断句检测阈值,单位毫秒。默认值500,最小值20。vad-mode:vad模式,详见VAD。asr-mode:asr模式,对应华为实时语音识别三种模式。short-stream:流式一句话;continue-stream:实时语音识别连续识别;sentence-stream:实时语音识别单据识别。add-punc:是否添加标点符号,默认值为false。vocabulary-id:定制范热词ID,默认不携带。interim-results:是否返回中间识别结果,默认值为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事件内,作为回调辨别依据。
以下为huawei-rest asr 引擎支持的临时参数:
no-input-timeout:无输入(未检测到通话)超时时间,单位毫秒。默认值5000。speech-timeout:语音超时时间,单位毫秒。默认值为5000,最小值为2000。start-input-timers:开启收集语音计时,默认false。confidence-threshold:静音阈值,默认值400。silence-ms:语音断句检测阈值,单位毫秒。默认值500,最小值20。vad-mode:vad模式,详见VAD。
调用示例
以一个系统路由为例,先执行 app answer,然后调用 play_and_detect_speech 执行 asr 引擎。
answer play_and_detect_speech /root/10s.wav detect:huawei {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更换为huawei或huawei-rest。
TTS
mod_huawei 中包含 TTS 服务,提供 TTS 引擎 huawei,即华为的语音合成,华为对接文档参考语音合成
参数说明
华为 tts 参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。
配置文件参数说明
<tts> <param name="tts-url" value="https://sis-ext.cn-north-1.myhuaweicloud.com"/> <param name="project-id" value=""/> <param name="tts-file-ext" value="wav"/> <param name="region" value="cn-north-1"/> <param name="token-expires" value="36000"/> <!-- default value --> <param name="curl-timeout" value="2"/> <param name="curl-connect-timeout" value="2"/> <param name="property" value="chinese_xiaoyan_common"/> <!-- default voice: chinese_xiaoyan_common --> <param name="volume" value="50"/> <!-- [0, 100] --> <param name="speed" value="0"/> <!-- [-500, 500] --> <param name="pitch" value="0"/> <!-- [-500, 500] --> </tts>
tts-url:华为TTS接口地址。project-id:华为项目ID,获取方式参见获取项目ID。tts-file-ext:tts缓存文件后缀格式,默认值为wav。region:区域,不同区域对应asr请求地址不同,详情参见终端节点。token-expires:TTS token过期时间,单位秒,默认值为36000。curl-timeout:HTTPS请求超时时间,单位秒,默认值为10。curl-connect-timeout:HTTPS连接超时时间,单位秒,默认值为5。property:语音合成特征字符串,组成形式为{language}_{speaker}_{domain},即“语种_人员标识_领域”,默认值为chinese_xiaoyan_common。volume:音量,默认值为50。speed:语速,默认值为0。pich:语调,默认值为0。
临时参数说明
例子:
speak {channel_uuid=1235}huawei|chinese_xiaoyan_common|这是一个测试字符串。
这里的 channel_uuid为临时参数。
所有的临时参数如下:
channel_uuid:通话UUID。
调用示例
以一个系统路由为例,先执行 app answer,然后调用 speak 执行 tts 引擎,chinese_xiaoyan_common为发音人,更多发音人请参见普通发音人property取值范围。
answer speak huawei|chinese_xiaoyan_common|这是一个测试字符串。
若您使用XCC进行TTS放音,请参考XCC TTS,同时将示例中的tts_engine更换为huawei或huawei-rest。
全局参数说明
mod_huawei全局参数用于获取token。
<configuration name="ali.conf" description="ali TTS/ASR configuration"> <settings> <param name="token-url" value="https://iam.cn-north-1.myhuaweicloud.com/v3/auth/tokens?nocatalog=true"/> <param name="region" value="cn-north-1"/> <param name="domain-name" value=""/> <param name="username" value=""/> <param name="password" value=""/> <param name="curl-timeout" value="10"/> <param name="token-expires" value="36000"/> <param name="curl-connect-timeout" value="5"/> </settings> </configuration>