记录了百度智能语音服务MRCP服务的搭建,本章记录freeswitch与百度MRCP智能语音集成。freeswitch搭建参照:https://blog.csdn.net/mokeily99/article/details/122579292https://blog.csdn.net/mokeily99/article/details/122579292
正文
1:freeswitch开启unimrcp模块
cd /usr/local/src/freeswitch-1.6.0
vim modules.conf
取消掉asr_tts/mod_unimrcp的注释“#”,然后保存
安装mod_unimrcp模块 在/usr/local/src/freeswitch-1.6.0目录下运行make mod_unimrcp-install
编辑vi /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml,添加或者去掉注释mod_unimrcp,让模块启动默认加载
vim /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
<load module="mod_unimrcp"/>
2:设置freeswitch的profile文件与conf文件
在/usr/local/freeswitch/conf/mrcp_profiles目录下新建unimrcpserver-mrcp-v2.xml配置文件:
vim /usr/local/freeswitch/conf/mrcp_profiles/unimrcpserver-mrcp-v2.xml
然后输入以下内容(注意:端口填写百度MRCP的端口,一般是5060):
<include>
<!-- UniMRCP Server MRCPv2 -->
<!-- 后面我们使用该配置文件,均使用 name 作为唯一标识,而不是文件名 -->
<profile name="unimrcpserver-mrcp2" version="2">
<!-- MRCP 服务器地址和SIP端口号 -->
<param name="server-ip" value="192.168.16.4"/>
<param name="server-port" value="5060"/>
<param name="resource-location" value=""/>
<!-- FreeSWITCH IP、端口以及 SIP 传输方式 -->
<param name="client-ip" value="192.168.16.4" />
<param name="client-port" value="5069"/>
<param name="sip-transport" value="udp"/>
<param name="speechsynth" value="speechsynthesizer"/>
<param name="speechrecog" value="speechrecognizer"/>
<!--param name="rtp-ext-ip" value="auto"/-->
<param name="rtp-ip" value="192.168.16.4"/>
<param name="rtp-port-min" value="4000"/>
<param name="rtp-port-max" value="5000"/>
<param name="codecs" value="PCMU PCMA L16/96/8000"/>
<!-- Add any default MRCP params for SPEAK requests here -->
<synthparams>
</synthparams>
<!-- Add any default MRCP params for RECOGNIZE requests here -->
<recogparams>
<!--param name="start-input-timers" value="false"/-->
</recogparams>
</profile>
</include>
3:修改unimrcp.conf.xml文件
vi /usr/local/freeswitch/conf/autoload_configs/unimrcp.conf.xml
编辑修改default-tts-profile和default-asr-profile为我们新创建的unimrcpserver-mrcp2
4:设置拨号计划
vi /usr/local/freeswitch/conf/dialplan/default.xml
添加:
<extension name="ivr">
<condition field="destination_number" expression="^\b(8)\b$">
<action application="set" data="RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(%Y-%m-%d %H:%M)}"/>
<action application="set" data="RECORD_COPYRIGHT=(c) 2011"/>
<action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/>
<action application="set" data="RECORD_ARTIST=FreeSWITCH"/>
<action application="set" data="RECORD_COMMENT=FreeSWITCH"/>
<action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/>
<action application="set" data="RECORD_STEREO=false"/>
<action application="set" data="RECORD_READ_ONLY=true"/>
<action application="set" data="media_bug_answer_req=true"/>
<action application="record_session" data="$${base_dir}/recordings/archive/${strftime(%Y-%m-%d-%H-%M-%S)}_${destination_number}_${caller_id_number}.wav"/>
<action application="lua" data="asr_tts_nlu.lua" />
</condition>
</extension>
注意最下面的<action application="lua" data="asr_tts_nlu.lua" />,此处是调用lua脚本,data里是脚本名称,配置的含义是当呼叫8时,自动进入lua脚本程序,asr_tts_nlu.lua中是智能语音逻辑。一般默认放在freeswitch的script目录下
以上修改完基本上就完成了freeswitch和百度MRCP集成,启动freeswitch后,找个坐席号比如1001,用eyebeam注册到freeswitch上,拨打8后,自动进入asr_tts_nlu.lua脚本
lua脚本可实现对接mrcp语音合成及识别、访问数据库、读取xml、呼转、IVR导航等功能,因为修改了很多版本,就不上传lua脚本了,有合作的可以mokeily99@126.com私信