CN102761468A - 一种自适应调整语音抖动缓存区的方法及系统 - Google Patents

一种自适应调整语音抖动缓存区的方法及系统 Download PDF

Info

Publication number
CN102761468A
CN102761468A CN2011101050983A CN201110105098A CN102761468A CN 102761468 A CN102761468 A CN 102761468A CN 2011101050983 A CN2011101050983 A CN 2011101050983A CN 201110105098 A CN201110105098 A CN 201110105098A CN 102761468 A CN102761468 A CN 102761468A
Authority
CN
China
Prior art keywords
depth
degree
threshold values
adjustment
advance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011101050983A
Other languages
English (en)
Other versions
CN102761468B (zh
Inventor
陈军成
陈健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong Weishi Automation Technology Co.,Ltd.
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201110105098.3A priority Critical patent/CN102761468B/zh
Publication of CN102761468A publication Critical patent/CN102761468A/zh
Application granted granted Critical
Publication of CN102761468B publication Critical patent/CN102761468B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种自适应调整语音抖动缓存区的方法及系统,接收端将收到的数据包放入抖动缓存区,计算所述数据包在传输中的平均抖动,并根据所述平均抖动调整JB深度,得到提前检测JB深度,将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,并根据比较结果,对所述提前检测JB深度所对应的抖动缓存区中的数据进行相应的播放处理。本发明通过平均抖动得到提前检测JB深度,再将提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,重新确定JB深度,解决了静态JB因固定缓存深度而无法根据网络状态变化调整导致丢包率上升、语音质量下降的问题,同时也解决了动态JB无法动态平滑调整的问题。

Description

一种自适应调整语音抖动缓存区的方法及系统
技术领域
本发明涉及网络通信技术领域,尤其涉及一种自适应调整语音抖动缓存区的方法及系统。
背景技术
随着IP电话的广泛应用,IP电话的语音质量越来越受到人们关注,成为制约其广泛应用的一个瓶颈,尤其是语音抖动现象的存在。影响语音质量的因素主要有语音压缩编码技术、延迟、分组丢失及抖动。其中,延迟及抖动是由于语音传输采用无连接的数据报文传送方式,这可能导致语音包到达的顺序颠倒及到达时间间隔的变化。
目前,解决这种网络延时及抖动的方法是在接收终端装置上增加一个抗抖动的机制,即抖动缓冲区JitterBuffer,简称JB。JB将接收到的语音数据包按照时间进行缓存,然后顺序的按固定时间间隔进行播放,从而消除IP网络产生的抖动问题。JB机制有两个重要技术概念,即JB深度和JB长度。JB深度为第一个包到达JB的时间与其被播放的时间间隔,所以它用来描述抖动缓存的初始时延。JB长度为JB存放语音包的物理长度,它反映的是JB能容纳未处理的语音包能力。
JB主要分为静态JB和自适应JB。
静态JB机制的缺点是,由于第一个语音数据包的到达时间确定了JB深度,而其到达时间是随机的,它的早到或晚到会影响静态JB的效果。如第CN200810302185.6号中国专利“抖动缓冲器及抖动缓冲方法”解决抖动的方法是根据JB深度、语音包到达时间戳及当前播放时间,确定到达的语音数据存储位置及播放时间,但当网络抖动大于其静态JB深度时,实时传输的语音质量会受到很大影响,适用性不是很强。
自适应JB机制是JB的深度随着网络抖动、延时的变化而不断动态调整。但目前,自适应JB都存在或多或少的缺陷,如第CN200810062029.7号中国专利“VoIP抖动缓存区的动态处理方法”,其通过计算平均抖动值并与最大阀值、最小阀值比较确定JB深度的调整,但其不足是动态调整不够平滑。
发明内容
本发明的目的在于提供一种自适应调整语音抖动缓存区的方法及系统,解决了静态JB因固定缓存深度而无法根据网络状态变化调整导致丢包率上升、语音质量下降的问题,同时也解决了动态JB无法动态平滑调整的问题。
根据本发明的一个方面,提供了一种自适应调整语音抖动缓存区的方法,包括以下步骤:
A、将收到的数据包放入抖动缓存区;
B、计算所述数据包在传输中的平均抖动,并根据所述平均抖动调整JB深度,得到提前检测JB深度;
C、将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,并根据比较结果,对所述提前检测JB深度所对应的抖动缓存区中的数据进行相应的播放处理。
优选的,所述步骤B包括:
B1、根据当前数据包的时间戳及本地到达时间计算时延和抖动,由此得到平均抖动;
B2、利用平均抖动算出当前数据包的当前播放时间,得到当前数据包的当前播放时间与旧播放时间的播放时间差值;
B3、当所述平均抖动大于等于JB深度最大阀值时,丢弃当前语音数据;
B4、当所述平均抖动小于等于JB深度最小阀值时,将JB深度最小阀值作为所述提前检测JB深度。
B5、当所述平均抖动介于JB深度最大阀值和JB深度最小阀值之间时,用所述播放时间差值调整JB深度,得到所述提前检测JB深度。
优选的,所述步骤B5包括:
B51、若所述平均抖动在JB深度最小阀值和JB深度最大阀值之间,则比较当前调整时间间隔和调整阀值;
B52、若当前调整时间间隔大于调整阀值,则根据所述播放时间差值调整JB深度,得到所述提前检测JB深度,否则在到达调整阀值点时,根据所述播放时间差值调整JB深度,得到所述提前检测JB深度。
优选的,所述步骤C包括:
C1、将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较;
C2、若所述提前检测JB深度小于JB深度最大阀值,则增大抖动缓冲区的深度,否则减小抖动缓冲区的深度。
优选的,所述步骤C2包括:
若所述提前检测JB深度小于JB深度最小阀值或者所述提前检测JB深度在JB深度最小阀值和JB深度最大阀值之间,则增大抖动缓冲区的深度,并采用丢包掩蔽算法处理;
若所述提前检测JB深度大于最大阀值,则减小抖动缓冲区的深度,并丢弃一个最近未播放的抖动缓冲区中的语音包。
其中,所述当前调整时间间隔是指平均抖动引起的JB深度调整的时间间隔,所述调整阀值是指预先设置的调整JB深度的时间间隔。
根据本发明的另一方面,提供了一种自适应调整语音抖动缓存区的系统,该系统包括:
接收包顺序处理模块,用于将收到的数据包放入抖动缓存区;
提前检测模块,用于计算所述数据包在传输中的平均抖动,并根据所述平均抖动调整JB深度,得到提前检测JB深度;
连续声音控制算法处理模块,用于将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,并根据比较结果,再次调整JB深度,得到连续声音控制JB深度。
缓冲播放处理模块,用于根据所述连续声音控制JB深度对所述抖动缓存区中的数据进行相应的播放处理。
优选的,提前检测模块包括:
计算单元,用于根据当前数据包的时间戳及本地到达时间计算时延和抖动,由此得到平均抖动,并利用平均抖动算出当前数据包的当前播放时间,得到当前数据包的当前播放时间与旧播放时间的播放时间差值;
调整单元,用于当所述平均抖动大于等于JB深度最大阀值时,丢弃当前语音数据,当所述平均抖动小于等于JB深度最小阀值时,将JB深度最小阀值作为所述提前检测JB深度,当所述平均抖动介于JB深度最大阀值和JB深度最小阀值之间时,用所述播放时间差值调整JB深度,得到所述提前检测JB深度。
优选的,调整单元还包括:
确定调整时刻单元,用于比较当前调整时间间隔和调整阀值,若当前调整时间间隔大于调整阀值,则根据所述播放时间差值开始调整JB深度,否则在到达调整阀值点时,根据所述播放时间差值开始调整JB深度。
其中,所述当前调整时间间隔是指平均抖动引起的JB深度调整的时间间隔,所述调整阀值是指预先设置的调整JB深度的时间间隔。
与现有技术相比较,本发明的有益效果在于:通过平均抖动得到提前检测JB深度,再将提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,重新确定JB深度,解决了静态JB因固定缓存深度而无法根据网络状态变化调整导致丢包率上升、语音质量下降的问题,同时也解决动态JB无法动态平滑调整的问题。
附图说明
图1是本发明实施例提供的自适应调整语音JB的流程图;
图2是本发明实施例提供的接收包顺序处理模块的实现流程图;
图3是本发明实施例提供的提前检测模块的实现流程图;
图4是本发明实施例提供的连续声音控制算法处理模块的实现流程图;
图5是本发明实施例提供的自适应调整语音JB系统的结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是本发明实施例提供的自适应调整语音JB的流程图,如图1所示,接收端具体包括以下步骤:
步骤S101,判断接收到的语音包是静音包还是语音包。
判断接收到的语音包是静音包还是语音包,如果是语音包,则执行步骤S102,否则执行步骤S105。
步骤S102,接收包顺序处理模块接收语音包并进行入队处理。
接收包顺序处理模块根据接收包的时间戳及JB的最新记录时间戳计算在JB中填放此接收包的位置,同时把接收包拆分成若干个与JB深度基本单位相同的数据包并将其按时间戳及JB的最新记录时间戳查找到的JB位置存放到JB中,并更新JB最新记录时间戳。其中,接收包是接收端从网络侧接收到的语音数据包。
步骤S103,提前检测模块计算平均抖动,并根据调整阀值确定调整时刻,在确定的调整时刻根据平均抖动调整JB的深度。
1)计算接收包的时延及抖动;
2)根据各个接收包的时延及抖动计算平均时延及平均抖动;
3)将平均抖动和JB深度最大阀值、JB深度最小阀值进行比较。如果平均抖动在JB深度最大最小阀值之间,则判断当前调整时间间隔是否小于调整阀值。
4)如果当前调整时间间隔大于调整阀值,则根据当前正在处理的接收包的旧播放时间和新播放时间的差值调整JB深度;如果当前调整时间间隔小于调整阀值,则设置定时器,直到调整阀值点时,再进行JB深度调整。调整后的JB深度为提前检测JB深度。
步骤S104,连续声音控制算法处理模块根据JB深度最小阀值、JB深度最大阀值调整提前检测JB深度。
连续声音控制算法处理模块根据提前检测JB深度及对应缓存有无数据来做相应的处理。连续声音控制算法处理模块判断对应播放区有无数据,如果有数据,则处理正常接收的分组数据;如果没有数据,则将提前检测JB深度与JB深度最小阀值、JB深度最大阀值进行比较,如果提前检测JB深度小于JB深度最小阀值时,则增大JB的深度,同时补偿丢失的语音数据,其中,补偿数据使用最近使用过的语音数据作为备播放处理;如果提前检测JB深度大于JB深度最大阀值时,则加快语音数据播放速度,丢弃一个最近未播放的缓冲区中的数据,同时减小JB的深度;如果提前检测JB深度在JB深度最大阀值及最小阀值之间,则采用丢包掩蔽算法补偿丢失的语音数据,同时增大提前检测JB深度。提前检测JB深度经连续声音控制算法处理模块的再次调整后成为连续声音控制JB深度。
这里,提前检测JB深度在JB深度最大阀值和最小阀值之间时,或者提前检测JB深度小于JB深度最小阀值时,都采用丢包掩蔽算法补充丢失的语音数据,实现语音的平滑播放,在网络状况不好的情况下,可提高语音质量。丢包掩蔽算法的原理是使用最近的一个语音报文填充丢失的语音数据,实现语音数据的连贯性。
步骤S105,静音控制模块处理静音包。
静音控制模块把网路侧过来的静音数据包拷贝一份到特定缓冲区中,记录时间戳并计算抖动及时延,得到静音数据的播放时间,并根据时间戳确定其播放时长。
步骤S106,对数据进行解码和播放。
缓冲播放处理模块得到连续声音控制算法模块或静音控制模块处理的数据后,对相应数据进行解码及播放处理。
图2是本发明实施例提供的接收包顺序处理模块的实现流程图,如图2所示,具体包括以下步骤:
步骤S201,判断接收包与前一个接收包是否是同一源。
当有新语音接收包到达时,读取该语音包实时传送协议RTP首部的同步源SSRC字段,判断此字段与前一接收包的SSRC是否一致。如果不一致,则执行步骤S202,如果一致,则执行步骤S203。
步骤S202,将新语音接收包作为新媒体处理。
将此接收包作为新媒体处理,清空JB中的数据,更新JB的深度为JB的初始设置值,记录新SSRC到JB中。计算接收包的延时、抖动及新播放时间,其中新播放时间为JB的初始设置值加上此时播放语音包的播放时间。查找接收包对应的合适的缓冲区位置,执行步骤S206。
步骤S203,比较时间戳的差值和基本采样点。
判断接收包的时间戳和JB中最新时间戳的差值是否为基本采样点的整数倍,比如可以基于5毫秒或10毫秒为采样,5毫秒的基本采样点是40,10毫秒的基本采样点是80。如果是整数倍则执行步骤S204,否则执行步骤S202。
步骤S204,判断时间戳的差值是否在参考范围内。
判断接收包的时间戳和JB中最新时间戳的差值是否在可知的抖动范围,比如,参考值设置为64000,即8秒的抖动范围,一般抖动或跳变不会大于8秒钟。如果在此范围,则执行步骤S205,否则执行步骤S202。
步骤S205,作为正常媒体处理并查找合适的缓冲区位置。
将该接收包作为正常的连续媒体处理,根据时间戳的差值是基本采样点的倍数值查找合适的缓冲区位置,记录RTP首部的时间戳及本地到达时间,同时更新最新记录时间戳。
步骤S206,拆包处理并将拆包后得到的数据包存储在JB的对应位置。
根据载荷大小及载荷类型,进行拆包处理。比如,载荷大小为160字节且为G711,那么就拆成两个80字节的数据进行存储,这里的基本采样点数是基于10毫秒、基本采样点80进行的。将拆分后的数据包根据步骤S205或者步骤S202查找到的缓冲区位置依次存储。
图3是本发明实施例提供的提前检测模块的实现流程图,如图3所示,具体包括以下步骤:
步骤S301,计算平均抖动。
根据当前语音数据接收包的RTP首部时间戳及本地到达时间计算时延及抖动。时延D(j,i)及抖动J(j,i)分别为D(j,i)=(Rj-Ri),J(j,i)=(Rj-Ri)-(Sj-Si),其中Si是第i个接收包的时间戳,Ri第i个接收包的到达时间,Sj是第i个接收包的前一个接收包的时间戳,Rj是第i个接收包的前一个接收包的到达时间。
根据前i个接收包的抖动计算平均抖动。累计前i个包的抖动,并求平均值得到前i个包的平均抖动。
步骤S302,判断平均抖动是否在JB深度最大、最小阀值之间。
设置JB深度最大阀值为200毫秒,JB深度最小阀值为20毫秒。
判断步骤S301计算得到的平均抖动是否在JB深度最大阀值及JB深度最小阀值之间。如果平均抖动大于等于JB深度最大阀值,则执行步骤S303;如果平均抖动小于等于JB深度最小阀值,则执行步骤S304;如果平均抖动介于JB深度最小阀值和JB深度最大阀值之间,则执行步骤S305。
步骤S303,丢弃此语音接收包。
丢弃此语音接收包,并更新JB的最大延时抖动记录。
步骤S304,更新此语音接收包的最新播放时间。
将此语音接收包的最新播放时间更新为JB深度最小阀值与当前正在播放的语音包的播放时间之和。
步骤S305,判断当前调整时间间隔是否到达调整阀值。
当前调整时间间隔,是指平均抖动引起的JB深度调整的时间间隔。
调整阀值是指预先设置的调整JB深度的时间间隔。当网络抖动较大但在JB深度范围内的情况下,调整JB深度太过频繁会导致JB调整不够平滑,影响语音的连贯性,因此设置了调整阀值,当平均抖动引起的JB深度调整的时间间隔小于调整阀值时,则不再进行JB深度调整。其中,调整阀值根据网络情况设置,本实施例中选择200毫秒至300毫秒之间的某一值。
如果当前调整时间间隔大于调整阀值,则执行步骤S306,否则执行步骤S307。
步骤S306,计算当前接收包的新播放时间,更新JB深度。
1)确定当前语音接收包的旧播放时间和新播放时间。根据当前正在处理的语音接收包的播放时间和JB深度确定当前语音接收包的旧播放时间,即Po=当前正在处理的语音接收包的播放时间+JB深度。根据当前语音接收包的旧播放时间和平均抖动确定当前语音接收包的新播放时间,即Pn=Po+平均抖动。
2)根据当前语音包的新播放时间和旧播放时间之间的差值调整JB的深度。
步骤S307,设置定时器,等待定时器到达设置的时间点再调整JB深度。
设置定时器,比如当前调整时间间隔是180ms,设置的调整阀值是200毫秒,则设置定时器的定时时间为20毫秒,即定时时间=调整阀值-本次调整时间间隔。
到达定时时间后,调整JB深度。定时器到达设置的定时时间后,根据当前正在处理的语音包的播放时间和JB深度确定当前语音包的旧播放时间,即Po=当前正在处理的语音包的播放时间+JB深度。根据当前语音包的旧播放时间和平均抖动确定当前语音包的新播放时间,即Pn=Po+平均抖动。再根据当前语音包的新播放时间和旧播放时间之间的差值调整JB的深度。
图4是本发明实施例提供的连续声音控制算法处理模块的实现流程图,如图4所示,具体包括以下步骤:
步骤S401,判断JB中有无对应的语音数据。
根据播放时间读取JB中对应的数据,如果JB中有对应的数据,则执行步骤S402,否则执行步骤S403.
步骤S402,进行播放处理。
根据载荷类型进行播放处理。如果是静音数据,需要缓存到特定数据区中备静音阶段使用。
步骤S403,判断是否处于静音阶段。
如果处于静音阶段,则执行步骤S404,否则执行步骤S405。
步骤S404,静音播放处理。
读取静音缓存数据,执行静音播放处理流程。
步骤S405,比较当前JB深度和最大阀值以及最小阀值。
设置JB深度最大阀值为200毫秒,最小阀值为20毫秒。
当前JB深度即提前检测JB深度。如果提前检测JB深度小于等于JB深度最小阀值20毫秒,则执行步骤S406;如果提前检测JB深度在JB深度最小阀值和最大阀值之间,则执行步骤S406;如果提前检测JB深度大于等于JB深度最大阀值,则执行步骤S407。
步骤S406,丢包掩蔽,增加JB深度。
连续声音控制算法处理模块判断提前检测JB深度小于JB深度最小阀值或者提前检测JB深度处于JB深度最小阀值及最大阀值之间时,采用丢包掩蔽算法处理,通过时间戳及最近播放时间来查找最近播放的语音数据,把它当成最新播放时间处理的数据,同时增加JB深度。
步骤S407,丢弃数据,减小JB深度。
如果提前检测JB深度大于JB深度最大阀值时,要加快语音数据播放速度,丢弃一个最近未播放缓冲区数据,同时减小JB的深度。
连续声音控制算法处理模块调整后的JB深度为连续声音控制JB深度。
图5是自适应调整语音JB系统的结构示意图,如图5所示,该系统包括接收包顺序处理模块1,提前检测模块2,静音控制处理模块3,连续声音控制算法处理模块4、缓冲播放处理模块5。其中提前检测模块2包括计算单元和调整单元,调整单元还包括确定调整时刻单元。
接收包顺序处理模块1根据接收包的时间戳及JB的最新记录时间戳计算在JB中填放此接收包的位置,同时把接收包拆分成若干个与JB深度基本单位相同的数据包并将其按时间戳及JB的最新记录时间戳查找到的JB位置存放到JB中,并更新JB最新记录时间戳。其中,接收包是接收端从网络侧接收到的语音数据包。
提前检测模块2计算平均抖动,并根据调整阀值确定调整时刻,在确定的调整时刻根据平均抖动调整JB的深度。计算单元计算接收包的时延及抖动,根据各个接收包的时延及抖动计算平均时延及平均抖动。调整单元将平均抖动和JB深度最大阀值、最小阀值进行比较,如果平均抖动在最大最小阀值之间,则确定调整时刻单元判断当前调整JB深度的时间间隔是否小于调整阀值。如果当前调整时间间隔大于调整阀值,则根据当前正在处理的接收包的旧播放时间和新播放时间的差值调整JB深度;如果本次调整的时间间隔小于调整阀值,则设置定时器,直到当前调整时间间隔等于调整阀值时,再进行JB深度调整。提前检测模块2调整后的JB深度称为提前检测JB深度。
连续声音控制算法处理模块4根据JB深度最小阀值、最大阀值调整提前检测JB深度。连续声音控制算法处理模块4根据提前检测JB深度及对应缓存有无数据来做相应的处理。连续声音控制算法处理模块4判断对应播放区有无数据,如果有数据,则处理正常接收的分组数据;如果没有数据,则将提前检测JB深度与JB深度最小阀值、最大阀值进行比较,如果提前检测JB深度小于JB深度最小阀值,或者提前检测JB深度在最大阀值及最小阀值之间,则采用丢包掩蔽算法补偿丢失的语音数据,同时增大JB深度。其中,补偿数据使用最近使用过的语音数据作为备播放处理。如果提前检测JB深度大于最大阀值时,则加快语音数据播放速度,丢弃一个最近未播放的缓冲区中的数据,同时减小JB的深度。连续声音控制算法处理模块4调整后的JB深度称为连续声音控制JB深度。
静音控制模块3处理静音包。静音控制模块3把网路侧过来的静音数据包拷贝一份到特定缓冲区中,记录时间戳并计算抖动及时延,得到静音数据的播放时间,并根据时间戳确定其播放时长。
缓冲播放处理模块5对数据进行解码和播放。得到连续声音控制算法模块4或静音控制模块5处理的数据后,对相应数据进行解码及播放处理。
综上所述,本发明通过平均抖动得到提前检测JB深度,再将提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,重新确定JB深度,解决了静态JB因固定缓存深度而无法根据网络状态变化调整导致丢包率上升、语音质量下降的问题,同时也解决动态JB无法动态平滑调整的问题。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

