通常,我们说的语音识别可以分为固定词识别以及自然语音识别[4-5],固定词语音识别只能识别已经指明的固定短语或词,而且用户也只能说这些固定的词,否则无法识别,而自然语音识别可以识别用户随意说的短语或者句子,很显然自然语音识别更易用,其技术难度也更大;
近几年来,自然语音识别相关的技术随着移动互联网的发展迎来了迅猛的发展。在Google引领下,互联网、通信公司纷纷把自然语音识别作为重要研究方向。
美国市场调查咨询公司Gartner于2013年发布的新兴技术成熟度曲线显示,语音识别技术已经走向成熟,在未来2~5年之内将会有大幅度的利用,而自然语音问答目前处于技术期望过热区,预计在未来的5~10年会有大幅度的利用,自然语音问答技术中就使用到自然语音识别。
在电信领域,语音识别技术应用多年来一直停留在固定词识别上,基本限定在简单IVR领域,因为限制了用户的语音输入范围,易用性和可靠性受限导致应用实际并不广泛,从目前国内各大运营商的客服电话就很容易发现,采用按键式交互的IVR仍然是主流。
随着近几年语音识别技术的不断发展,自然语音识别技术也逐渐成熟,而且在移动互联网等可靠性要求不是太高的领域得到广泛的应用,iPhone的Siri、QQ的语音输入、Google的语音翻译、科大和移动合作的灵犀等智能语音识别业务都广泛应用到此技术。
拥有海量一手语音数据的电信行业也因为自然语音识别技术的成熟,智能语音识别业务将会迎来新的发展机遇。
4 MRCPv2协议在电信智能语音识别业务中的应用
由于识别技术的专一性,在电信领域,控制着语音接入的电信设备制造商,很少拥有扎实的语音识别技术,而提供语音识别技术的厂家很多。以前各电信设备集成商必须针对不同的语音识别厂家提供的API接口进行专门的集成开发,不同识别引擎的接口各不相同,从而导致了集成过程的复杂性和局限性。而利用MRCP协议提供的标准接口,电信设备集成商们不必再针对特定的识别引擎进行开发,而只需要满足MRCP协议即可与多个不同厂商的识别引擎对接。这样就为各种语音应用开发提供了更加灵活的选择,并有效地降低业务开发周期和成本。正是由于具有以上优势,MRCP协议在推出以后得到了国外各电信设备制造商和语音识别提供商的广泛支持[6],各电信设备制造商提供MRCP Client,语音识别提供商提供MRCP Server,通过对接完成语音识别业务。
MRCPv2为语音识别业务提供除了公共的SIP、SDP、RTP配合机制,公共的方法、消息头和事件之外,还包含如下两个部分:
(1)语音识别业务中的状态变迁机制;
(2)语音识别业务中的方法、事件以及配套的消息头、参数。
4.1 MRCPv2语音识别业务中的状态变迁机制介绍(图4)
在MRCPv2定义的语音识别应用中,MRCP Client和MRCP Server必须遵循如上图所示的状态机变迁机制,只有空闲、识别中、识别完三个状态。状态的变迁依靠方法和事件的驱动:
(1)通过RECOGNIZE方法触发进入识别中状态;
(2)通过RECOGNITION-COMPLETE事件触发进入识别完态;
(3)通过STOP方法触发进入空闲态;
4.2 MRCPv2定义的语音识别应用中的方法、事件及重要消息头
支持语音识别业务的方法和事件主要如下:
(1)RECOGNIZE方法:启动识别命令,携带的主要消息头有No-Input-Timeout、Recognition-Timeout、Speech-Complete-Timeout、Start-Input-Timers、Confidence-Threshold,其含义分别如下:
No-Input-Timeout:无话超时时间,单位为毫秒,用于定义MRCP server启动识别后允许用户无声音输入的最大时长;
Recognition-Timeout:识别超时时间,单位为毫秒,用于定义MRCP server启动识别后允许返回识别结果的最大时长;
Speech-Complete-Timeout:说话完检测超时时间,单位为毫秒,用于定义MRCP Server判断用户一句话已说完的静默时长;
Start-Input-Timers:是否立即启动无话超时定时器,为“true”时立即启动,通常启动识别时同时伴随有提示音的情况下,可以置为“false”,即让MRCP Server暂时不要启动无话超时定时器;
Confidence-Threshold:识别置信度门槛,用于定义返回识别结果时必须满足的最小置信度;
4.3 一次语音识别业务中完整MRCP交互
一次完整的语音识别业务交互如图5所示:
(1)MRCP Client发送INVITE消息给MRCP Server请求建立会话,携带MRCP Client侧的SDP;
(2)MRCP Server回复200表示请求已经成功接受处理,携带MRCP Server侧的SDP;
(3)MRCP Client随后发送ACK消息证实200消息已经收到,至此一个SIP会话成功建立;
(4)MRCP Client发送RECOGNIZE消息给MRCP Server,请求语音识别,按照MRCP协议规定的格式携带相关的语音识别控制消息头,并且指定语法文件路径;
(5)MRCP Server接收RECOGNIZE请求,编译语法文件,回复200消息给MRCP Client,此时两侧进入识别中状态;
(6)MRCP Client此时开始根据之前协商好的SDP,开始源源不断的发送RTP语音流给MRCP Server;
(7)MRCP Server接收RTP语音流,当检测到用户开始说话时,发送START-OF-INPUT事件;
(8)当MRCP Server根据语法文件定义得到识别结果时,通过RECOGNITION-COMPLETE事件返回识别结果,两侧进入识别完状态;
(9)MRCP Client发送BYE消息给MRCP Server结束会话;
(10)MRCP Server发送200消息给MRCP Client确认结束;
MRCP Client通过上述消息交互获得MRCP Server提供的一次完整语音识别能力。
5 MRCPv2在电信实时智能语音识别业务中的应用展望
当前,MRCPv2协议已经能够很好的解决单次语音识别问题,各大电信运营商正火热上线的智能语音导航、机器人客服等业务都基于MRCPv2协议,但是这些都是IVR性质,其特定都是要识别的语音内容不长。在人工业务辅助识别等大量连续识别场景中应用仍然受限,比如说话内容实时回显,此时需要完成不间断的语音识别结果上报,而当前的MRCPv2协议只支持每次上报一个结果,所以需要进一步扩展MRCPv2协议才能完成。
参考文献
[1] MRCPv2 RFC 6787: Media Resource Control Protocol Version 2.
[2] SDP RFC 2327: Session Description Protocol.
[3] SIP RFC 3261: Session Initiation Protocol.
[4] 薛德黔.交互式自然口语语音识别关键技术[J].计算机应用,2002,22(7): 45-47.
[5] 冯俊兰,杜利民.自然口语语音识别研究概况[J].电子商务,1999(9):3-7.
[6] 史俊波,詹舒波.MRCPv2协议及其在分布式语音资源解决方案中的应用,2010.
[7] Gartner.Hype Cycle for Emerging Technologies 2013[R].2013.