1. 主要目的
市面上大部分已建的呼叫中心,关于语音对接这部分,默认支持MRCP
协议,为了实现和其他呼叫系统的快速对接,实现支持MRCP
协议的语音引擎的开发是很重要的,为了将三方ASR/TTS
的能力像插件一样集成到MRCP Server
中,我们先研究MRCP Server
的搭建。
在此感谢以下2篇文章的作者,为这次研究提供了非常好的思路和方法。
基于 UniMRCP 实现讯飞 ASR MRCP Server
在搭建过程中也遇到了一些小问题,以下会详细描述实际搭建步骤。
本文重点介绍如何搭建UniMRCP Server
同时在安装了mod_unimrcp
的FreeSWITCH
上进行配置与测试,对于FreeSWITCH
的安装可以参考下面的链接,对于mod_unimrcp
在上面的github
链接里也有介绍。
2. 配置编译UniMRCP Server
本文所有操作均在CentOS 7
下进行,感谢由Github用户cotinyang
提供的已经写好的集成讯飞SDK
的UniMRCP Server
源码,下个章节会介绍MRCP的关键流程和源码,并对集成讯飞ASR和TTS功能的源码和编译配置方式进行讲解,便于掌握其他语音引擎插件的集成开发能力。
(1) 源码下载
首先进行源码下载,直接下载已经进行了讯飞集成代码编写的版本:
cd /home/code/github/
git clone https://github.com/cotinyang/MRCP-Plugin-Demo.git
以上代码基于UniMRCP 1.5.0
版本,如需下载最新版本可访问官网。
后续如果更新了UniMRCP
的版本,我会在这里补充更新操作。
(2) 编译环境准备
cd MRCP-Plugin-Demo/unimrcp-deps-1.5.0
## 如果编译出现错误, 注释掉:107 ~ 109, getopt的set,其中存在不识别的option
## 编译生成apr, apr-util, target path: ./libs
./build-dep-libs.sh
## 过程中输入2次y并确认
(3) 编译安装
cd unimrcp-1.5.0
./bootstrap
./configure
make
make install
如果make报错,很可能是apr/apr-util
版本问题,find了代码目录,发现有对应的版本,所以只需要关联就行,执行命令如下。
make clean
./configure --with-apr=/home/code/github/MRCP-Plugin-Demo/unimrcp-deps-1.5.0/libs/apr --with-apr-util=/home/code/github/MRCP-Plugin-Demo/unimrcp-deps-1.5.0/libs/apr-util
make
make install
(4) 测试运行
启动UniMRCP Server
cd /usr/local/unimrcp/bin
./unimrcpserver -o 3
启动UniMRCP Client
cd /usr/local/unimrcp/bin
./unimrcpclient
>help
usage:
- run [app_name] [profile_name] (run demo application)
app_name is one of 'synth', 'recog', 'bypass', 'discover'
profile_name is one of 'uni2', 'uni1', ...
examples:
run synth
run recog
run synth uni1
run recog uni1
- loglevel [level] (set loglevel, one of 0,1...7)
- quit, exit
输入run recog
运行语音识别测试,run synth
进行语音合成测试。
下一篇文章介绍基于 MRCP Server 的插件开发。