模块 API
mod_azure
mod_azure
是一个ASR/TTS模块,它通过HTTPS与微软进行语音合成(TTS)交互,通过Azure SDK与微软云端进行语音识别(ASR)交互。
ASR
mod_azure
中包含 ASR 服务,提供 asr 引擎 azure
,即微软的speech-to-text
功能,微软对接文档参考speech-to-text。
参数说明
微软 asr 参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。
配置文件参数说明
<asr> <settings> <param name="region" value="eastasia"/> <param name="appkey" value="k"/> <param name="language" value="zh-CN"/> </settings> </asr>
region
: 区域ID,详见region。appkey
: 语音资源密钥。language
: 语言,详见language-support。
由于mod_azure
的ASR功能使用Azure SDK
,故无需提供asr-url
等参数。
临时参数说明
例子:
play_and_detect_speech /root/10s.wav detect:azure {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。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。language
:语言,详见language-support。
调用示例
以一个系统路由为例,先执行 app answer
,然后调用 play_and_detect_speech
执行 asr 引擎。
answer play_and_detect_speech /root/10s.wav detect:azure {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
更换为azure
。
TTS
mod_azure
中包含 TTS 服务,提供 tts 引擎 azure
,即微软的语音合成功能,微软对接文档参考语音合成
参数说明
微软 tts 参数分为配置文件参数与临时参数。配置文件参数可在界面或xml文件内进行修改,重载模块生效。临时参数一般跟随命令出现,该参数只会在当前这句话中生效。临时参数与配置文件参数部分参数存在重叠,当两者同名参数同时出现时,临时参数优先级高于配置文件参数。
配置文件参数说明
<tts> <settings> <param name="token-url" value="https://eastasia.api.cognitive.microsoft.com/sts/v1.0/issueToken"/> <param name="tts-url" value="https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1"/> <param name="tts-file-ext" value="mp3"/> <param name="api-key" value="k"/> <param name="token-expires" value="500"/> <param name="token-cache" value="true"/> <param name="curl-timeout" value="5"/> <param name="curl-connect-timeout" value="2"/> </settings> </tts>
token-url
:微软token接口地址。tts-url
:微软TTS HTTPS接口地址。api-key
:语音资源密钥。token-expires
: token过期时间。token-cache
: 是否缓存token,以供重复使用。tts-file-ext
:tts缓存文件后缀格式,默认值为wav。curl-timeout
:HTTPS请求超时时间,单位秒,默认值为5。curl-connect-timeout
:HTTPS连接超时时间,单位秒,默认值为2。
临时参数说明
例子:
speak {channel_uuid=1235}azure|default|I'm excited to try text to speech!
这里的 channel_uuid
为临时参数。
所有的临时参数如下:
voice
:发音人。目前只可使用lang='en-US' xml:gender='Female' name='en-US-AvaMultilingualNeural'
作为发音人。channel_uuid
:通话UUID。
调用示例
以一个系统路由为例,先执行 app answer
,然后调用 speak
执行 tts 引擎。
answer speak azure|default|I'm excited to try text to speech!
若您使用XCC进行TTS放音,请参考XCC TTS,同时将示例中的tts_engine
更换为azure
。