freeswitch 部署的系统版本:Centos6.9 x64
unimrcp 部署版本:Red Hat6.4 x86(32)

**

对接前提: freeswitch 已经编译并且安装了mod_unimrcp 模块 unimrcp 已经部署好
**

如果以上的两个都没问题我们就可以对接了

一 :进行配置文件
先配置unimrcp服务器

freeswitch 模块封装 freeswitch asr模块_加载

如果顺利安装好平台,会在该路径下可以找到配置文件
vim unimrcpserver.xml
配置ip,如果不配置会默认使用本地127

freeswitch 模块封装 freeswitch asr模块_xml_02

配置sip协议的ip和port

freeswitch 模块封装 freeswitch asr模块_配置文件_03

配置mrcp v2 协议
改ip 端口默认就可以,你想改也可以 但是注意不要冲突

freeswitch 模块封装 freeswitch asr模块_加载_04

配置rtp

freeswitch 模块封装 freeswitch asr模块_xml_05

启动unimrcpserver
/usr/local/unimrcp/bin/unimrcpserver 启动后即可按到加载的配置文件信息,注意这里是控制台启动,后台也可以,图个方便

freeswitch 模块封装 freeswitch asr模块_freeswitch 模块封装_06

二:配置freeswitch
先用fs_cli 连接fs 输入show module

freeswitch 模块封装 freeswitch asr模块_xml_07

查看模块是否已经被加载,(因为fs支持热更新)我们先看模块能不能被成功加载如果能再进行配置
如果不能成功被加载,请看fs的日志
/usr/local/freeswitch-1.6.20/log ,为何不能被加载,或者在控制台看启动日志 上面会写
不想看太长的日志?你也可以直接在控制台输入load mod_unimrcp 就会出现模块的信息
顺利加载完是这样的,有个警告不用管

freeswitch 模块封装 freeswitch asr模块_配置文件_08

接下来就是配置 mod_nuimrcp 模块
进入fs 安装的目录下的etc文件夹
默认是/usr/local/freeswitch/etc 下
进入mrcp_profiles 目录

freeswitch 模块封装 freeswitch asr模块_配置文件_09

该目录有很多xml文件是各种服务器的配置文件具体请参考官方文档,但是我们现在只是测试mrcpv2协议,所以我们可以把所有的xml文件 放到另个文件夹里,避免fs 加载进去,只加载我们想要的那个配置文件,当然,也可以不用管,但这里测试,我还是喜欢按我自己的方式来
mkdir back //新创建一个文件夹
mv ./*.xml back
然后创建一个mrcp2的配置文件
vi unimrcpserver-mrcp-v2.xml
打开编辑

freeswitch 模块封装 freeswitch asr模块_freeswitch 模块封装_10

cd 到fs的安装目录 进入 grammar 文件夹,如果没有请自行创建
cd /usr/local/freeswitch/grammar

vi hello.gram 创建一个新的语法,给语音识别时用 必须以.gram 结尾!!!
写入

freeswitch 模块封装 freeswitch asr模块_xml_11

可以直接下载我提供的语法文件,拷贝到该目录下即可,如果对接unimrcp的话
这个语法文件其实是可以为空的

然后
cd 到路由文件夹,配置路由

freeswitch 模块封装 freeswitch asr模块_配置文件_12

vi default.xml
添加

freeswitch 模块封装 freeswitch asr模块_freeswitch 模块封装_13

或者:delect_speech data=“unimrcp:unimrcpserver-mrcp2-203 hello hello”
这个调用更方便,可以随意指定配置文件
或者:detect_speech data=“unimrcp {Speed-Vs-Accuracy=0.80,start-input-timers=false,Sensitivity-Level=0.85}hello”
这个不能指定配置文件,但可以指定参数

这里特别注意:detect_speech ,
如果这里不搞好,会出现无法互通的情况,一定要注意,另外也有可能是端口ip或
防火墙的原因,导致无法互通

freeswitch 模块封装 freeswitch asr模块_配置文件_14

因为是在本地fs 默认的目录下加载语法文件,所以不能在填写语法文件名和路径时加上
.gram,这是官方文档给的说明,或者更简单也可以直接填语法文件的名字,不要带后缀,
前提是语法文件在fs的目录下

,否则会提示语法加载失败

freeswitch 模块封装 freeswitch asr模块_配置文件_15

配置完成开始测试!!!
先在fs注册一个用户

freeswitch 模块封装 freeswitch asr模块_配置文件_16

点击拨打 0001
然后看在控制台看freeswitch 的日志,就可以很清楚地看到过程

freeswitch 模块封装 freeswitch asr模块_加载_17

语法加载

freeswitch 模块封装 freeswitch asr模块_加载_18

接收成功

freeswitch 模块封装 freeswitch asr模块_加载_19

识别中

freeswitch 模块封装 freeswitch asr模块_xml_20

识别完成

freeswitch 模块封装 freeswitch asr模块_加载_21

最后附上官方文档

mod_unimrcp:

detect_speeh:

笔记有什么不对的地方 请联系我
我邮箱:c_wujinbiao@163.com