Skip to content

运行程序

以下配置只是为了能够体验EasyMrcp,所以存在一些硬编码情况,在实际使用中可以根据自己的项目情况进行不同的配置。

前置准备

  1. 项目运行需要JDK11。
  2. 使用FreeSwitch作为IP PBX
  3. 使用python作为执行脚本(需要freeswtich支持python)
  4. 演示用EasyMrcp client脚本需要安装python tcp库gevent
    安装与 FreeSWITCH 中所用 Python 版本兼容的版本(例如,Python 2.7)
    pip install gevent==1.4.0 greenlet==0.4.17

必要的配置

配置EasyMrcp配置文件

请选择要使用的一种asr和tts进行对应配置。

  1. 修改EasyMrcp服务器配置,设置运行ip和对接的服务类型,以下配置以科大讯飞asr和tts为例。
    配置项目目录下的application.yaml文件,主要需要修改的配置如下:
    配置sipServerEasyMrcp运行的ip地址。
    配置asrMode选择一个asr服务名称。
    配置ttsMode选择一个tts服务名称。
    配置fs.serverfs.domain为freeswtich地址。
    配置EasyMrcp要注册的号码fs.usernamefs.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
  1. 配置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
  1. 配置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库。

  1. 配置拨号计划
    在/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>
  1. 添加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会重复你的话。