专利名称:一种基于rtp协议多路语音合成的方法
技术领域:
本发明涉及通讯领域,特别是涉及一种基于RTP协议多路语音合成的方法。
背景技术:
当代是以信息技术为主流的时代,VOIP技术以其运营成本低廉,且进入门槛低越来越受到人们的欢迎。在呼叫系统中,有录音监控的需求。一种可以直接进行语音录制,但这种受厂家的限制。另一种采用网络抓包工具直接采集RTP包。如一次电话会话的过程会产生两路RTP流,一路是用户呼入的,另一路是座席呼出的。由于两方所使用的设备不一样以及网络环境也存在差异,这就不能直接将这两路直接合并,如何对所抓取的包转换成音质可靠的语音这个课题急需解决
发明内容
本发明所要解决的技术问题是提一种基于RTP协议多路语音合成的方法,提供一种严谨可靠的方法消除语音抖动和不同步问题,使所抓取的RTP包转换成音质可靠的语
曰 为实现上述发明目的,本发明提供提一种基于RTP协议多路语音合成的方法,包括根据网络监控工具所抓取的RTP文件进行静态处理,经过分析、处理、合成三个步骤生成各种格式的语音文件;在“分析”步骤中,根据序号,时间戳,同步源标识(SSRC)以及RTP包到达网络接口卡时间对每路RTP包进行分析,从序列号和RTP包到达网络接口卡时间统计丢包率,及RTP包发送率,根据时间戳统计语音的采样周期以及静音期,再统计各路RTP包个数差值;在“处理”步骤中,根据上述的统计结果对各路RTP包进行不同的修补插包,其中插包总数依据此公式计算T = S+N(T :静音包总数,S :不同路RTP之间的差值,N :由于丢包必须添加的静音包数目);第一步先比较各路之间RTP的差值,根据业内对于SkHz采样的话音信号,采用每隔20ms构成一个数据块的原理并根据日常的经验只有差值在75和300范围内才将差值赋予给S,否则将S设置为O ;N的值在“分析“步骤中已经算出;第二步处理各路RTP包,优先将丢失的包N修补上,修补S包根据如下策略进行,P = N/S(P :每隔多少RTP包,N:某路RTP包总数,S :不同路RTP之间的差值),若P大于0,则按每隔此值对某路RTP插入一个静音包,也就是均匀修补。在“合成”步骤中,提取权利各路修补好的RTP包的载荷数据进行叠加取均值合成各种格式的音频文件。由上述方案可以看出,本发明中对多路RTP进行分析、处理、合成三个步骤可以对所抓取的包转换成音质可靠的语音,在实际的使用中,可以将这三步组成为三段流水线,可以提高效率,节省成本,且便于部署,易于实现。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图I为本发明实施例一中系统结构示意图;图2为本发明实施例一中分析流程示意图;图3为本发明实施例一中处理流程示意图;图4为本发明实施例一中合成流程示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一,参见图1,图2,图3,图4。本发明提供提一种基于RTP协议多路语音合成的方法,提供一种严谨可靠的方法消除语音抖动和不同步问题,使所抓取的RTP包转换成音质可靠的语音,系统整体的工作过程参见图I。在“分析”过程中参见图2,具体包括以下步骤 步骤I,系统读取某一路RTP文件;步骤2,系统判断RTP包序号是否连续;否,则将发生不连续的处的起始和结束序号存入统计数据库,继续步骤3,是,则直接继续步骤3 ;步骤3.系统判断RTP包时间戳以此判断是否存在静音,是,则保存静音期的起始和结束序号。继续步骤4,否,则直接继续步骤4;步骤4,系统判断RTP是否读取完,否,则转到步骤1,是,则结束分析。在“处理”步骤中参见图3,具体包括以下步骤步骤I,系统读取各个RTP文件,计算RTP包数目的差值;步骤2,系统从统计数据库读取统计结果和由步骤I获取的RTP包数目的差值,根据上述的统计结果对各路RTP包进行不同的修补插包,其中插包总数依据此公式计算T =S+N(T:静音包总数,S :不同路RTP之间的差值,N:由于丢包必须添加的静音包数目);步骤3,系统判断各路RTP是否处理结束,否,则转步骤1,是,则结束处理;在“合成”步骤中参见图4,具体包括以下步骤步骤1,系统同时读取各路RTP包载荷取和再均值;步骤2,系统将经过步骤I处理过的数据流送入音频编码器处理;步骤3,系统判断各路RTP包是否读取完毕,否,则将将剩余的RTP送入音频编码器处理,是,则结束合成。由上可见,本发明提供的一种基于RTP协议多路语音合成的方法,有以下优点。
(I)便于部署,降低成本本发明将多路RTP包合成语音操作过程,合理地分为分析,处理,合成三个步骤,降低开发的难度和成本。(2)各个模块简洁,高效模块内高内聚,模块间低耦合,可以采用多线程和流水线等技术,加快语音合成。(3)提供稳定清晰的语音合成服务使用内建严谨的算法,可以使系统长时间可靠运行,又有较高的容错性,即使语音的RTP包出现丢包,系统也能提供清晰的语音。通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明以 一种简单可靠的方式处理各路语音RTP包,消除VOIP中常见的语音抖动和不同步问题,通过又借助流水线的理念将处理过程分段,可以显著提高软件的运行效率。以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种基于RTP协议多路语音合成的方法,其特征在于,此方法根据网络监控工具所抓取的RTP文件进行静态处理,经过分析、处理、合成三个步骤生成各种格式的语音文件。
2.根据权利要求I所述的方法,其特征在于,还包括在“分析”步骤中,根据序号,时间戳,同步源标识(SSRC)以及RTP包到达网络接口卡时间对每路RTP包进行分析,从序列号和RTP包到达网络接口卡时间统计丢包率,及RTP包发送率,根据时间戳统计语音的采样周期以及静音期,再统计各路RTP包个数差值。
3.根据权利要求I所述的方法,其特征在于,还包括在“处理”步骤中,根据权利要求2所述的统计结果对各路RTP包进行不同的修补插包。
4.根据权利要求I所述的方法,其特征在于,还包括在“合成”步骤中,提取权利要求3所述各路修补好的RTP包的载荷数据进行叠加取均值合成各种格式的音频文件。
全文摘要
本发明公开了一种基于RTP协议多路语音合成的方法,可用于当代呼叫系统语音监控。此方法首先,分析各路语音RTP包中的序号,时间戳,同步源标识(SSRC),统计相关的丢包率,音频采样周期等,再综合分析每路之间的差异;其次,根据上述统计结果,对每路语音的RTP包进行填充修补;最后,提取各路修补好的语音RTP包的载荷数据进行叠加取均值合成各种格式的音频文件。解决了语音抖动和不同步问题。
文档编号G10L13/02GK102916938SQ20121033729
公开日2013年2月6日 申请日期2012年9月8日 优先权日2012年9月8日
发明者梁平, 李剑, 汤湛成 申请人:佳都新太科技股份有限公司