Skip to content

EasyMrcp

开源简单易用VoIP接入ASR和TTS集成解决方案

✓ Java编写,开箱即用
✓ 全新2.0架构,完全异步
✓ 支持多种ASR/TTS服务

项目简介

EasyMrcp使用Java编写,目前提供了多种不同的ASR和TTS的集成,做到真正简单使用ASR和TTS。

现已推出最新架构2.0,已全面放弃原mrcp协议,取而代之的是简化实现的完全异步架构,部分功能正在完善中。

详细信息请访问Github项目地址:Github地址

⚠️

重要提示

从2.0版本开始已经不再支持使用标准mrcp协议,项目中已完全删除标准mrcp相关内容,也不再需要安装mod_unimrcp模块等操作。取而代之的是全新架构。

目前支持

项目迭代中,后续会集成更多的ASR和TTS服务

电话软交换平台

FreeSWITCH✓ 支持

ASR 语音识别

离线ASR免费开源支持开源免费的离线语音识别服务
在线ASR在线服务支持多家在线ASR服务商接入

TTS 语音合成

离线TTS免费开源支持开源免费的离线语音合成服务
在线TTS在线服务支持多家在线TTS服务商接入

新版架构升级

自EasyMrcp 2.0开始,不再使用标准mrcp协议

EasyMrcp架构图
🔌

SIP注册方式

采用EasyMrcp直接向IPPBX注册方式,通话时相当于SIP的UA,可以将EasyMrcp看作一个语音网关。

📡

类似MRCP交互命令

保留了MRCP的关键特征,自定义了类似MRCP事件的简单协议,简化了MRCP事件的设计。

简单客户端控制

大幅降低了client的复杂程度,优化为一个简单的TCP连接发送相关事件。

🔄

完全异步

彻底解决了旧架构中无法异步调用的问题,可以在任意时间任意线程任意代码位置控制ASR和TTS。

旧版本问题

下面介绍了在旧版中使用的核心痛点,这也是为什么坚定要推出新版的原因

整体架构问题

MRCP协议规定了使用SIP完成TTS和ASR操作,由MRCP client中转VoIP语音流,设计层面侧重单轮对话,弱化了用户与智能语音机器人之间复杂语音流的通话概念。

客户端限制太多

mod_unimrcp基于一轮对话的结构设计,导致多轮对话间命令发送出现间隙,无法异步通过多线程方式操作多轮对话,降低了处理复杂对话的可行性。

需手动集成

在EasyMrcp 1.x的版本中主要完成的就是集成问题,虽然存在很多不完善的地方,但是提供了开箱即用的ASR和TTS集成。

快速开始

1

下载程序

下载发布的压缩包,或切换至dev分支Maven编译运行项目

2

配置服务

根据文档配置所需的ASR和TTS服务

3

开始使用

启动服务,开始使用EasyMrcp