问题一:阿里的asr有没有支持mrcp协议?
问题二:测试的话,这个是自己安装还是阿里提供
是的,阿里云语音交互服务(包括ASR、TTS、Chatbot)确实支持MRCP协议。MRCP(Media Resource Control Protocol)是一种音视频资源控制协议,用于控制语音识别、语音合成和语音交互等场景中的音视频资源。您可以通过使用MRCP协议来控制音视频资源,并实现语音交互的功能。
此外,如果您需要私有部署阿里语音AI的mrcpserver,可以登录阿里云官网,进入“语音服务”页面,选择“语音开放平台”,在子菜单中选择“Mrcp服务”,进入“概览”界面进行申请。
针对问题一的回答:1
SDM(MRCP-SERVER)公共云镜像使⽤
法律声明
说明
环境依赖
开通阿⾥云智能语⾳服务
部署SDM镜像
镜像
配置
启动
测试
重启
使⽤
部署SDM的负载均衡镜像(可选)
镜像
配置
启动
使⽤
阿⾥云提醒您在阅读或使⽤本⽂档之前仔细阅读、充分理解本法律声明各条款的内容。如果您阅读或使⽤
本⽂档,您的阅读或使⽤⾏为将被视为对本声明全部内容的认可。
法律声明
2
但阿⾥云在此明确声明对本⽂档内容的准确性、完整性、适⽤性、可靠性等不作任何明示或暗示的保证。
任何单位、公司或个⼈因为下载、使⽤或信赖本⽂档⽽发⽣任何差错或经济损失的,阿⾥云不承担任何法
律责任。在任何情况下,阿⾥云均不对任何间接性、后果性、惩戒性、偶然性、特殊性或刑罚性的损害,
包括⽤户使⽤或信赖本⽂档⽽遭受的利润损失,承担责任(即使阿⾥云已被告知该等损失的可能性)。
注册阿⾥云账号;
到“智能语⾳交互服务”⻚⾯,点击『⽴即开通』,开通ASR/TTS相关服务
https://data.aliyun.com/product/nls;
说明
环境依赖
开通阿⾥云智能语⾳服务
3
在阿⾥云管控台Access Key管理⻚⾯创建并获取您的AccessKey ID 和 AccessKey Secret。您可以使⽤它
们调⽤智能语⾳服务 这⾥的Access Key ID、 Secret 在配置SDM的时候会⽤到,请妥善保存。
登录到控制台,默认⾸⻚为”我的项⽬” -> “所有项⽬概览”,因此时还未创建项⽬,所以在右侧”我的所有项
⽬”显示当前暂⽆项⽬,创建语⾳服务项⽬;
点击界⾯上”创建项⽬”按钮,会弹出创建项⽬模态框,按照提示创建所需要的项⽬;然后可以在⻚⾯上看到新
建的项⽬,其中的“项⽬Appkey”是SDM调⽤ASR服务需要配置的;
注意:⼀定要再次确认“项⽬功能配置”下该appkey对应的模型类型(⼀般是8k或16k),⽽该场景(使⽤
本应⽤⼀般是电话场景)下务必使⽤8k模型。
(注意直接复制到命令时请仔细对⽐命令完整性)
SDM的公共云仓库地址:
拉取镜像:
可以拉取某⼀特定版本的镜像,或者直接拉取当前最新镜像:
部署SDM镜像
镜像
1 registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm
1 sudo docker pull registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm:
[镜像版本号]
4
查看本地已拉取的镜像:
初始化环境:
镜像拉取到本地,⾸次使⽤时,需要初始化本地环境:
该操作第⼀次执⾏时只是⽤来初始化环境,⽐如将容器中中SDM的⽬录映射到宿主机上(⽐如容器的logs⽬录映射
到宿主机当前⽬录的logs下,容器中的/home/admin/disk映射到宿主机当前⽬录的data下),由于相关参数配置
没有修改,所以容器最终不会运⾏起来,需要进⾏相关配置操作。
⾸次启动后,容器内的配置⽂件在宿主机data/nls-clou-sdm/conf下,⼀般来说,需要修改其中的三个配置⽂件
nlstoken.json、service-asr.json、service-tts.json。
1 sudo docker pull registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm:l
atest
1 # sudo docker images | grep sdm
2 registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm 20190326 d97ea01
12101 5 hours ago 632 MB
3 registry.cn-shanghai.aliyuncs.com/nls-cloud/sdm latest d97ea01
12101 5 hours ago 632 MB
1 sudo docker run -d --privileged --net=host --name nls-cloud-sdm -
v pwd
/logs:/home/admin/logs -v pwd
/data:/home/admin/disk regi
stry.cn-shanghai.aliyuncs.com/nls-cloud/sdm:latest standalone
配置
1 {
2 "AccessKeyId": "上⼀节第4步中获取的id",
3 "AccessKeySecret": "上⼀节第4步中获取的secret",
4 }
1 {
2 "url": "wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1",
3 "appkey": "创建asr项⽬的时候 获取到的appkey",
4 }
5
另外, service-asr.json和service-tts.json配置⽂件中还有⼀些其他和ASR、TTS服务相关的参数,默认配置即
可使⽤。
当然,也可以按需设置以控制定制化效果。
启动:
也可以查看⽇志输出,检查是否有ERROR信息
SDM镜像⾥⾃带了⼀个简单的测试客户端,可以⽤来简单模拟IVR发送请求,以验证当前部署的SDM容器
和整个调⽤链路是否正常。
如果上⾯测试中有错误ERROR或者没有输出(RECOGNITION-COMPLETE或SPEAK-COMPLETE),或
者 grep ERROR alimrcp-server.log,则需要查看SDM服务的信息,以确认出现了什么错误.
1 {
2 "url": "wss://nls-gateway.cn-shanghai.aliyuncs.com/ws/v1",
3 "appkey": "创建tts项⽬的时候 获取到的appkey",
4 }
启动
1 sudo docker start nls-cloud-sdm # 重新启动
2 sudo docker ps # 查看是否启动成功
3 ps -ef | grep alimrcp-server # 查看进程是否拉起
4 sudo lsof -i:7010 # 查看
端⼝是否监听
1 cat logs/nls-cloud-sdm/alimrcp-server.log | grep ERROR
测试
1 sudo docker exec -it nls-cloud-sdm bash # 需要进⼊到容器内部,因为
该测试⼯具在容器内
2 cd /home/admin/nls-cloud-sdm/bin
3 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../lib/
4 ./alimrcp-client -a #
发起ASR请求,观察当前输出是否有ERROR信息或者是否有识别结果
5 ./alimrcp-client -t #
发起TTS请求,观察当前输出是否有ERROR信息或者是否合成完成
6 # exit 退出容器
6
后续的重启操作:
如果没有问题,则可以使⽤了,该服务默认在7010端⼝上监听,监听在TCP&UDP协议端⼝上。如果客户
端连接的话,只需要在客户端侧设置MRCP-SERVER的ip:7010(其中ip是部署了SDM的宿主机ip)。
另外,在默认情况下,SDM使⽤了⼀下端⼝(所有端⼝都需要和客户端侧的⽹络互通):
重启
1 sudo docker stop nls-cloud-sdm
2 sudo docker start nls-cloud-sdm
使⽤
部署SDM的负载均衡镜像(可选)
镜像
1 registry.cn-shanghai.aliyuncs.com/nls-cloud/sdmproxy
1 sudo docker pull registry.cn-shanghai.aliyuncs.com/nls-cloud/sdmpr
oxy:latest
1 # sudo docker images | grep sdmproxy
7
在启动sdmproxy时有两个参数。
2 registry.cn-shanghai.aliyuncs.com/nls-cloud/sdmproxy latest 50e9
1aeb99b5 5 hours ago 502.8 MB
配置
1 sdmproxy_realserver_iplist=192.158.125.21:7010,192.158.125.21:702
0,192.158.125.22:7010
1 ```cat sdmip.list
2 sdmproxy_realserver_iplist=192.158.125.21:7010,192.158.125.21:
7020,192.158.125.22:7010
3 ```
启动
1 sudo docker run --privileged --net=host --name sdmproxy -e sdmpro
xy_realserver_iplist=100.82.42.39:7010 -d registry.cn-shanghai.ali
yuncs.com/nls-cloud/sdmproxy standalone
1 sudo docker run --privileged --net=host --name sdmproxy -e sdmpro
xy_realserver_iplist="100.82.42.39:7010,100.82.42.40:7010" -e sdmp
roxy_port=5080 -d registry.cn-shanghai.aliyuncs.com/nls-cloud/sdmp
roxy standalone
8
当部署了SDM的负载均衡服务时,客户侧的IVR或者呼叫平台则不再需要调⽤SDM的地址,⽽是改为调⽤
sdmproxy的地址(ip即是sdmproxy的所在宿主机ip,端⼝默认是5070)。
需要注意的是:即使使⽤了该负载模块,客户的IVR既需要和sdmproxy容器保持⽹络互通,同时仍然要求
和所有的SDM容器保持⽹络互通。
1 sudo docker run --privileged --net=host --name sdmproxy --env-fil
e ./sdmip.list -e sdmproxy_port=5080 -d registry.cn-shanghai.aliy
uncs.com/nls-cloud/sdmproxy standalone
使⽤
当部署了SDM的负载均衡服务时,客户侧的IVR或者呼叫平台则不再需要调⽤SDM的地址,⽽是改为调⽤
sdmproxy的地址(ip即是sdmproxy的所在宿主机ip,端⼝默认是5070)。
需要注意的是:即使使⽤了该负载模块,客户的IVR既需要和sdmproxy容器保持⽹络互通,同时仍然要求
和所有的SDM容器保持⽹络互通。
针对问题二的回答:需要自己安装哈,可以参考上面的文档操作 有问题的话随时反馈我们—此回答来自钉群“阿里语音AI【6群】”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。