Skip to content
运行程序
以下配置只是为了能够体验EasyMrcp,所以存在一些硬编码情况,在实际使用中可以根据自己的项目情况进行不同的配置。
前置准备
- 项目运行需要JDK11。
- 使用FreeSwitch作为IP PBX
- 使用python作为执行脚本(需要freeswtich支持python)
- 演示用EasyMrcp client脚本需要安装python tcp库
gevent:
安装与 FreeSWITCH 中所用 Python 版本兼容的版本(例如,Python 2.7)pip install gevent==1.4.0 greenlet==0.4.17
必要的配置
配置EasyMrcp配置文件
请选择要使用的一种asr和tts进行对应配置。
- 修改EasyMrcp服务器配置,设置运行ip和对接的服务类型,以下配置以科大讯飞asr和tts为例。
配置项目目录下的application.yaml文件,主要需要修改的配置如下:
配置sipServerEasyMrcp运行的ip地址。
配置asrMode选择一个asr服务名称。
配置ttsMode选择一个tts服务名称。
配置fs.server、fs.domain为freeswtich地址。
配置EasyMrcp要注册的号码fs.username、fs.password,根据sip实际开号情况。
plain
sip:
# EasyMrcp要监听的sip服务器地址,填写项目运行的ip地址
sipServer: 192.168.31.29
mrcp:
# 选择一个asr服务,目前已经集成:xfyun、funasr
asrMode: xfyun
# 选择一个tts服务,目前已经集成:xfyun、kokoro
ttsMode: xfyun
# FreeSWITCH注册配置
fs:
register:
# 是否启用FreeSWITCH注册
enabled: true
# FreeSWITCH服务器IP
server: 172.16.2.119
# FreeSWITCH SIP端口
port: 5060
# 注册用户名
username: 1020
# 注册密码
password: 1020
# 注册域
domain: 172.16.2.119
# 注册间隔(秒)
interval: 1800- 配置asr配置文件。
下面以配置科大讯飞asr为例,配置项目目录下的asr/xfyun-asr.properties。
示例使用科大讯飞的实时语音听写功能,需要配置科大讯飞的密钥等信息。
配置xfyun-asr.APPID=科大讯飞控制台appid。
配置xfyun-asr.APISecret=科大讯飞控制台secret。
配置xfyun-asr.APIKey=科大讯飞控制台key。
其余选项暂时不用修改。
plain
####################################语音听写(流式版)####################################
# 地址与鉴权信息
xfyun-asr.host-url=https://iat-api.xfyun.cn/v2/iat
# 均到控制台-语音合成页面获取
xfyun-asr.APPID=
xfyun-asr.APISecret=
xfyun-asr.APIKey=
# (必须) 配置asr语音识别模式: dictation(一句话语音识别) 或者 transliterate(长时间语音转写)
xfyun-asr.identify-patterns=dictation
####################################实时语音转写####################################
## 地址与鉴权信息
#xfyun-asr.host-url=rtasr.xfyun.cn/v1/ws
## 均到控制台-语音合成页面获取
#xfyun-asr.APPID=
#xfyun-asr.APIKey=
## (必须) 官方只支持16kHz音频,所以需要重采样(请勿随意修改)
#xfyun-asr.re-sample=upsample8kTo16k
## (必须) 配置asr语音识别模式: dictation(一句话语音识别) 或者 transliterate(长时间语音转写)
#xfyun-asr.identify-patterns=transliterate- 配置tts配置文件。
下面以配置科大讯飞asr为例,配置项目目录下的xfyun-tts.properties。
示例使用科大讯飞的在线语音合成功能,需要配置科大讯飞的密钥等信息。
配置xfyun-tts.APPID=科大讯飞控制台appid。
配置xfyun-tts.APISecret=科大讯飞控制台secret。
配置xfyun-tts.APIKey=科大讯飞控制台key。
其余选项暂时不用修改。
plain
# 地址与鉴权信息
xfyun-tts.host-url=https://tts-api.xfyun.cn/v2/tts
# 均到控制台-语音合成页面获取
xfyun-tts.APPID=
xfyun-tts.APISecret=
xfyun-tts.APIKey=
# 小语种必须使用UNICODE编码作为值
xfyun-tts.TTE=UTF8
# 发音人参数。到控制台-我的应用-语音合成-添加试用或购买发音人,添加后即显示该发音人参数值,若试用未添加的发音人会报错11200
xfyun-tts.VCN=xiaoyan脚本配置
下面以Freeswitch为例进行配置,目的是演示EasyMrcp的使用,实际情况可根据自己的项目配置进行更改。注意要安装python tcp的gevent库。
- 配置拨号计划
在/usr/local/freeswitch/conf/dialplan/default.xml里新增如下配置:
plain
<?xml version="1.0" encoding="utf-8"?>
<include>
<context name="default">
<!-- 新增拨号计划,让所有号码都执行mrcp_handler脚本 -->
<extension>
<condition field="destination_number" expression="^\d+$">
<action application="python" data="mrcp_handler"/>
</condition>
</extension>
</context>
</include>- 添加python执行脚本
在/usr/local/freeswitch/scripts目录下新增mrcp_handler.py脚本和tcp_client.py脚本。脚本文件可以在下载的项目根目录下的scripts中找到。tcp_client.py是EasyMrcp client的python版本,只需调用即可。mrcp_handler.py包含用户与EasyMrcp电话之间的桥接和EasyMrcp client的简单调用。
在mrcp_handler.py中修改硬编码的EasyMrcp地址,将server_host改为EasyMrcp的运行地址。
plain
# 硬编码MRCP服务器信息
server_host = "172.16.2.155"
server_port = 9090命令运行
正常运行项目,使用如下命令:
java -jar EasyMrcp-x.x.x.jar
使用随意号码拨打号码1020(之前配置中EasyMrcp注册的号码)即可听到欢迎语,后续可以进行多轮的对话,EasyMrcp会重复你的话。
