人工智能和很多人机对话的场景使用越来越广泛。根据IBM的数据统计:到2020年,大约85%的和客户互动的业务可能被不需要人来处理,这些工作会通过人工智能来处理。在实现语音和网络技术集成方面需要相对比较规范的协议来进行处理,否则各个厂家都和软件集成商很难进行标准的对接服务。MRCP协议是目前针对媒体资源和IP网络起草的目前使用的标准协议。它主要的目的是对基于网络的媒体处理资源(语音识别,语音合成)提供一个标准,一致的,并且灵活的接口。当然,现在的MRCP版本已经进行了升级,特别是MRCP v2以后,更多的是应用场景是使用在了基于IP的语音通信中。
根据维基百科的定义:
Media Resource Control Protocol (MRCP) is a communication protocol used by speech servers to provide various services (such as speech recognition and speech synthesis) to their clients. MRCP relies on another protocol, such as Real Time Streaming Protocol (RTSP) or Session Initiation Protocol (SIP) for establishing a control session and audio streams between the client and the server.
所以,根据英文的定义,我们一般的MRCP的中文定义是:媒体资源控制协议。简单来说,就是借助其他协议(RTSP/SIP)创建一个控制会话来实现媒体资源服务器端和客户端之间的控制。
因为和IP语音技术相关,因为工作和爱好的原因,所以花了一点时间对MRCP协议做了一点粗浅的研究。笔者希望通过以学习笔记的方式和大家一起分享关于MRCP协议的相关知识,也可以帮助用户,特别是智能客服开发的呼叫中心厂家技术人员提供一个快速上手的机会。在真正开始讲座之前,笔者首先有几点需要说明:
- 此讲座的内容是从MRCP早期版本的内容开始介绍,结合了早期出版的一些学术资料来帮助大家理解MRCP的整个技术内容。因为技术的发展,可能以前的内容稍微相对比较过时,不一定是笔者自己的笔误,望理解。
- 此讲座可能有时会配合最新的MRCP V2进行介绍,所以需要大家了解。
- 此讲座可能结合UniMRCP 开源的MRCP项目来介绍,所以请提前获悉。
- 笔者不是语音识别领域的专家,仅对相关MRCP协议的部分内容进行讨论,在某些细节比一定理解非常精确,所以一些涉及语音识别的底层算法技术不是重点我们讨论的范围。在一些章节中,我们仅对MRCP中的语音识别合成技术的使用加以介绍。
MRCP协议MRCP V1最初是由思科,在2001年,Nuance和SpeechWorks 联合起草通过IETF 作为一个网络草案发布,最后形成的是RFC4463 。实际上,此版本也没有真正发展成为一个实际的IETF协议标准版本。因为此版本当初发布时有几个方面的技术因素限制了其未来的可拓展性,兼容性。MRCP V1版本主要存在以下几个方面的问题:
- MRCP V1 版本依赖于RTSP 协议来创建媒体流和数据传输传输。而当时,SIP协议已经是很多厂家推荐的媒体会话控制协议。
- MRCP V1 版本存在兼容性的问题,对如何定义数据表示方式支持语音识别非常困难。很多语音识别的厂家要求支持的拓展也没有实现。
- 缺乏对讲话者语音变化,识别引擎和讲话录音的支持。
2002年,SpeechSC工作组重新讨论了MRCP V1 的问题,对MRCP V1 进行了修改,发布了MRCP V2版本,MRCP V2 版本事实上在V1版本基础上实现了优化,修改和拓展,正式成为了MRCP V1的标准版本。
因为在MRCP V2版本中使用了SIP来负责创建独立的媒体和会话支持语音媒体资源,增加了对讲话者变化和讲话者的身份引擎的支持(speaker verification
和 identification),同时增加了拓展性,保证了丰富的兼容性。从此,MRCP V2 版本一直使用到现在。
前面,我们已经说到,IETF是MRCP协议起草的主要组织之一,负责了MRCP的技术架构和SIP协议的起草。另外一个国际组织也扮演了非常重要的角色–W3C。大家都知道W3C更多侧重于互联网技术的标准,例如我们大家知道的HTML。W3C 在1999 年创建了Voice Broswer Working Group(VBWG)。此小组研究的目的是让用户能够通过Web支持语音识别和DTMF的流程处理。VBWG发布了基于基于web的语音接口架构。此架构支持了描述性语言,用户可以通过此架构部署语音识别,语音合成等应用。VoiceXML是此架构的核心模块。用户可以快速掌握此语法。VoiceXML依赖于其辅助语言引擎,指定了语音识别和语音合成等执行流程。
W3C的Speech Recognition Grammar Specification (SRGS) 是一种标准的,基于XML语言的一种处理方式,支持了语音语法的规则,可识别的短语。和SRGS比较接近的是W3C Semantic Interpretation for Speech Recognition (SISR)。它更多的是用来标记语义信息支持语音语法,构成了对自然语言理解的基本格式。
W3C Speech Synthesis Markup Language (SSML)是基于XML描述语言的方式指定内容进行合成的方式,通过一种机制来控制语音的各种属性,包括音量大小,发音,语音间距,语速等方面的控制。
SRGS和SSML来平衡和控制W3C的发音语法规则(英文全称:Pronunciation Lexicon Specification (PLS))。PLS可以使用标准的发音字母来指定单词和短语发音。
经过多年的发展,VoiceXML是MRCP的“常见用户”,VoiceXML通过部署MRCP协议,它可以轻松支持多种第三方的语音识别和合成引擎,从而实现引擎和MRCP上游数据的交互。VBWG和SpeechSC 工作组在MRCP协议和语音识别合成接口架构集成方面紧密合作,双方共享很多技术标准,实现了跨平台的支持。从以上介绍我们可以看到,MRCP必须借助于VoiceXML才能真正实现语音识别,合成引擎的支持,实现无缝集成。
更多关于MRCP媒体控制协议完整详解,读者访问微信公众号:asterisk开源派获得22篇关于MRCP协议详解内容。
https://mp.weixin.qq.com/s?__biz=MzA4NjU0NTIwNQ==&mid=2656452670&idx=1&sn=6451ae5358920d06e8e8bfde8e544152&chksm=8465e664b3126f722e8f8be4fa5fdc071582fac2f261e7c36b87c1e47a11bb7df89ff1a9acd8&payreadticket=HO54kkXQyflfqKFz914TR0DnvpzNx5pW7B49dsqGo5FO-O4UatIINryR4urR7GecUjQwfis#rd