HowTo文档

如何在 XSwitch 中使用 ASR 及 TTS(二)

在之前的文章如何在 XSwitch 中使用 ASR 及 TTS中,我们一起了解了当前 ASR/TTS 技术的发展,学习了如何在 XSwitch 中配置云厂商的语音服务。当时主要介绍了阿里云的 ASR/TTS 对接方式,提到了 XSwitch 可以与华为、百度和讯飞等厂商的模块对接,在这篇文章中我们把 XSwitch 与这几个模块的对接方式补齐,方便各位选取自己需要的厂商的语音技术服务进行对接。

配置 XSwitch 连接华为云

华为云服务配置

  1. 注册华为云账号,进行认证。
  2. 购买 TTS、ASR 服务试用:
    • TTS:https://www.huaweicloud.com/product/tts.html
    • ASR:https://www.huaweicloud.com/product/asr.html
  3. 点击免费试用后下订单,选择区域:(注:此处的区域对应后续请求的 endpoint)
    • 华北-北京四 <----> cn-north-4
    • 华东-上海一 <----> cn-east-3
  4. 选好后下单即可,等待服务生效。

XSwitch 中配置 mod_huawei

获取 TOKEN 配置:

在此,我们使用 XSwitch 内置的mod_huawei模块连接华为云。进入【AI】⇨【华为】⇨【huawei】,在【Setting 参数】中填上获取 Token 需要填写的 domianusernamepassword,这是华为云用户获取登录 Token 的需要设置的参数。

调用 API 之前需要进行认证鉴权,mod_huawei 采用 Token 认证,需要填写对应的终端节点domain(帐号名)、usernamepassword

参考: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-urlasr-urlproject-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 连接百度云

百度云服务配置

  1. 注册百度账号,进行认证。
  2. 控制台点击【管理视图】,搜索【语音技术】;点击【应用列表】,创建应用,勾选需要的接口。
  3. 点击【应用详情】获取 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 连接讯飞云

讯飞云服务配置

  1. 注册讯飞账号,进行认证。
  2. 控制台创建应用,点击应用名称即可进入应用内部。
  3. 进入应用内部网页的即可获取服务接口认证信息【APPID】、【apisecret】、【apikey】。

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 引擎名称,可以对应替换为baiduxunfei等。
  • default:TTS 发音人,也可以使用华为提供的其它发音人名称,如chinese_xiaoyu_common等。
  • 你好,欢迎致电烟台小樱桃网络科技有限公司:可替换为任意文本。

提交后,用话机拨打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

如何在XSwitch中使用WebRTC