模块 API
mod_ali
mod_ali
是一个ASR/TTS模块,它通过HTTPS与阿里云端进行语音合成(TTS)交互,通过WebSocket与阿里云端进行语音识别(ASR)交互。
ASR
mod_ali
中包含 ASR 服务,提供 asr 引擎 ali
,即阿里的实时语音识别功能,阿里对接文档参考阿里实时语音识别
参数说明
阿里 asr 参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。
配置文件参数说明
<asr> <param name="asr-url" value="wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1"/> <param name="appkey" value=""/> <param name="region" value="cn-shanghai"/> <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.5"/> <!-- [-1, 1] --> </asr>
asr-url
: 是阿里 websocket 语音识别的地址。appkey
: 阿里asr appkey,如何获取参考管理项目。region
: 服务器所在的地域ID。threshold
: vad检测的噪音阈值。vad-mode
:vad模式,详见VAD。start-input-timers
:开启收集语音计时,默认false。no-input-timeout
:无输入(未检测到通话)超时时间,单位毫秒。默认值5000。speech-timeout
:语音超时时间,单位毫秒。默认值为5000,最小值为2000。confidence_threshold
:静音阈值,默认值400。silence-ms
:语音断句检测阈值,单位毫秒,默认值500。voice-ms
:在指定时间内,如果连续检测到说话声音大于threshold。则认为说话人开始说话,单位毫秒,默认值为60。segment-recording-prefix
:分段录音路径,若为空则不开启分段录音,默认值为空。disable-engine-data
:是否在asr识别结果内添加engine_data param,默认为false。speech-noise-threshold
: 阿里asr引擎内置vad功能的噪音阈值。
临时参数说明
例子:
play_and_detect_speech /root/10s.wav detect:ali {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
为临时参数所特有的。
所有的临时参数如下:
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。vocabulary-id
:定制范热词ID,默认不携带。interim-results
:是否返回中间识别结果,默认值为false。semantic-sentence-detection
:是否开启语义断句,默认值为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事件内,作为回调辨别依据。speech-noise-threshold
:阿里asr引擎内置vad功能的噪音阈值。enable-inverse-text-normalization
:ITN(逆文本inverse text normalization)中文数字转换阿拉伯数字。设置为true时,中文数字将转为阿拉伯数字输出,默认值:false。
调用示例
以一个系统路由为例,先执行 app answer
,然后调用 play_and_detect_speech
执行 asr 引擎。
answer play_and_detect_speech /root/10s.wav detect:ali {start-input-timers=true,no-input-timeout=5000,speech-timeout=5000,asr-result-fire-switch-event=true}default
上述命令中的/root/10s.wav
为容器内已存在的音频文件,请根据实际情况更改。
若您使用XCC进行语音合成,请参考XCC DETECT
TTS
mod_ali
中包含 TTS 服务,提供 tts 引擎 ali
,即阿里的语音合成功能,阿里对接文档参考阿里语音合成
参数说明
阿里 tts 参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。
配置文件参数说明
<tts> <param name="tts-url" value="https://nls-gateway.cn-shanghai.aliyuncs.com/stream/v1/tts"/> <param name="appkey" value=""/> <param name="tts-file-ext" value="wav"/> <param name="region" value="cn-shanghai"/> <param name="token-expires" value="36000"/> <!-- default value --> <param name="curl-timeout" value="10"/> <param name="curl-connect-timeout" value="5"/> <param name="volume" value="50"/> <!-- [0, 100] --> <param name="speech-rate" value="0"/> <!-- [-500, 500] --> <param name="pich-rate" value="0"/> <!-- [-500, 500] --> <param name="cache-dir" value="5"/> <param name="disable-cache" value="false"/> <param name="max-requests" value="false"/> </tts>
tts-url
:阿里TTS RESTful API接口地址。appkey
:阿里tts appkey,如何获取参考创建项目。tts-file-ext
:tts缓存文件后缀格式,默认值为wav。region
:服务器所在的地域ID。token-expires
:TTS token过期时间,单位秒,默认值为36000。curl-timeout
:HTTPS请求超时时间,单位秒,默认值为10。curl-connect-timeout
:HTTPS连接超时时间,单位秒,默认值为5。volume
:音量,默认值为50。speech-rate
:语速,默认值为0。pich-rate
:语调,默认值为0。cache-dir
:语音缓存路径,默认值为/tmp
。disable-cache
:是否取消缓存,默认值为false。max-requests
:同一缓存文件在同一时间最大被使用次数,默认值为200。
临时参数说明
例子:
speak {channel_uuid=1235}ali|zhixiaoxia|这是一个测试字符串。
这里的 channel_uuid
为临时参数。
所有的临时参数如下:
voice
:发音人。channel_uuid
:通话UUID。
调用示例
以一个系统路由为例,先执行 app answer
,然后调用 speak
执行 tts 引擎,zhixiaoxia
为发音人,更多发音人请参见接口说明。
answer speak ali|zhixiaoxia|这是一个测试字符串。
若您使用XCC进行TTS放音,请参考XCC TTS
全局参数说明
mod_ali
全局参数用于获取token。
<configuration name="ali.conf" description="ali TTS/ASR configuration"> <settings> <param name="token-url" value="http://nls-meta.cn-shanghai.aliyuncs.com/"/> <param name="region" value="cn-shanghai"/> <param name="acckey" value=""/> <param name="secret" value=""/> <param name="version" value="2019-02-28"/> <param name="token-expires" value="36000"/> <param name="curl-timeout" value="10"/> <param name="curl-connect-timeout" value="5"/> </settings> </configuration>
token-url
:阿里token url。region
:服务所在的地域ID。acckey
:阿里云账号AccessKey ID。secret
:阿里云账号AccessKey Secret。version
:POP API版本。token-expires
:TTS token过期时间,单位秒,默认值为36000。curl-timeout
:HTTPS请求超时时间,单位秒,默认值为10。curl-connect-timeout
:HTTPS连接超时时间,单位秒,默认值为5。