MRCPv2在电信智能语音识别业务中的应用
1. MRCPv2协议简介
媒体资源控制协议(Media Resource Control Protocol, MRCP)是一种基于TCP/IP的通讯协议,用于客户端向媒体资源服务器请求提供各种媒体资源服务。此协议是由Cisco、Nuance等公司联合开发,由IETF作为Internet草案发布,经过不断的更新,目前最新的版本为RFC6787,可以支持的媒体资源业务包括文语转换(Text to Speech, TTS)、自动语音识别 (Automatic Speech Recognition, ASR)、录音(Recording)、声纹识别(Voiceprint Recognition, VPR)。
2. MRCPv2系统结构及协议控制
MRCP 协议本身不是独立的,它不仅仅依赖于TCP/IP协议,还依赖于SIP、SDP、RTP、RTCP、RTSP等协议。
其系统结构如图1所示:
(1) 控制面:它通过sip协议在客户端(MRCP Client)和服务器(MRCP Server)之间建立和管理会话(注:MRCPv1就使用RTSP协议完成控制,MRCPv2改为sip协议)。
(2)它通过SDP交换媒体能力以及通过RTP协议完成媒体的承载交换。
(3)业务面:它通过MRCP协议来控制完成媒体资源服务的相关请求,响应和事件的传递,从而为客户端提供所需要的媒体资源服务。
其协议控制机制如图2所示:

