MRCP协议(媒体资源控制协议)
媒体资源控制协议(MediaResourceControlProtocol,MRCP)是一种通讯协议,用以语音服务器向客户端提供各种语音服务(如语音识别和语音合成)。
MRCP并不定义会话连接,不关心服务器与客户端是如何连接的,MRCP的消息通常是承载于其它协议之上,如RTSP,SIP等。
MRCP消息使用类似HTTP等很多Internet协议一样的文本格式,每一个消息包括三一部分:首行,消息头,消息体。首行说明消息种类及返回码等信息。消息头包括了多个行内容,每一行都形如"字段:数值"。消息体包括了消息的详细内容,长度在消息头中指定。
类似HTTP,MRCP使用请求(通常由客户端进行)、响应模式。响应能够简单的确定请求,或是得出关于处理的其它信息。比如,MRCP客户端向服务端请求想要推送一些音频数据以进行处理(例如语音识别),因此,服务端能够推送一个包括端口号的响应,由于MRCP仍未定义音频数据的传输,因此 ,必须借助其它的协议,例如RTP来进行。
有两个版本的MRCP协议,版本2使用SIP作为控制协议,版本1使用RTSP。
[1]RFC4463:AMediaResourceControlProtocol(MRCP)
MRCP协议简述
媒体资源控制协议(MediaResourceControlProtocol,MRCP)是由Cisco、Nuance等公司联合开发的网络协议,该协议由IETF作为Internet草案公布(draft-shanmugham-mrcp-07)。该协议为这些必须进行语音处理的客户端提供了一种通过网络来控制媒体处理资源(如ASR、TTS模块等)的体制。该协议在设计之初就考虑到了能够在将来得到扩展以支持声纹鉴别和身份识别(SpeakerIdentification/SpeakerVerification)等作用。
MRCP协议定义了控制媒体处理资源所必不可少的请求(Request)、回复(Response)和事件(Event)等消息。MRCP协议也为每一种资源定义了状态机,为每一个请求和服务器事件定义了需要的状态转换。MRCP关心的焦点在于控制这些进行媒体流处理的资源(如ASR、TTS),以及怎样与这些资源之间进行通信。
MRCP协议不能独立工作,它依赖于RTSP(RealTimeStreamingProtocol)作为载体在客户端与服务器端之间建立会话连接。而语音媒体数据则通过RTP(RealTimeTransportProtocol)协议连接传输给语音应用服务器。
典型的根据MRCP的分布式语音应用系统选用C/S架构,由客户端传出媒体流处理请求,服务器端则运用媒体处理资源(ASR/TTS)来处理或生成媒体流,并将相对的处理结果返回给客户端。那样客户端就可以通过MRCP协议来通过网络分布式地控制服务器端的媒体处理资源。
随着MRCP协议的持续推广与应用,各语音技术厂商在实践与布署过程中碰到了各种各样的问题。因此,IESG(TheInternetEngineeringSteeringGroup)于2002年特许成立了Speechsc工作组,专门负责拟定更加完善高效的支持分布式语音资源处理的开放协议。在Speechsc工作组的努力下,改进后的MRCPv2(draft-ietf-speechsc-mrcpv2-09)很快应运而生了。MRCPv2的消息格式和资源状态机等都建立在MRCP协议版本1的基本之上,它完全兼容W3C的SSML、SRGS、NLSML规范。与MRCPv1不一样的是MRCPv2消息不再依赖RTSP作为载体,只是作为独立的消息进行传输,可是它仍依赖于会话管理协议,如SIP(SessionInitiationProtocol)协议,来在客户端与服务器端之间建立控制会话。
下一篇:高防IP的原理是什么?