UniMRCP 是一个开源项目,旨在跨平台实现媒体资源控制协议(MRCP),符合 IETF 的 RFC6787(MRCPv2)和 RFC4463(MRCPv1)规范。该项目集成了 SIP、RTSP、SDP、MRCPv2 以及 RTP/RTCP 协议栈,为集成者提供一致的协议接口。 (GitHub)
项目架构:
UniMRCP 的架构由多个模块和库组成,主要包括:
库(Libraries):
• apr-toolkit:基于 APR 和 APR-util 库构建的工具集,提供任务抽象、日志记录等功能。
• mpf:媒体处理框架。
• mrcp:MRCP 基础实现,包括消息、解析器和资源。
• mrcpv2-transport:MRCPv2 传输层的实现。
• mrcp-signaling:抽象的 MRCP 信令(会话管理)接口。
• mrcp-engine:抽象的资源引擎接口。
• mrcp-client:基于抽象信令接口的 MRCP 客户端栈实现。
• mrcp-server:基于抽象信令和引擎接口的 MRCP 服务器栈实现。
• uni-rtsp:MRCPv1 所需的最小 RTSP 栈实现。
模块(Modules):
• mrcp-sofiasip:使用 SofiaSIP 库实现的抽象信令接口。
• mrcp-unirtsp:使用 UniRTSP 库实现的抽象信令接口。
插件(Plugins):
• demo-synth:模拟语音合成的 TTS 插件。
• demo-recog:模拟语音识别的 ASR 插件。
• demo-verif:模拟说话人验证的 SVI 插件。
• mrcp-recorder:录音插件的实现。
平台(Platforms):
• libunimrcpclient:基于底层 mrcp-client 库,使用 mrcp-sofiasip 和 mrcp-unirtsp 模块构建的 UniMRCP 客户端栈。
• libunimrcpserver:基于底层 mrcp-server 库,使用 mrcp-sofiasip 和 mrcp-unirtsp 模块构建的 UniMRCP 服务器栈。
• unimrcpclient:基于 UniMRCP 客户端栈的示例 C 应用程序。
• umc:基于 UniMRCP 客户端栈的示例 C++ 应用程序。
• unimrcpserver:UniMRCP 服务器应用程序。
主要特性:
• 协议支持: 完全支持 MRCPv1 和 MRCPv2 协议。
• 资源类型: 支持语音合成(TTS)、语音识别(ASR)、说话人验证(SVI)和录音等资源。
• 跨平台: 兼容多种操作系统,包括 Windows 和 Linux。
• 编程语言: 主要使用 C 和 C++ 语言编写。
• 开源许可: 采用 Apache 2.0 许可证。
项目资源:
• 官方网站: http://www.unimrcp.org/
• 下载地址: http://www.unimrcp.org/downloads
• 文档: http://www.unimrcp.org/documentation
• 代码仓库: https://github.com/unispeech/unimrcp
• 问题跟踪: https://github.com/unispeech/unimrcp/issues
• 讨论组: https://groups.google.com/group/unimrcp
通过上述模块和库的协同工作,UniMRCP 提供了一个完整的 MRCP 实现,方便开发者在不同平台上集成和使用 MRCP 协议。