Claims (10)

1.一种自适应调整语音抖动缓冲区的方法,其特征在于,在接收端包括以下步骤:
A、将收到的数据包放入抖动缓存区;
B、计算所述数据包在传输中的平均抖动,并根据所述平均抖动调整JB深度,得到提前检测JB深度;
C、将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,并根据比较结果,对所述提前检测JB深度所对应的抖动缓存区中的数据进行相应的播放处理。
2.根据权利要求1所述的方法,其特征在于所述步骤B包括:
B1、根据当前数据包的时间戳及本地到达时间计算时延和抖动,由此得到平均抖动;
B2、利用平均抖动算出当前数据包的当前播放时间,得到当前数据包的当前播放时间与旧播放时间的播放时间差值;
B3、当所述平均抖动大于等于JB深度最大阀值时,丢弃当前语音数据;
B4、当所述平均抖动小于等于JB深度最小阀值时,将JB深度最小阀值作为所述提前检测JB深度。
B5、当所述平均抖动介于JB深度最大阀值和JB深度最小阀值之间时,用所述播放时间差值调整JB深度,得到所述提前检测JB深度。
3.根据权利要求2所述的方法,其特征在于,所述步骤B5包括:
B51、若所述平均抖动在JB深度最小阀值和JB深度最大阀值之间,则比较当前调整时间间隔和调整阀值;
B52、若当前调整时间间隔大于调整阀值,则根据所述播放时间差值调整JB深度,得到所述提前检测JB深度,否则在到达调整阀值点时,根据所述播放时间差值调整JB深度,得到所述提前检测JB深度。
4.根据权利要求1所述的方法,其特征在于,所述步骤C包括:
C1、将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较;
C2、若所述提前检测JB深度小于JB深度最大阀值,则增大抖动缓冲区的深度,否则减小抖动缓冲区的深度。
5.根据权利要求4所述的方法,其特征在于所述步骤C2包括:
若所述提前检测JB深度小于JB深度最小阀值或者所述提前检测JB深度在JB深度最小阀值和JB深度最大阀值之间,则增大抖动缓冲区的深度,并采用丢包掩蔽算法处理;
若所述提前检测JB深度大于最大阀值,则减小抖动缓冲区的深度,并丢弃一个最近未播放的抖动缓冲区中的语音包。
6.根据权利要求3所述的方法,其特征在于所述当前调整时间间隔是指平均抖动引起的JB深度调整的时间间隔,所述调整阀值是指预先设置的调整JB深度的时间间隔。
7.一种自适应调整语音抖动缓冲区的系统,其特征在于,所述系统包括:
接收包顺序处理模块,用于将收到的数据包放入抖动缓存区;
提前检测模块,用于计算所述数据包在传输中的平均抖动,并根据所述平均抖动调整JB深度,得到提前检测JB深度;
连续声音控制算法处理模块,用于将所述提前检测JB深度与JB深度最小阀值和JB深度最大阀值进行比较,并根据比较结果,再次调整JB深度,得到连续声音控制JB深度。
缓冲播放处理模块,用于根据所述连续声音控制JB深度对所述抖动缓存区中的数据进行相应的播放处理。
8.根据权利要求7所述的系统,其特征在于,提前检测模块包括:
计算单元,用于根据当前数据包的时间戳及本地到达时间计算时延和抖动,由此得到平均抖动,并利用平均抖动算出当前数据包的当前播放时间,得到当前数据包的当前播放时间与旧播放时间的播放时间差值;
调整单元,用于当所述平均抖动大于等于JB深度最大阀值时,丢弃当前语音数据,当所述平均抖动小于等于JB深度最小阀值时,将JB深度最小阀值作为所述提前检测JB深度,当所述平均抖动介于JB深度最大阀值和JB深度最小阀值之间时,用所述播放时间差值调整JB深度,得到所述提前检测JB深度。
9.根据权利要求8所述的系统,其特征在于,调整单元还包括:
确定调整时刻单元,用于比较当前调整时间间隔和调整阀值,若当前调整时间间隔大于调整阀值,则根据所述播放时间差值开始调整JB深度,否则在到达调整阀值点时,根据所述播放时间差值开始调整JB深度。
10.根据权利要求9所述的系统,其特征在于,所述当前调整时间间隔是指平均抖动引起的JB深度调整的时间间隔,所述调整阀值是指预先设置的调整JB深度的时间间隔。
CN201110105098.3A 2011-04-26 2011-04-26 一种自适应调整语音抖动缓存区的方法及系统 Expired - Fee Related CN102761468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110105098.3A CN102761468B (zh) 2011-04-26 2011-04-26 一种自适应调整语音抖动缓存区的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110105098.3A CN102761468B (zh) 2011-04-26 2011-04-26 一种自适应调整语音抖动缓存区的方法及系统

