一种AMR语音数据的提取方法和装置与流程

文档序号:13949932阅读:740来源:国知局
一种AMR语音数据的提取方法和装置与流程

本发明涉及无线流媒体领域,尤其涉及一种amr语音数据的提取方法和装置。



背景技术:

amr(adaptivemulti-rate,自适应多速率),是一种常见的音频编码格式,它采用了代数码本激励线性预测算法(acelp)以及话音激活检测、速率判决、差错隐藏、舒适背景噪声生成等技术,能支持4.75kbps至12.2kbps的8中不同的编码速率,并依据无线信道的实际情况及业务需求自适应地切换语音编码速率,在话音质量和系统容量间取得良好的折衷。由于其压缩比非常高,常见于语音类的音频压缩,广泛用于移动设备间的网络传输。

实时传输协议rtp(real-timetransactionprotocol)是在internet上处理多媒体数据流的一种网络协议,利用它能够在一对一(unicast,单播)或者一对多(multicast,多播)的网络环境中实现传流媒体数据的实时传输。amr语音数据在网络传输时一般采用rtp协议作为承载协议,rtp协议使用sip协议作为信令控制协议,传统的voip通常采用sip+rtp的模式进行语音数据的传输。

amr语音数据的传统提取方式是依据sip信令协商的rtp端口号及ip信息进行预测,筛选提取效率较低,如果sip信令无法获取或者存在丢失,则无法正确提取海量数据中存在的amr格式。



技术实现要素:

本发明的目的在于提出一种amr语音数据的提取方法和装置,能够无需依赖sip协议快速提取amr语音数据。

为达此目的,本发明采用以下技术方案:

一方面,本发明提供一种amr语音数据的提取方法,包括:

采集rtp数据;

按照时间顺序解析所述rtp数据获得链接数据和rtp承载;

解析所述rtp承载,通过payloadtype的取值判断所述rtp承载是否为amr格式,是则获取所述rtp承载中的amr净荷数据;

通过所述amr净荷数据的属性值qualityindicator,确认所述amr净荷数据为无损数据时,提取并保存amr语音数据。

进一步的,按照时间顺序解析所述rtp数据获得链接数据和rtp承载之后,还包括:

根据所述链接数据建立链接管理列表;

相应的,若通过payloadtype的取值判断所述rtp承载为非amr格式,则丢弃所述rtp承载,并从链接管理列表中删除对应的所述链接数据。

其中,提取并保存amr语音数据,包括:

根据所述amr净荷数据的属性值cmr和frametype,从所述amr净荷数据中提取相应净荷长度的amr语音数据。

其中,按照时间顺序解析所述rtp数据获得链接数据和rtp承载,包括:

根据所述rtp数据的承载协议,按照时间顺序进行相应的协议解析,获得链接数据和rtp承载;

所述链接数据包括源ip,目的ip和udp端口号。

其中,通过payloadtype的取值判断所述rtp承载是否为amr格式,包括:

判断所述payloadtype的取值是否为大于或等于96、且小于或等于127的整数;

若是,所述rtp承载为amr格式;

若否,所述rtp承载为非amr格式。

另一方面,本发明提供一种amr语音数据的提取装置,包括:

数据采集模块,用于采集rtp数据;

承载协议解析模块,用于按照时间顺序解析所述rtp数据获得链接数据和rtp承载;

rtp解码模块,用于解析所述rtp承载,通过payloadtype的取值判断所述rtp承载是否为amr格式,是则获取所述rtp承载中的amr净荷数据;

amr解码模块,用于通过所述amr净荷数据的属性值qualityindicator,确认所述amr净荷数据为无损数据时,提取并保存amr语音数据。

进一步的,所述提取装置还包括:链接管理模块,用于在按照时间顺序解析所述rtp数据获得链接数据和rtp承载之后,

根据所述链接数据建立链接管理列表;

相应的,若所述rtp解码模块通过payloadtype的取值判断所述rtp承载为非amr格式,则丢弃所述rtp承载;

所述链接管理模块还用于,从链接管理列表中删除对应的所述链接数据。

其中,所述amr解码模块具体用于:

通过所述amr净荷数据的属性值qualityindicator,确认所述amr净荷数据为无损数据;

根据所述amr净荷数据的属性值cmr和frametype,从所述amr净荷数据中提取相应净荷长度的amr语音数据。

其中,所述承载协议解析模块具体用于:

根据所述rtp数据的承载协议,按照时间顺序进行相应的协议解析,获得链接数据和rtp承载;

所述链接数据包括源ip,目的ip和udp端口号。

其中,所述rtp解码模块具体用于:

判断所述payloadtype的取值是否为大于或等于96、且小于或等于127的整数;

若是,所述rtp承载为amr格式;

若否,所述rtp承载为非amr格式。

本发明的有益效果为:

通过对承载协议的解析和属性值提取,确定rtp数据为amr格式,再进行进一步的解析、判断和提取,从而获得无损的amr语音数据。本发明有利于在海量数据中准确、高效地提取amr数据,无需依赖sip协议,并且适用于不同的承载方式和网络环境。

附图说明

