HowTo文档
如何在 XSwitch 中使用 ASR 及 TTS(二)
在之前的文章如何在 XSwitch 中使用 ASR 及 TTS中,我们一起了解了当前 ASR/TTS 技术的发展,学习了如何在 XSwitch 中配置云厂商的语音服务。当时主要介绍了阿里云的 ASR/TTS 对接方式,提到了 XSwitch 可以与华为、百度和讯飞等厂商的模块对接,在这篇文章中我们把 XSwitch 与这几个模块的对接方式补齐,方便各位选取自己需要的厂商的语音技术服务进行对接。
配置 XSwitch 连接华为云
华为云服务配置
- 注册华为云账号,进行认证。
- 购买 TTS、ASR 服务试用:
- TTS:https://www.huaweicloud.com/product/tts.html
- ASR:https://www.huaweicloud.com/product/asr.html
- 点击免费试用后下订单,选择区域:(注:此处的区域对应后续请求的 endpoint)
- 华北-北京四 <----> cn-north-4
- 华东-上海一 <----> cn-east-3
- 选好后下单即可,等待服务生效。
XSwitch 中配置 mod_huawei
获取 TOKEN 配置:
在此,我们使用 XSwitch 内置的mod_huawei
模块连接华为云。进入【AI】⇨【华为】⇨【huawei】,在【Setting 参数】中填上获取 Token 需要填写的 domian
、username
和password
,这是华为云用户获取登录 Token 的需要设置的参数。
调用 API 之前需要进行认证鉴权,mod_huawei 采用 Token 认证,需要填写对应的终端节点
、domain
(帐号名)、username
和password
。
参考:https://support.huaweicloud.com/api-iam/iam_17_0002.html
注:若账户是之前申请的华为云账户直接升级为华为账户,则本身的默认管理员账户为默认 IAM 用户,但其本身没有设置密码,故需要新增 IAM 用户,此时,构造获取 token 的请求 json 中的 token 里的 domain 为用户所属的帐号名称,username 和 password 为新增 IAM 用户的用户名和密码,需要区分。
各个参数获取方式:
- region:
- 为购买试用项目时所选区域对应的【区域 ID】。
- token-url:
- 为购买试用项目时所选区域对应的【区域 ID】对应的获取 token 链接。
- 参考:https://support.huaweicloud.com/api-iam/iam_30_0001.html
- domain:
- 为用户所属的帐号名:进入【控制台】=>右上角【用户名】=>点击【我的凭证】=>【API 凭证】界面=>【帐号名】。
- username 和 password:需要创建 IAM 用户:
- 进入【控制台】=>右上角【用户名】=>点击【统一身份认证】=>【用户】界面=>右上角【创建用户】。
- 然后设置好用户名和密码,对应填写。
TTS / ASR 配置:
在 TTS 和 ASR 参数中填上华为云交互的对应的tts-url
、asr-url
和project-id
。
- tts-url / asr-url
- 参考:https://support.huaweicloud.com/api-sis/sis_03_0004.html
- 选取【项目名】为购买试用项目时所选区域对应的【终端节点】对应的 url
- project-id :
- https://support.huaweicloud.com/api-sis/sis_03_0008.html
- 进入【控制台】=>右上角【用户名】=>点击【我的凭证】=>【API 凭证】界面 => 【项目列表】
- 选取【项目名】为购买试用项目时所选区域对应的【项目 ID】
配置完成后,需要在【AI】⇨【华为】界面将配置文件的【启用】改为【是】,之后到【高级】⇨【系统管理】⇨【系统模块】中,找到mod_huawei
,在控制列中点击【加载】,模块颜色由灰色变为黑色,表示加载成功。把启用改为【是】,以便下次 XSwitch 重启时能自动加载。
配置 XSwitch 连接百度云
百度云服务配置
- 注册百度账号,进行认证。
- 控制台点击【管理视图】,搜索【语音技术】;点击【应用列表】,创建应用,勾选需要的接口。
- 点击【应用详情】获取 API Key 和 Secret Key。
XSwitch 中配置 mod_baidu
在此,我们使用 XSwitch 内置的mod_baidu
模块连接百度云。进入【AI】⇨【百度】,没有模板的话需要新建,默认模板即可。
创建【baidu】,点击进入设置,在【TTS】中填上【api-key】、【secret-key】;【ASR-WS】参数中填上在百度应用里面的【app-id】、【api-key】、【secret-key】。
配置完成后,需要在【AI】⇨【百度】界面将配置文件【baidu】的【启用】改为【是】,然后到【高级】⇨【系统管理】⇨【系统模块】中,找到mod_baidu
,没有的话需要新建一个。在控制列中点击【加载】,模块颜色由灰色变为黑色,表示加载成功。把启用改为【是】,以便下次 XSwitch 重启时能自动加载。
配置 XSwitch 连接讯飞云
讯飞云服务配置
XSwitch 中配置 mod_xunfei
在此,我们使用 XSwitch 内置的mod_xunfei
模块连接讯飞云。进入【AI】⇨【讯飞】,没有模板的话需要新建,默认模板即可。
创建【xunfei】,点击进入设置,在【TTS】和【ASR】参数中填上在讯飞应用里面的【appid】、【apisecret】、【apikey】
配置完成后,需要在【AI】⇨【讯飞】界面将配置文件的【启用】改为【是】,然后到【高级】⇨【系统管理】⇨【系统模块】中,找到mod_xunfei
,没有的话需要新建一个。在控制列中点击【加载】,模块颜色由灰色变为黑色,表示加载成功。把启用改为【是】,以便下次 XSwitch 重启时能自动加载。
测试
测试 TTS
到【呼叫】⇨【路由】中,新建一条路由:
- 名称:
tts
,也可以随意 - 被叫字冠:
tts
,也可以是其它号码,如1234
等 - 呼叫源:
default
- 目的地类型:高级功能/系统
新出现的“文本”框中填入以下内容:
answer speak huawei|default|你好,欢迎致电烟台小樱桃网络科技有限公司
其中speak
参数说明:
huawei
:TTS 引擎名称,可以对应替换为baidu
、xunfei
等。default
:TTS 发音人,也可以使用华为提供的其它发音人名称,如chinese_xiaoyu_common
等。- 发音人范围参考:
- 华为:参考普通发音人取值范围,需要确认是否购买了相应发音人服务。
- 百度:参考请求方式及参数基本说明中
per(基础音库)
中的说明选择发音人。 - 讯飞:参考讯飞云平台应用里的发音人授权管理中开通的的发音人名称。
- 发音人范围参考:
你好,欢迎致电烟台小樱桃网络科技有限公司
:可替换为任意文本。
提交后,用话机拨打tts
号码就可以听到声音了。
也可以这样:
answer set tts_engine=huawei set tts_voice=default speak 你好,欢迎致电烟台小樱桃网络科技有限公司
测试 ASR
到【呼叫】⇨【路由】中,新建一条路由:
- 名称:
asr
,也可以随意 - 被叫字冠:
asr
,也可以是其它号码,如1234
等 - 呼叫源:
default
- 目的地类型:高级功能/系统
新出现的“文本”框中填入以下内容:
answer set tts_engine=huawei set tts_voice=default play_and_detect_speech say:'你好,请说' detect:huawei default info log err $${detect_speech_result}
说明:
- 若需要测试其他的模块,对应修改上面内容中
huawei
为其他模块,其中detect:
后需要替换为模块内asr interface
名称。 - 日志部分:打开【高级】⇨【扩展功能】⇨【终端】就可以看到日志。上面使用了
err
级别的日志是为了红色能显示的更醒目,便于调试。
小结
本文主要是补充介绍了 XSwitch 中 mod_huawei、mod_baidu、mod_xunfei 等几个模块与对应厂商提供的 ASR/TTS 服务的对接流程,具体在对接过程中可能会因为厂商方面的变动(如配置项名称,url 变动等)而导致配置失效,这就需要使用者根据当时对接的厂商提供的文档相对应的进行调试,并使用好日志和厂商提供的错误代码文档,从而确定问题。
如果对有其他方面的感兴趣如使用 MRCP 方式进行调用或者是 XSwitch 中使用内置的离线 ASR/TTS 等,那么也欢迎再次阅读我们之前的文章如何在 XSwitch 中使用 ASR 及 TTS。