(1)SIP协商过程中,MRCP Client在INVITE消息中携带自身用于传递MRCP协议以及RTP语音流的SDP(IP地址和端口号)。
(2)在协商成功返回200消息中会带上MRCP Server侧的SDP。
(3)MRCP Client发起TCP连接创建,并且通过TCP连接上发送MRCP协议控制MRCP Server分配的资源。
(4)MRCP Client/Server通过在RTP连接上传输语音数据从而实现媒体资源业务。
(5)当业务应用结束时,终止SIP会话的同时,还需要关闭TCP和RTP连接。
MRCPv2的使用规范可以总结如下:
(1)MRCP Client 通过SIP&SDP建立与MRCP Server的MRCP控制通道(使用MRCP 通道ID进行唯一标识,MRCP Server返回200消息时,通过a==channel属性指定)
(2)可以使用SIP的Re-INVITE消息添加或者删除一个会话中的MRCP控制通道,所以一个会话可以拥有多个MRCP控制通道(比如:一个会话可以同时拥有ASR&TTS 通道)
(3)多个MRCP控制通道可以共享同一个TCP链接。
(4)一个MRCP消息只能携带一个MRCP通道ID。
(5)MRCP控制消息不能更改SIP绘话的状态。
(6)由于MRCP不保证传输的可靠性,所以必须使用TCP来保证其传输。
3 语音识别技术及其在电信智能语音识别业务中的应用
自动语音识别技术(Automatic Speech Recogition ASR)是一种将人的语音转换为文本的技术,其广泛应用于语音通讯系统,声控电话交换、数据查询、订票系统、电信银行客服、计算机控制、工业控制等领域。
通常,我们说的语音识别可以分为固定次识别以及自然语音识别,固定词语音识别只能识别已经指明的固定短语或词,而且用户也只能说这些固定的词,否则无法识别,而自然语音识别可以识别用户随意说的短语或者句子,很显然自然语音识别更易用,其技术难度也更大。
近几年来,自然语音识别相关的技术随着移动互联网的发展迎来了迅猛的发展,在Google引领下,互联网、通信公司纷纷自然把自然语音识别作为重要的研究方向。
美国市场调查咨询公司Gartner于2013年发布的新兴技术成熟度曲线显示,语音识别技术已经走向成熟,在未来2-5年之内将会有大幅度的利用,而自然语音问答目前技术期望过热区,预计在5-10年会有大幅度的利用。自然语音问答技术中就使用到了自然语音识别。
在电信领域,语音识别技术应用多年来一直停留在固定词识别上,基本限定在简单的IVR领域,因为限制了用户的语音输入范围、易用性和可靠性受限导致应用实际并不广泛,从目前各大运营商的客服电话就很容易发现,采用按键式的IVR仍然是主流。
随着近几年语音识别技术的发展,自然语音识别技术逐渐完善,在移动互联网等可靠性不是太高的领域得到广泛的应用,iphone 的siri, QQ的语音输入、Googe的语音翻译、科大恶移动合作的灵犀扥智能语音识别业务都广泛应用到此技术。
拥有海量一手语音数据的电信行业也因为自然语音识别技术的成熟,智能语音识别业务将会迎来新的发展机遇。
MRCPv2在电信智能语音识别业务中的应用的更多相关文章
- HBase在大搜车金融业务中的应用实践
摘要: 2017云栖大会HBase专场,大搜车高级数据架构师申玉宝带来HBase在大搜车金融业务中的应用实践.本文主要从数据大屏开始谈起,进而分享了GPS风控实践,包括架构.聚集分析等,最后还分享了流 ...
- Nebula Graph 在网易游戏业务中的实践
本文首发于 Nebula Graph Community 公众号 当游戏上知识图谱,网易游戏是如何应对大规模图数据的管理问题,Nebula Graph 又是如何帮助网易游戏落地游戏内复杂的图的业务呢? ...
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
[源码下载] 重新想象 Windows 8.1 Store Apps (81) - 控件增强: WebView 之加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Co ...
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
原文:重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 Web ...
- 区块链Fabric技术在托管业务中的运用初探
区块链Fabric技术在托管业务中的运用初探 什么是Fabric技术 HyperLedger是IBM.Intel等多家公司正开展的一个区块链项目,包含了Fabric.Iroha等多项技术,其中最为活跃 ...
- redis整合Spring集群搭建及业务中的使用
1.redis安装 Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 安装步骤: 第一步:redis的源码包上传到li ...
- 权限组件(15):rbac的使用文档和在业务中的应用
这里用主机管理系统当做示例. 一.将rbac组件拷贝到项目中. 注意: rbac自己的静态文件.layout.html(被继承的模板).bootstrap.fontsize.公共的css.jquery ...
- PostgreSQL 在视频、图片去重,图像搜索业务中的应用
摘要: PostgreSQL 在视频.图片去重,图像搜索业务中的应用作者digoal日期2016-11-26标签PostgreSQL , Haar wavelet , 图像搜索 , 图片去重 , 视频 ...
- “造轮运动”之 ORM框架系列(一)~谈谈我在实际业务中的增删改查
想想毕业已经快一年了,也就是大约两年以前,怀着满腔的热血正式跨入程序员的世界,那时候的自己想象着所热爱的技术生涯会是多么的丰富多彩,每天可以与大佬们坐在一起讨论解决各种牛逼的技术问题,喝着咖啡,翘着二 ...
随机推荐
- 简单的python爬虫实例
目标网站:https://www.quanjing.com/category/1286521/2.html 爬取搜索出来的所有“中东人”的图片: 先看一下源代码,找到存放图片链接的地方,在源代码最下面 ...
- .Net之Layui多图片上传
前言: 多图上传在一些特殊的需求中我们经常会遇到,其实多图上传的原理大家都有各自的见解.对于Layui多图上传和我之前所说的通过js获取文本框中的文件数组遍历提交的原理一样,只不过是Layui中的up ...
- python进阶--字典排序
zip()函数 sorted() 要求对字典中,按值的大小排序 解决方案: 利用zip函数 zip函数介绍: zip函数可以将可迭代对象打包成一个个元组,在python3中返回一个对象,在python ...
- Kafka FAQ
报错如下: Unable to read additional data from client sessionid 0x15d2c867a770006 使用的kafka自带的zookeeper,测试 ...
- list和list<map<String,object>>比较,不存在map的key赋值
package com; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDa ...
- redis分布式锁的问题和解决
分布式锁 在分布式环境中,为了保证业务数据的正常访问,防止出现重复请求的问题,会使用分布式锁来阻拦后续请求.具体伪代码如下: public void doSomething(String userId ...
- JS实现当前页弹出窗口,且页面变灰不可操作
使用JS在当前页面在div中加载弹出窗口,并让当前页面变灰不可操作. 加载弹出窗口的div需将宽高设置成整个页面的大小,以覆盖当前页面的内容. opacity:0.6: 页面可见度设置为0.6(1为完 ...
- Git命令行之快速入门
从头开始创建一个版本库,添加一些内容,然后管理一些修订版本. 有两种建立 Git版本库 的基础技术.第一:从头开始创建,用现有的内容填充它.第二:可以克隆一个已有的版本库.这里选择从一个空的版本库开始 ...
- 使用nvm管理多个不同版本的nodeJS之安装成功nodeJs之后使用npm报错的问题
使用nvm安装nodeJS之后,node -v命令可以正常使用,但是npm命令一直报“npm不是内部命令”的错误,深入研究之后得到以下解决方案: 搭建步骤: (1)下载nvm https://gi ...
- [LeetCode] 6. ZigZag Conversion (Medium)
原题链接 把字符串按照 ↓↗↓……的顺序,排列成一个 Z 形,返回 从左到右,按行读得的字符串. 思路: 建立一个二维数组来按行保存字符串. 按照 ↓↗↓……的方向进行对每一行加入字符. 太慢了这个解 ...