Publications (2)

Publication Number Publication Date
CN102761468A true CN102761468A (zh) 2012-10-31
CN102761468B CN102761468B (zh) 2015-04-08

Family

ID=47055794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110105098.3A Expired - Fee Related CN102761468B (zh) 2011-04-26 2011-04-26 一种自适应调整语音抖动缓存区的方法及系统

Country Status (1)

Country Link
CN (1) CN102761468B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259803A (zh) * 2013-06-04 2013-08-21 腾讯科技(深圳)有限公司 一种音频回放方法、装置和系统
CN103347004A (zh) * 2013-06-19 2013-10-09 深圳市共进电子股份有限公司 一种提高vbd数据传输质量的方法
CN103873382A (zh) * 2012-12-17 2014-06-18 马维尔国际有限公司 数据帧缓冲方法和设备
CN103905444A (zh) * 2014-03-31 2014-07-02 深圳市邦彦信息技术有限公司 一种综合业务通信指挥系统
CN104518919A (zh) * 2013-09-26 2015-04-15 成都鼎桥通信技术有限公司 一种集群业务时延的测量方法
US9313250B2 (en) 2013-06-04 2016-04-12 Tencent Technology (Shenzhen) Company Limited Audio playback method, apparatus and system
CN105554019A (zh) * 2016-01-08 2016-05-04 全时云商务服务股份有限公司 一种音频去抖动系统和方法
CN106603518A (zh) * 2016-12-05 2017-04-26 深圳市泛海三江科技发展有限公司 一种实时传输协议系统的时间戳生成方法及装置
CN107534589A (zh) * 2015-04-14 2018-01-02 高通股份有限公司 去抖动缓冲器更新
CN107770124A (zh) * 2016-08-15 2018-03-06 北京信威通信技术股份有限公司 一种ip语音缓冲区的动态控制方法及装置
CN109104263A (zh) * 2017-06-20 2018-12-28 阿里巴巴集团控股有限公司 存储容量的调整方法、装置和系统
WO2020108540A1 (zh) * 2018-11-27 2020-06-04 华为技术有限公司 一种数据传输方法及装置
CN111491016A (zh) * 2020-04-02 2020-08-04 北京代码乾坤科技有限公司 同步数据处理方法和装置
CN113037853A (zh) * 2021-03-22 2021-06-25 北京字节跳动网络技术有限公司 数据处理方法、装置、设备及存储介质
CN113178202A (zh) * 2021-04-30 2021-07-27 海能达通信股份有限公司 音频数据的处理方法、装置、设备及可读存储介质
CN113241086A (zh) * 2021-05-14 2021-08-10 北京达佳互联信息技术有限公司 音频处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627747A (zh) * 2003-12-09 2005-06-15 华为技术有限公司 语音传输过程中实现动态调整抖动缓存的方法
CN1747465A (zh) * 2004-09-09 2006-03-15 华为技术有限公司 一种实现语音业务的方法
CN101582832A (zh) * 2008-05-17 2009-11-18 红杉树(杭州)信息技术有限公司 VoIP抖动缓冲区的动态处理方法
CN101924683A (zh) * 2009-06-09 2010-12-22 华为技术有限公司 一种动态调整抖动缓存的方法、装置和电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627747A (zh) * 2003-12-09 2005-06-15 华为技术有限公司 语音传输过程中实现动态调整抖动缓存的方法
CN1747465A (zh) * 2004-09-09 2006-03-15 华为技术有限公司 一种实现语音业务的方法
CN101582832A (zh) * 2008-05-17 2009-11-18 红杉树(杭州)信息技术有限公司 VoIP抖动缓冲区的动态处理方法
CN101924683A (zh) * 2009-06-09 2010-12-22 华为技术有限公司 一种动态调整抖动缓存的方法、装置和电子设备

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103873382A (zh) * 2012-12-17 2014-06-18 马维尔国际有限公司 数据帧缓冲方法和设备
US9313250B2 (en) 2013-06-04 2016-04-12 Tencent Technology (Shenzhen) Company Limited Audio playback method, apparatus and system
CN103259803A (zh) * 2013-06-04 2013-08-21 腾讯科技(深圳)有限公司 一种音频回放方法、装置和系统
CN103259803B (zh) * 2013-06-04 2016-01-27 腾讯科技(深圳)有限公司 一种音频回放方法、装置和系统
CN103347004A (zh) * 2013-06-19 2013-10-09 深圳市共进电子股份有限公司 一种提高vbd数据传输质量的方法
CN103347004B (zh) * 2013-06-19 2016-08-17 深圳市共进电子股份有限公司 一种提高vbd数据传输质量的方法
CN104518919B (zh) * 2013-09-26 2018-06-15 成都鼎桥通信技术有限公司 一种集群业务时延的测量方法
CN104518919A (zh) * 2013-09-26 2015-04-15 成都鼎桥通信技术有限公司 一种集群业务时延的测量方法
CN103905444A (zh) * 2014-03-31 2014-07-02 深圳市邦彦信息技术有限公司 一种综合业务通信指挥系统
CN107534589B (zh) * 2015-04-14 2021-02-05 高通股份有限公司 去抖动缓冲器更新
CN107534589A (zh) * 2015-04-14 2018-01-02 高通股份有限公司 去抖动缓冲器更新
CN105554019B (zh) * 2016-01-08 2018-07-24 全时云商务服务股份有限公司 一种音频去抖动系统和方法
CN105554019A (zh) * 2016-01-08 2016-05-04 全时云商务服务股份有限公司 一种音频去抖动系统和方法
CN107770124A (zh) * 2016-08-15 2018-03-06 北京信威通信技术股份有限公司 一种ip语音缓冲区的动态控制方法及装置
CN106603518A (zh) * 2016-12-05 2017-04-26 深圳市泛海三江科技发展有限公司 一种实时传输协议系统的时间戳生成方法及装置
CN109104263A (zh) * 2017-06-20 2018-12-28 阿里巴巴集团控股有限公司 存储容量的调整方法、装置和系统
WO2020108540A1 (zh) * 2018-11-27 2020-06-04 华为技术有限公司 一种数据传输方法及装置
CN111491016A (zh) * 2020-04-02 2020-08-04 北京代码乾坤科技有限公司 同步数据处理方法和装置
CN111491016B (zh) * 2020-04-02 2023-08-25 北京代码乾坤科技有限公司 同步数据处理方法和装置
CN113037853A (zh) * 2021-03-22 2021-06-25 北京字节跳动网络技术有限公司 数据处理方法、装置、设备及存储介质
CN113037853B (zh) * 2021-03-22 2023-01-06 北京字节跳动网络技术有限公司 数据处理方法、装置、设备及存储介质
CN113178202A (zh) * 2021-04-30 2021-07-27 海能达通信股份有限公司 音频数据的处理方法、装置、设备及可读存储介质
CN113241086A (zh) * 2021-05-14 2021-08-10 北京达佳互联信息技术有限公司 音频处理方法、装置、电子设备及存储介质
CN113241086B (zh) * 2021-05-14 2023-05-30 北京达佳互联信息技术有限公司 音频处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN102761468B (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN102761468A (zh) 一种自适应调整语音抖动缓存区的方法及系统
US7251246B2 (en) Selective packet processing in a packet based media processor for latency reduction
US7079486B2 (en) Adaptive threshold based jitter buffer management for packetized data
US8279884B1 (en) Integrated adaptive jitter buffer
FI108692B (fi) Menetelmä ja laite datapakettien prosessoinnin ajoittamiseksi
US6658027B1 (en) Jitter buffer management
US7453897B2 (en) Network media playout
AU2008330261B2 (en) Play-out delay estimation
KR100902456B1 (ko) 단 대 단 VoIP 매체 지연을 관리하는 방법 및 장치
US7269141B2 (en) Duplex aware adaptive playout method and communications device
CN101682562B (zh) 用于修改句子内的话音突峰的回放时序而不影响可懂度的方法和设备
US20060187970A1 (en) Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
US20050207342A1 (en) Communication terminal device, communication terminal receiving method, communication system and gateway
JP4744444B2 (ja) ストリームデータ受信再生装置、通信システムおよびストリームデータ受信再生方法
US20050094622A1 (en) Method and apparatus providing smooth adaptive management of packets containing time-ordered content at a receiving terminal
CN101175104B (zh) 一种抖动缓存装置和抖动缓存管理方法
CN107534589A (zh) 去抖动缓冲器更新
CN100596195C (zh) 一种控制流媒体播放的方法及装置
US20040258047A1 (en) Clock difference compensation for a network
US10382155B2 (en) Data processing
WO2009054674A2 (en) Apparatus and method for playout scheduling in voice over internet protocol (voip) system
Kansal et al. IP telephony and delay jitter control—An overview
KR20090108958A (ko) 프로그레시브 멀티미디어 스트리밍 서비스를 위한 초기버퍼링 시간 결정 방법 및 시스템
WO2007147034B1 (en) Content-based adaptive jitter handling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201118

Address after: 226000 Room 504, Six Blocks, Tian'an Digital City, 99 Shennan Road, Gangzhao District, Nantong City, Jiangsu Province

Patentee after: Nantong Weishi Automation Technology Co.,Ltd.

Address before: A806, Zhongdi building, industry university research base, China University of Geosciences, No.8, Yuexing Third Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee before: Shenzhen Weishi Expo Intellectual Property Agency (General Partnership)

Effective date of registration: 20201118

Address after: A806, Zhongdi building, industry university research base, China University of Geosciences, No.8, Yuexing Third Road, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Weishi Expo Intellectual Property Agency (General Partnership)

Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice

Patentee before: ZTE Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150408

Termination date: 20210426