实时语音质检
概述
该功能是基于新增mod_asr模块完成,核心是switch_core_media_bug_add添加media bug实现。该核心不仅限于语音质检,同时也是智能语音对接的核心模块。本次只实现实时语音质检功能,合作或技术支持请添加主页wx
功能
整体架构就是简单的mod_asr模块、asr服务器、ESL接收程序。其实还有很多其他架构方式,比如socket服务端接收语音流然后给asr服务器,返回识别结果后送还给socket服务器处理等。Asr服务器可以是自研或者大厂的云asr。目前咱们是使用的阿里云asr3.0平台,以下是所需程序
- Asr服务:NlsSdkCpp3.X
- Mod模块:mod_asr,需要自行编写或参照现有样例,输出参数符合asr平台接口
- 接收平台:ESL注册程序
安装
将mod_asr_ali_3.x.tar.gz上传至/usr/local/src下
cd /usr/local/src
tar -zvxf mod_asr_ali_3.x.tar.g
chmod -R 755 mod_asr_ali_3.x
cd /usr/local/src/mod_asr_ali_3.x
make
cp mod_asr.so /usr/local/freeswitch/mod
修改aliasr.xml中参数为自己的参数。需要注册阿里语音交互业务
启动freeswitch
查看是否加载mod_asr
show modules|grep 'mod_asr'
如下说明已记载,如果没有执行 load mod_asr加载
type,name,ikey,filename
application,start_asr,mod_asr,/usr/local/freeswitch/mod/mod_asr.so
application,stop_asr,mod_asr,/usr/local/freeswitch/mod/mod_asr.so
完成以上操作后,执行命令测试
originate user/1001 'transfer:9999' inline
拨号计划添加
<extension name="asr9999">
<condition field="destination_number" expression="^(9999)$">
<action application="answer"/>
<action application="log" data="CRIT ================tmp:9999" />
<action application="start_asr" data=""/>
<action application="echo"/>
</condition>
</extension>
测试记录会在控制台打印
最后开发ESL平台,监听CUSTOM事件,结果会通过event传输过来
开发效果如下:
实时语音质检