Skip to content
项目简介
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协议
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集成。