图1是本发明实施例一提供的amr语音数据的提取方法的流程图;

图2是本发明实施例二提供的amr语音数据的提取装置的结构示意图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

实施例一

本实施例提供一种amr语音数据的提取方法,适用于在海量数据中提取amr语音数据的情形。该提取方法通过一种amr语音数据的提取装置执行,该装置由软件和/或硬件组成,并且集成于计算机等音频处理设备的内部。

图1是本发明实施例一提供的amr语音数据的提取方法的流程图。如图1所示,该提取方法包括如下步骤:

s11,采集rtp数据。

采集不同承载方式的rtp数据,其承载协议包括但不限于pppoe,gtp和gre。

s12,按照时间顺序解析所述rtp数据获得链接数据和rtp承载。

根据所述rtp数据的承载协议,将每个rtp的数据包按照时间顺序进行相应的协议解析,获得链接数据和rtp承载;所述链接数据包括源ip,目的ip和udp端口号。

s13,根据所述链接数据建立链接管理列表。

根据步骤s12获得链接数据建立链接管理列表,用于保障客户端和服务器之间交换的报文不会丢失、受损或者失序。

s14,解析所述rtp承载,通过payloadtype的取值判断所述rtp承载是否为amr格式,是则执行步骤s15~s16,否则执行步骤s17。

通过rtp标准协议栈对提取出来的rtp承载进行解析,其payloadtype的取值指定了rtp承载的类型,默认静态映射为[0,95],动态映射为[96,127],而amr格式为动态映射。

因此,判断所述payloadtype的取值是否为大于或等于96、且小于或等于127的整数,即属于动态映射的区间;若是,所述rtp承载为amr格式;若否,所述rtp承载为非amr格式。

s15,获取所述rtp承载中的amr净荷数据。

解析所述rtp承载将获得amr净荷数据,以及sequencenumber、timestap、synchronizationsourceidentifier等属性值,在后续步骤提取出amr语音数据后,与所述amr语音数据一起保存。

s16,通过所述amr净荷数据的属性值qualityindicator,确认所述amr净荷数据为无损数据时,提取并保存amr语音数据。

amr的不同编码类型和不同模式对应的语音帧长度不同,因此需要提取的的amr语音数据的净荷长度也不同,根据所述amr净荷数据的属性值cmr(codecmoderequest,编码模式请求)和frametype(帧类型),从所述amr净荷数据中提取相应净荷长度的amr语音数据。

s17,丢弃所述rtp承载,并从链接管理列表中删除对应的所述链接数据。

对于非amr格式的rtp承载,不是本实施例需要提取的目标,因此可以丢弃,最终链接管理列表中只有amr格式的rtp承载对应的链接数据。

本实施例的技术方案使海量数据的amr语音提取变得更加高效、简单,提取结果相对准确;可以无需依赖sip协议,对于客观环境条件依赖较少;可适应各种网络环境,不同的底层承载方式或者网络环境较差(乱序、丢包)的情况都可以作用。

实施例二

本实施例提供一种amr语音数据的提取装置,用于执行上述实施例所述的提取方法,解决相同的技术问题,达到相同的技术效果。

图2是本发明实施例二提供的amr语音数据的提取装置的结构示意图。如图2所示,该提取装置包括:

数据采集模块21,用于采集rtp数据。

承载协议解析模块22,用于按照时间顺序解析所述rtp数据获得链接数据和rtp承载。

rtp解码模块23,用于解析所述rtp承载,通过payloadtype的取值判断所述rtp承载是否为amr格式,是则获取所述rtp承载中的amr净荷数据。

amr解码模块24,用于通过所述amr净荷数据的属性值qualityindicator,确认所述amr净荷数据为无损数据时,提取并保存amr语音数据。

进一步的,所述提取装置还包括:链接管理模块25,用于在按照时间顺序解析所述rtp数据获得链接数据和rtp承载之后,根据所述链接数据建立链接管理列表。

相应的,若所述rtp解码模块23通过payloadtype的取值判断所述rtp承载为非amr格式,则丢弃所述rtp承载;

所述链接管理模块25还用于,从链接管理列表中删除对应的所述链接数据。

其中,所述amr解码模块24具体用于:

通过所述amr净荷数据的属性值qualityindicator,确认所述amr净荷数据为无损数据;根据所述amr净荷数据的属性值cmr和frametype,从所述amr净荷数据中提取相应净荷长度的amr语音数据。

其中,所述承载协议解析模块22具体用于:

根据所述rtp数据的承载协议,按照时间顺序进行相应的协议解析,获得链接数据和rtp承载;所述链接数据包括源ip,目的ip和udp端口号。

其中,所述rtp解码模块23具体用于:

判断所述payloadtype的取值是否为大于或等于96、且小于或等于127的整数;若是,所述rtp承载为amr格式;若否,所述rtp承载为非amr格式。

本实施例通过对承载协议的解析和属性值提取,确定rtp数据为amr格式,再进行进一步的解析、判断和提取,从而获得无损的amr语音数据,有利于在海量数据中准确、高效地提取amr数据,无需依赖sip协议,并且适用于不同的承载方式和网络环境。

以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1