Freeswitch 对接 unimrcpserver ASR调用

时间:2024-04-06 12:03:13

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

**

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

**

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

一 :进行配置文件
先配置unimrcp服务器
Freeswitch 对接 unimrcpserver ASR调用
如果顺利安装好平台,会在该路径下可以找到配置文件
vim unimrcpserver.xml
配置ip,如果不配置会默认使用本地127

Freeswitch 对接 unimrcpserver ASR调用
配置sip协议的ip和port

Freeswitch 对接 unimrcpserver ASR调用
配置mrcp v2 协议
改ip 端口默认就可以,你想改也可以 但是注意不要冲突

Freeswitch 对接 unimrcpserver ASR调用
配置rtp
Freeswitch 对接 unimrcpserver ASR调用

启动unimrcpserver
/usr/local/unimrcp/bin/unimrcpserver 启动后即可按到加载的配置文件信息,注意这里是控制台启动,后台也可以,图个方便
Freeswitch 对接 unimrcpserver ASR调用
二:配置freeswitch
先用fs_cli 连接fs 输入show module

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

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

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

vi hello.gram 创建一个新的语法,给语音识别时用 必须以.gram 结尾!!!
写入
Freeswitch 对接 unimrcpserver ASR调用
可以直接下载我提供的语法文件,拷贝到该目录下即可,如果对接unimrcp的话
这个语法文件其实是可以为空的

然后
cd 到路由文件夹,配置路由
Freeswitch 对接 unimrcpserver ASR调用
vi default.xml
添加
Freeswitch 对接 unimrcpserver ASR调用
或者: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 对接 unimrcpserver ASR调用
因为是在本地fs 默认的目录下加载语法文件,所以不能在填写语法文件名和路径时加上
.gram,这是官方文档给的说明,或者更简单也可以直接填语法文件的名字,不要带后缀,
前提是语法文件在fs的目录下
Freeswitch 对接 unimrcpserver ASR调用
,否则会提示语法加载失败
Freeswitch 对接 unimrcpserver ASR调用
配置完成开始测试!!!
先在fs注册一个用户
Freeswitch 对接 unimrcpserver ASR调用
点击拨打 0001
然后看在控制台看freeswitch 的日志,就可以很清楚地看到过程
Freeswitch 对接 unimrcpserver ASR调用
语法加载
Freeswitch 对接 unimrcpserver ASR调用
接收成功
Freeswitch 对接 unimrcpserver ASR调用
识别中Freeswitch 对接 unimrcpserver ASR调用
识别完成
Freeswitch 对接 unimrcpserver ASR调用

最后附上官方文档

mod_unimrcp:

detect_speeh:

笔记有什么不对的地方 请联系我
我邮箱:[email protected]