搭建百度Mrcp Server与Freeswitch的mod_unimrcp对接实现智能客服
媒体资源控制协议(MRCP
)是基于客户端/服务器模型的网络协议。MRCP
允许客户端应用程序控制驻留在服务器中的媒体服务资源。该协议的第一个版本作为信息文件发布,而其后续版本MRCPv2
目前是一个提议的标准。百度MrcpServer
提供了在unimrcp
中集成百度ASR
语音识别,提供给Freeswitch
或者Asterike
调用实现智能客服!
一、搭建MrcpServer
环境需求:
- Linux 64位 centos 6u3
- gcc: 482 以上libc,CXX11,百度提供gcc4.8.2压缩包,存放于libs目录下,解压后执行bootstrap.sh完成默认配置;
yum install gcc
- curl : 7.33,安装方法
yum install curl
- ssl : 1.0.1i,安装方法
yum install mod_ssl
- daemontools 守护进程
- 须有root账户权限运行,curl、ssl服务器未安装或版本不够,请自行安装或升级。
搭建MrcpServer
方法如下
cd ~
# 下载MrcpServer安装包
wget http://tianzhi-public.bj.bcebos.com/MrcpServerV1.2.tar.gz
# 解压安装包
tar xvzf MrcpServerV1.2.tar.gz
# 前往解压后的安装包
cd unimrcp
# 编译安装
sh bootstrap.sh
如果安装失败,提示请切换至root
账号,手动执行ln -s /root/unimrcp/libs/gcc482 /opt/compiler/gcc-4.8.2
,程序将自动查找/opt/compiler/gcc-4.8.2
的gcc
,可以按照一下方法:
cd ${SERVER_ROOT}/unimrcp/libs
# 解压安装gcc
tar xvzf /root/unimrcp/libs/gcc482.tar.gz
# 创建/opt/compiler/gcc-4.8.2目录
mkdir -p /opt/compiler/gcc-4.8.2
# 创建gcc-4.8.2软链接
sudo ln -s /root/unimrcp/libs/gcc482 /opt/compiler/gcc-4.8.2
# 重新编译安装
cd ..
sh bootstrap.sh
如果出现以下提示,表示安装成功:
bootstrap: 使用百度自带gcc4.8.2初始化客户环境
初始化成功
建议设置contab定时任务拆分日志:[1 * * * * sh /root/unimrcp/bin/splitLog.sh]
二、参数配置
从官方文档啊我们可以看出目录结构,只需在${SERVER_ROOT}/conf/recogplugin.json
修改API Key
和Secret Key
。
其他参数,无特殊需求,无需修改,保持现状。
"app.appKey": "API Key", "app.appSecret": "Secret Key",
三、使用mrcpserver
每次替换MrcpServer
安装包,都需要在${SERVER_ROOT}/
目录,root
权限下执行sh bootstrap.sh
,主要功能:完成百度自带gcc4.8.2
的环境配置。 启动: 在${SERVER_ROOT}/bin目录执行
./control start
停止: 在${SERVER_ROOT}/bin目录执行
./control stop
重启: 在${SERVER_ROOT}/bin目录执行
./control restart
查看服务状态:在${SERVER_ROOT}/bin目录执行
./control status
服务启动中遇到的问题:
若执行control start
失败,请按照以下步骤排查服务
-
1、在
${SERVER_ROOT}/bin
目录执行[root@xxx bin]$ ./unimrcpserver bash: ./unimrcpserver: /opt/compiler/gcc-4.8.2/lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory,
说明
bootstrap.sh
执行失败,请移步压缩包自带README
文件,手动完成gcc4.8.2
的配置。 - 2、若单独启动
unimrcpserver
正常,命令行直接输入supervise
,若supervise
非系统命令,说明守护进程安装失败,请检查守护进程,安装教程如下:
wget --no-check-certificate http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar zxf daemontools-0.76.tar.gz
cd admin/daemontools-0.76/
sed -i 's/extern int errno;/#include <errno.h>/1' ./src/error.h
sudo ./package/install
启动daemontools
工具,&
表示后台运行 :
/command/svscanboot &
然后运行ps -ef | grep svs
查看运行状态:
root 23697 20807 0 11:36 pts/0 00:00:00 /bin/sh /command/svscanboot
root 23699 23697 0 11:36 pts/0 00:00:00 svscan /service
root 23702 20807 0 11:36 pts/0 00:00:00 grep --color=auto svs
四、配置外网ip、修改端口号
conf/unimrcpserver.xml
配置中配置外网ip方法,配置并打开以下参数注释
<sip-uas id="SIP-Agent-1" type="SofiaSIP">
<sip-ip>本机内网地址</sip-ip>
<sip-ext-ip>本机外网地址</sip-ext-ip>
</sip-uas>
sip
端口修改:
<sip-port>8060</sip-port>替换成设置参数
rtp ip&端口范围修改:
<rtp-factory id="RTP-Factory-1">
<rtp-ip>10.10.0.1</rtp-ip> 本机内网ip
<rtp-ext-ip>a.b.c.d</rtp-ext-ip> 本机外网ip
<rtp-port-min>5000</rtp-port-min> rtp端口下限
<rtp-port-max>6000</rtp-port-max> rtp端口上限
</rtp-factory>
五、日志切分
日志格式切分采用crontab
切分,若想切分日志。定时执行{SERVER_ROOT}/bin/splitLog.sh
配置示例 1 * * * * sh /usr/local/unimrcp/control/splitLog.sh
更多Freeswitch
内容参考:FreeSWITCH - 中国晚上好
原创文章,转载请注明 :搭建百度Mrcp Server与Freeswitch的mod_unimrcp对接实现智能客服 - pytorch中文网
原文出处: https://www.ptorch.com/news/206.html
问题交流群 :168117787