CN105991477A - 一种语音抖动缓冲区的调整方法及装置 - Google Patents

一种语音抖动缓冲区的调整方法及装置 Download PDF

Info

Publication number
CN105991477A
CN105991477A CN201510071060.7A CN201510071060A CN105991477A CN 105991477 A CN105991477 A CN 105991477A CN 201510071060 A CN201510071060 A CN 201510071060A CN 105991477 A CN105991477 A CN 105991477A
Authority
CN
China
Prior art keywords
voice
delay
voice data
jitter
buffer
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
CN201510071060.7A
Other languages
English (en)
Other versions
CN105991477B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510071060.7A priority Critical patent/CN105991477B/zh
Publication of CN105991477A publication Critical patent/CN105991477A/zh
Application granted granted Critical
Publication of CN105991477B publication Critical patent/CN105991477B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公开了一种语音抖动缓冲区的调整方法及装置,其中该方法包括:获取待播放的语音数据的网络抖动延时和缓冲延时;对语音数据进行卡顿检测,确定语音无参考分数;根据缓冲延时和语音无参考分数,对当前网络抖动延时进行修正,得到目标缓冲延时;结合目标缓冲延时、当前缓冲延时以及语音无参考分数,按照预设策略对语音数据所属的抖动缓冲区的大小进行调整。本发明实施例在确保语音质量的情况下,可以适当的减少网络抖动延时,可以让互联网语音通话快速适应网络变化,提升用户在移动互联网中使用语音通话的质量。

Description

一种语音抖动缓冲区的调整方法及装置
技术领域
本发明属于通信技术领域,尤其涉及一种语音抖动缓冲区的调整方法及装置。
背景技术
随着互联网技术的不断发展,网络带宽也在不断的提升,实时语音技术在生活中被广泛的应用。基于互联网传输的语音业务,用户通过2G/3G/4G/WIFI等网络接入互联网成为主流,但由于这些接入的网络环境越来越复杂,网络中存在延时、抖动、丢包、乱序等对语音质量影响巨大,因此语音质量越来越受到人们关注。
为了提高语音质量,减少网络抖动的一般方法就是在接收端加入抖动缓冲区,即在解码和播放之前放入一个固定长度的缓冲区,该缓冲区用于缓存一定时间的语音数据包,通过增加一定的延时,消除网络抖动。这种算法实现简单,算法复杂度低。
在对现有技术的研究和实践过程中,本发明的发明人发现,由于接收端增加一个固定长度的抖动缓冲区,如果缓冲区设置比抖动小,那么将会导致数据的丢失从而导致语音失真,降低语音质量;如果缓冲区设置较大,相当于引入很大的通话延时,同样也影响用户的通话质量,甚至影响正常的实时通话。
发明内容
本发明的目的在于提供一种语音抖动缓冲区的调整方法及装置,旨在消除网络抖动,提高语音通话质量。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种语音抖动缓冲区的调整方法,其中包括:
获取待播放的语音数据的网络抖动延时和缓冲延时;
对所述语音数据进行卡顿检测,确定语音无参考分数;
根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时;
结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种语音抖动缓冲区的调整装置,其中包括:
获取模块,用于获取待播放的语音数据的网络抖动延时和缓冲延时;
检测模块,用于对所述语音数据进行卡顿检测,确定语音无参考分数;
修正模块,用于根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时;
调整模块,用于结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
相对于现有技术,本实施例,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,提升用户在移动互联网中使用语音通话的质量。
附图说明
下面结合附图,通过对本发明的具体实施方式详细描述,将使本发明的技术方案及其它有益效果显而易见。
图1是本发明第一实施例提供的语音抖动缓冲区的调整方法的流程示意图;
图2a为本发明第二实施例提供的语音抖动缓冲区的调整方法的流程示意图;
图2b为本发明第二实施例提供的卡顿检测结果示意图;
图3为本发明第三实施例提供的语音抖动缓冲区的调整方法的流程示意图;
图4为本发明第四实施例提供的语音抖动缓冲区的调整装置的结构示意图;
图5为本发明第五实施例提供的语音抖动缓冲区的调整装置的结构示意图;
图6为本发明第六实施例提供的服务器的结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的原理使用许多其它泛用性或特定目的运算、通信环境或组态来进行操作。所熟知的适合用于本发明的运算系统、环境与组态的范例可包括(但不限于)手持电话、个人计算机、服务器、多处理器系统、微电脑为主的系统、主架构型计算机、及分布式运算环境,其中包括了任何的上述系统或装置。
本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。
而且本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
第一实施例
请参阅图1,图1是本发明第一实施例提供的语音抖动缓冲区的调整方法的流程示意图。所述方法包括:
在步骤S101中,获取待播放的语音数据的网络抖动延时和缓冲延时。
其中,所述语音抖动缓冲区的调整方法可基于一接收终端服务器上运行,所述接收终端上设置有抖动缓冲区(即JitterBuffer),所述抖动缓冲区将接收到的语音数据包按照时间进行缓存,然后顺序的按固定时间间隔进行播放语音数据。
本发明实施例中,待播放的语音数据为网络上接收到的经过纠错处理且解码后的语音数据;根据待播放的语音数据的网络抖动延时和缓冲延时,检测到当前的网络状况,进而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
可以理解的是,所述网络抖动延时和所述缓冲延时可以分别根据预设时间段内的平均抖动和平均延时来生成,也可以根据语音数据包的到达间隔进行统计生成,此处对网络抖动延时和缓冲延时的生成方式不作具体限定。
在步骤S102中,对所述语音数据进行卡顿检测,确定语音无参考分数。
本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更加客观。
在步骤S103中,根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
可以理解的是,当网络抖动比较大的情况下,如果一味的增加抖动缓冲区的大小,会导致用户的语音延时会偏大,也会影响语音的体验。因此,该实施例中,根据当前的缓冲延时和语音无参考分数这两个参数对所述网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时。
在步骤S104中,结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
可以理解的是,所述预设策略可预先设置于服务器中,所述预设策略可以具体指示根据当前的网络状况,对语音数据执行的相应的调速操作,从而通过语音数据的调速操作实现对抖动缓冲区的大小的调整。
其中,本实施例中所述当前的网络状况可以通过步骤S103得到的目标缓冲延时,以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区随着网络抖动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
由上述可知,本实施例提供的语音抖动缓冲区的调整方法中,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
第二实施例
请参阅图2a,图2a为本发明第二实施例提供的语音抖动缓冲区的调整方法的流程示意图。其中,所述语音抖动缓冲区的调整方法基于一接收终端服务器上运行,所述接收终端上设置有抖动缓冲区,所述抖动缓冲区将接收到的语音数据包按照时间进行缓存,然后顺序的按固定时间间隔进行播放语音数据。
区别于第一实施例,本实施例主要针对网络抖动统计算法(即所述网络抖动延时的生成)、缓冲延时统计算法(即所述缓冲延时的生成)、语音无参考算法(即所述语音无参考分数的生成)以及网络延时修正算法(即对当前所述网络抖动延时进行修正,得到目标缓冲延时的过程)进行详细分析进行详细分析。所述方法包括:
在步骤S201中,接收网络语音数据包;
在步骤S202中,对所述网络语音数据包进行纠错处理,并将纠错处理且解码后的网络语音数据包的数据确定为待播放的语音数据。
所述步骤S201与步骤S202可具体为:
也就是说,在获取到网络抖动延时和缓冲延时之前,服务器在接收到网络语音数据包后,把经过前向纠错和后向纠错之后的语音包送给抖动缓冲处理模块,将该语音包进行解码,其后根据语音包的到达间隔统计网络抖动延时和缓冲延时,以体现当前的网络状况,进而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
步骤S203、获取待播放的语音数据的网络抖动延时和缓冲延时。
进一步优选的,以下对所述网络抖动延时与所述缓冲延时的生成计算进行简单说明:
本发明实施例中所述网络抖动延时可以基于以下方式生成:
步骤a、计算所述语音数据的到达间隔;
步骤b、根据所述到达间隔生成遗忘因子更新概率分布;
步骤c、根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到达间隔;
步骤d、根据所述目标达到间隔生成所述语音数据的网络抖动延时。
可以理解的是,计算语音数据的到达间隔之前还可以获取所述语音数据的包序号以及包时戳,其后根据所述包序号以及所述包时戳,计算所述语音数据的到达间隔;根据所述到达间隔生成遗忘因子更新概率分布,在所述遗忘因子更新概率分布中确定出概率和满足某一阈值(如优选为95%)的到达间隔,跟预设间隔进行峰值检测,将较大值确定为所述目标到达间隔,最后根据所述目标达到间隔以及数据包长度得到语音数据的网络抖动延时。
本发明实施例中所述缓冲延时可以基于以下方式生成:
步骤e、根据所述网络抖动延时确定对应的遗忘因子;
步骤f、根据所述遗忘因子生成所述语音数据的缓冲延时。
具体的,定义缓冲延时为L,遗忘因子f,当当前的网络抖动延时越大,遗忘因子f就越小,计算缓冲延时的公式可如下:
L(n)=f*L(n-1)+(1-f)*L(n);
其中本实施例中可默认f=0.98。可以理解的是,在某些更为精准的实施方式中,所述遗忘因子f可以根据当前的网络抖动延时及缓冲包个数等来确定,此处不作具体描述,此处举例不构成对本发明的限定。
在步骤S204中,对所述语音数据进行卡顿检测,确定语音无参考分数。
本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更加客观。
具体的,对语音数据进行卡顿检测,统计一预设时间段内的卡顿次数BL和BS。其中BL是指人耳主观能够感觉得到的卡顿,称为大卡;BS是指人耳感觉不到卡顿但体现出来是失真,称为小卡。可一并参考图2b,图2b为卡顿检测中两类卡顿的打分效果示意图,包括指示大卡BL的主观打分以及指示小卡BS的模型打分。
其后基于以下公式计算语音无参考分数QA
Q A = Σ i = 0 6 d i × B L 0.5 × i - 1 2 [ a 7 × lg ( B S + a 8 ) - a 9 ] ;
其中,di,a7,a8,a9为拟合常数,通过模拟不同的卡顿参数的主观语音质量评估(PESQ,Perceptual evaluation of speech quality)拟合出来最佳的常数值。
可以理解的是,所述预设时间段可根据当前网络状况及数据包大小来确定,本实施例可优选为12S或者16S等等,此处举例不构成对发明实现的限定。
在步骤S205中,根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈值以及语音缓冲损失因子。
在步骤S206中,根据所述缓冲延时最大阈值以及所述语音缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
其中,步骤S205与步骤S206可具体为:
当网络抖动比较大的情况下,如果一味的增加抖动缓冲区的大小,会导致用户的语音延时会偏大,也会影响语音的体验。于是根据当前缓冲延时和语音无参考分数,计算出缓冲延时最大阀值和语音缓冲损伤因子,利用这两个参数对网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时。
优选的,该实施例中,当前网络抖动延时为Dnetwork(t),目标缓冲延时的最小阀值为Dmin,目标缓冲延时的最大阀值最小值为Dminmax,目标缓冲延时的最大阀值的最大值为Dmaxmax,根据阀值和语音无参考分数QA,计算目标缓冲延时Dtarget(t):
所述目标缓冲延时Dtarget(t)可以基于以下公式计算:
D t arg et ( t ) = max ( D network ( t ) , D min ) , D network ( t ) ≤ D min D network ( t ) , D network ( t ) ≤ D min max min ( f ( t ) * D network ( t ) , D max max ) , D network ( t ) ≥ D max max ;
其中,f(t)为根据QA(t)算出来的可损伤因子,在尽量确保QA(t)≥Qmin,Qmin为可接受的最小语音无参考分数,Qmax为最大的语音无参考分数。
其中, f ( t ) = Q max - Q A ( t ) Q max .
在步骤S207中,结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
可以理解的是,所述预设策略可预先设置于服务器中,所述预设策略可以具体指示根据当前的网络状况,对语音数据执行的相应的调速操作,从而通过语音数据的调速操作实现对抖动缓冲区的大小的调整。
其中,本实施例中所述当前的网络状况可以通过步骤S205及步骤S206得到的目标缓冲延时,以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区随着网络抖动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
由上述可知,本实施例提供的语音抖动缓冲区的调整方法中,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
第三实施例
请参阅图3,图3为本发明第三实施例提供的语音抖动缓冲区的调整方法的流程示意图。同上述实施例,所述语音抖动缓冲区的调整方法基于一接收终端服务器上运行,所述接收终端上设置有抖动缓冲区。
区别于第二实施例,本实施例主要针对抖动策略算法,即对对所述语音数据包所属的抖动缓冲区的大小进行调整的过程进行详细分析。所述方法包括:
在步骤S301中,获取待播放的语音数据的网络抖动延时和缓冲延时。
优选的,在所述获取待播放的语音数据的网络抖动延时和缓冲延时之前,还可以包括以下步骤:
接收网络语音数据包;对所述网络语音数据包进行纠错处理;将纠错处理后的网络语音数据包的数据确定为待播放的语音数据。
也就是说,服务器在接收到网络语音数据包后,把经过前向纠错和后向纠错处理,且经过解码后的语音包确定为待播放的语音数据,其后根据语音数据的到达间隔统计网络抖动延时和缓冲延时,以体现当前的网络状况,进而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
可以理解的是,所述网络抖动延时和所述缓冲延时的生成可以参考第二实例步骤S203的相关描述进行实现,此处不再具体阐述;另外,此处举例仅为解释说明,所述网络抖动延时和所述缓冲延时也可以分别根据预设时间段内的平均抖动和平均延时来生成,此处不作具体限定。
在步骤S302中,对所述语音数据进行卡顿检测,确定语音无参考分数。
本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更加客观。
可以理解的是,所述语音无参考分数的计算和确定可以参考第二实例步骤S204的相关描述进行实现,此处不再具体阐述。
在步骤S303中,根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
可具体的,可先根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈值以及语音缓冲损失因子,再根据所述缓冲延时和所述语音无参考分数这两个参数,对当前所述网络抖动延时进行修正,得到目标缓冲延时,以在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时。
可以理解的是,所述目标缓冲延时的计算和确定可以参考第二实例步骤S205和步骤S206的相关描述进行实现,此处不再具体阐述。
在步骤S304中,获取所述语音数据的包序号以及包时戳;
在步骤S305中,根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式。
本实施例中,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整三种;其中,所述抖动缓冲区大小的调整方式可具体基于以下步骤进行确定:
步骤A、根据所述包序号以及所述包时戳,判断所述语音数据是否连续;
步骤A1、若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不调整;
步骤A2、若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
可以理解的是,当确定出所述语音数据不连续时,可直接确定所述抖动缓冲区大小的调整方式为不调整;当确定出所述语音数据连续时,需要结合考虑预设运行调速条件对调整方式进行判断,其中,所述运行调速条件可以根据实际操作情况预先设置于接收终端的服务器中。
该实施例中,所述运行调速条件可理解为允许调速条件,譬如:为了确保语音质量,该运行调速条件可以定义为:语音帧为连续低能量帧率允许调整,或者语音帧率连续6帧语音数据只进行一次调速;则可具体限定目标缓冲延时与网络抖动延时的关系,以确定出所述抖动缓冲区大小的调整方式。
进一步优选的,在所述语音数据连续的情况下,当在目标缓冲延时小于网络抖动延时75%且满足所述运行调速条件时,确定所述抖动缓冲区大小的调整方式为调大;当在目标缓冲延时大于网络抖动延时加20m且满足运行调速条件时,确定所述抖动缓冲区大小的调整方式为调小;在其他情况时,确定所述抖动缓冲区大小的调整方式为不调整。
可容易想到的是,此处运行调速条件以及具体情形的举例仅为本方案的一种可实现方式,并不构成对本发明实现的限定。
在步骤S306中,根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理。
优选的,在确定所述抖动缓冲区大小的调整方式后,根据其进行相对应的处理操作,可包括:
一、若确定出所述抖动缓冲区大小的调整方式为调大,则对所述语音数据进行拉升慢播处理;即语音数据需要进行减速,以调大抖动缓冲区的大小。
二、若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压缩加速快播处理;与第一种情形相反,所述语音数据需要进行加速,以调小抖动缓冲区的大小。
三、若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;
四、若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所述语音数据进行正常处理。
在第三种情形与第四种情形下,都不需要对抖动缓冲区的大小进行调整;当语音数据不连续进行丢包隐藏处理,当语音数据连续进行正常处理。
其中,对所述语音数据进行正常处理就是指对语音数据不调速,直接进行播放;一般情况下,当确定出所述语音数据为不连续时,则可对所述语音数据进行丢包隐藏处理,即不调整所述抖动缓冲区的大小。
步骤S304至步骤S306为抖动缓冲区大小的具体调整方式,根据当前的网络状况,对语音数据执行相应的调速操作,从而通过语音数据的调速操作实现对抖动缓冲区的大小的调整。
其中,本实施例中所述当前的网络状况可以通过步骤S303得到的目标缓冲延时,以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区随着网络抖动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
在更为优选的实现方式下,根据播放缓冲区中当前仍然还有的数据长度,可再设定判断语音数据调速的条件:
1、如果所述语音数据不连续,播放缓冲区数据大于20ms,那么可确定数据足够播放,本次不需要做丢包隐藏操作,否则做丢包隐藏操作,然后正常播放,不调速。
2、如果所述语音数据连续,需要加速,那么需要确保有足够数据,即如播放缓冲区及解码出来的语音数据大于40ms,则语音数据加速处理,否则数据不足,则不进行加速。
3、如果所述语音数据连续,不需要调速,播放缓冲区数据不足20ms,解码抖动缓冲区中的数据到播放缓冲区,直到播放缓冲区数据大于20ms,则进行正常播放。
4、如果所述语音数据连续,需要拉升(减速)操作,如果播放缓冲区数据大于40ms,或者解码抖动缓冲区中数据以及播放缓冲区中数据大于20ms,则进行减速,减速需要确保一定有一帧的语音数据,否则不进行减速处理。
由上述可知,本实施例提供的语音抖动缓冲区的调整方法中,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
第四实施例
为便于更好的实施本发明实施例提供的语音抖动缓冲区的调整方法,本发明实施例还提供一种基于上述语音抖动缓冲区的调整方法的装置。其中名词的含义与上述语音抖动缓冲区的调整的方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图4,图4为本发明实施例提供的语音抖动缓冲区的调整装置的结构示意图,其中所述语音抖动缓冲区的调整装置可基于一接收终端服务器上运行,所述接收终端上设置有抖动缓冲区(即JitterBuffer),所述抖动缓冲区将接收到的语音数据包按照时间进行缓存,然后顺序的按固定时间间隔进行播放语音数据。
如图4所示,本发明所述语音抖动缓冲区的调整装置可以包括获取模块401、检测模块402、修正模块403以及调整模块404。
其中,所述获取模块401,用于获取待播放的语音数据的网络抖动延时和缓冲延时;所述检测模块402,用于对所述语音数据进行卡顿检测,确定语音无参考分数。
本发明实施例中,待播放的语音数据为网络上接收到的经过纠错处理且解码后的语音数据;根据待播放的语音数据的网络抖动延时和缓冲延时,检测到当前的网络状况,进而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
可以理解的是,所述网络抖动延时和所述缓冲延时可以分别根据预设时间段内的平均抖动和平均延时来生成,也可以根据语音数据包的到达间隔进行统计生成,此处对网络抖动延时和缓冲延时的生成方式不作具体限定。
另外,本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更加客观。
所述修正模块403,用于根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时;所述调整模块404,用于结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
可以理解的是,当网络抖动比较大的情况下,如果一味的增加抖动缓冲区的大小,会导致用户的语音延时会偏大,也会影响语音的体验。因此,该实施例中,根据当前的缓冲延时和语音无参考分数这两个参数对所述网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时。
另容易想到的是,所述预设策略可预先设置于服务器中,所述预设策略可以具体指示根据当前的网络状况,对语音数据执行的相应的调速操作,从而通过语音数据的调速操作实现对抖动缓冲区的大小的调整。
其中,本实施例中所述当前的网络状况可以通过所述修正模块403得到的目标缓冲延时实时,以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区随着网络抖动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
由上述可知,本实施例提供的语音抖动缓冲区的调整装置中,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
第五实施例
请参阅图5,图5为本发明实施例提供的语音抖动缓冲区的调整装置的结构示意图,其中所述语音抖动缓冲区的调整装置包括:获取模块501、检测模块502、修正模块503以及调整模块504,其中,该实施例中上述各功能模块的功能作用可对应参考第四实施例中的获取模块401、检测模块402、修正模块403以及调整模块404的相关描述,此处不作赘述。
在某些实施方式中,所述语音抖动缓冲区的调整装置还可以包括接收模块505、纠错模块506以及确定模块507;其中所述接收模块505,用于接收网络语音数据包;所述纠错模块506,用于对所述网络语音数据包进行纠错处理;所述确定模块507,用于将纠错处理后的网络语音数据包的数据确定为待播放的语音数据。
进一步,可具体的,所述获取模块501包括第一获取单元,用于获取网络抖动延时,包括:计算所述语音数据的到达间隔;根据所述到达间隔生成遗忘因子更新概率分布;根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到达间隔;根据所述目标达到间隔生成所述语音数据的网络抖动延时。
可以理解的是,计算语音数据的到达间隔之前还可以获取所述语音数据的包序号以及包时戳,其后根据所述包序号以及所述包时戳,计算所述语音数据的到达间隔;根据所述到达间隔生成遗忘因子更新概率分布,在所述遗忘因子更新概率分布中确定出概率和满足某一阈值(如优选为95%)的到达间隔,跟预设间隔进行峰值检测,将较大值确定为所述目标到达间隔,最后根据所述目标达到间隔以及数据包长度得到语音数据的网络抖动延时。
所述获取模块501包括第二获取单元,用于获取缓冲延时,包括:根据所述网络抖动延时确定对应的遗忘因子;根据所述遗忘因子生成所述语音数据的缓冲延时。
具体的,定义缓冲延时为L,遗忘因子f,当当前的网络抖动延时越大,遗忘因子f就越小,计算缓冲延时的公式可如下:
L(n)=f*L(n-1)+(1-f)*L(n);
其中本实施例中可默认f=0.98。可以理解的是,在某些更为精准的实施方式中,所述遗忘因子f可以根据当前的网络抖动延时及缓冲包个数等来确定,此处不作具体描述,此处举例不构成对本发明的限定。
所述检测模块502对所述语音数据进行卡顿检测,确定语音无参考分数;
可具体的,所述语音无参考分数主要是由人耳主观感受到的卡顿以及人耳感觉不到的卡顿计算得出;统计一预设时间段内的卡顿次数BL和BS。其中BL是指人耳主观能够感觉得到的卡顿;BS是指人耳感觉不到卡顿但体现出来是失真。
其中,di,a7,a8,a9为拟合常数,通过模拟不同的卡顿参数的主观语音质量评估PESQ拟合出来最佳的常数值。
可以理解的是,所述预设时间段可根据当前网络状况及数据包大小来确定,本实施例可优选为12S或者16S等等,此处举例不构成对发明实现的限定。
优选的,所述修正模块503可以包括第一确定单元5031以及修正单元5032;其中所述第一确定单元5031,用于根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈值以及语音缓冲损失因子;所述修正单元5032,用于根据所述缓冲延时最大阈值以及所述语音缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
假设,该实施例中,当前网络抖动延时为Dnetwork(t),目标缓冲延时的最小阀值为Dmin,目标缓冲延时的最大阀值最小值为Dminmax,目标缓冲延时的最大阀值的最大值为Dmaxmax,根据阀值和语音无参考分数QA,计算目标缓冲延时Dtarget(t):
所述目标缓冲延时Dtarget(t)可以基于以下公式计算:
D t arg et ( t ) = max ( D network ( t ) , D min ) , D network ( t ) ≤ D min D network ( t ) , D network ( t ) ≤ D min max min ( f ( t ) * D network ( t ) , D max max ) , D network ( t ) ≥ D max max ;
其中,f(t)为根据QA(t)算出来的可损伤因子,在尽量确保QA(t)≥Qmin,Qmin为可接受的最小语音无参考分数,Qmax为最大的语音无参考分数。
其中, f ( t ) = Q max - Q A ( t ) Q max .
所述调整模块504可以包括获取单元5041、第二确定单元5042以及调整处理单元5043;其中所述获取单元5041,用于获取所述语音数据的包序号以及包时戳;所述第二确定单元5042,用于根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整;所述调整处理单元5043,用于根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理。
其中,所述抖动缓冲区大小的调整方式可具体基于所述第二确定单元5042中的功能子单元进行确定,包括:
判断子单元,用于根据所述包序号以及所述包时戳,判断所述语音数据是否连续;第一确定子单元,用于若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不调整;第二确定子单元,用于若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
可以理解的是,当确定出所述语音数据不连续时,可直接确定所述抖动缓冲区大小的调整方式为不调整;当确定出所述语音数据连续时,需要结合考虑预设运行调速条件对调整方式进行判断,其中,所述运行调速条件可以根据实际操作情况预先设置于接收终端的服务器中。
该实施例中,所述运行调速条件可理解为允许调速条件,譬如:为了确保语音质量,该运行调速条件可以定义为:语音帧为连续低能量帧率允许调整,或者语音帧率连续6帧语音数据只进行一次调速;则可具体限定目标缓冲延时与网络抖动延时的关系,以确定出所述抖动缓冲区大小的调整方式。
进一步优选的,在所述语音数据连续的情况下,当在目标缓冲延时小于网络抖动延时75%且满足所述运行调速条件时,确定所述抖动缓冲区大小的调整方式为调大;当在目标缓冲延时大于网络抖动延时加20m且满足运行调速条件时,确定所述抖动缓冲区大小的调整方式为调小;在其他情况时,确定所述抖动缓冲区大小的调整方式为不调整。
可容易想到的是,此处运行调速条件以及具体情形的举例仅为本方案的一种可实现方式,并不构成对本发明实现的限定。
优选的,在确定所述抖动缓冲区大小的调整方式后,根据其进行相对应的处理操作,基于此,所述调整处理单元5043可以包括:第一调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为调大,则对所述语音数据进行拉升慢播处理;第二调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压缩加速快播处理;第三调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;第四调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所述语音数据进行正常处理。
在更为优选的实现方式下,根据播放缓冲区中当前仍然还有的数据长度,可再设定判断语音数据调速的条件,例如:如果所述语音数据不连续,播放缓冲区数据大于20ms,那么可确定数据足够播放,本次不需要做丢包隐藏操作,否则做丢包隐藏操作,然后正常播放,不调速。又如,如果所述语音数据连续,需要加速,那么需要确保有足够数据,即如播放缓冲区及解码出来的语音数据大于40ms,则语音数据加速处理,否则数据不足,则不进行加速。又如,如果所述语音数据连续,不需要调速,播放缓冲区数据不足20ms,解码抖动缓冲区中的数据到播放缓冲区,直到播放缓冲区数据大于20ms,则进行正常播放。又如,如果所述语音数据连续,需要拉升(减速)操作,如果播放缓冲区数据大于40ms,或者解码抖动缓冲区中数据以及播放缓冲区中数据大于20ms,则进行减速,减速需要确保一定有一帧的语音数据,否则不进行减速处理。
由上述可知,本实施例提供的语音抖动缓冲区的调整装置中,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
第六实施例
本发明实施例还提供一种服务器,其中可以集成本发明实施例的语音抖动缓冲区的调整装置,所述服务器可基于一接收终端服务器上运行,所述接收终端上设置有抖动缓冲区,所述抖动缓冲区将接收到的语音数据包按照时间进行缓存,然后顺序的按固定时间间隔进行播放语音数据。如图6所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、射频(Radio Frequency,RF)电路603、电源604、输入单元605、以及显示单元606等部件。本领域技术人员可以理解,图6中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器601是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。
RF电路603可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器601处理;另外,将涉及上行的数据发送给基站。通常,RF电路603包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路603还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobilecommunication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
服务器还包括给各个部件供电的电源604(比如电池),优选的,电源可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源604还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元605,该输入单元605可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该服务器还可包括显示单元606,该显示单元606可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元608可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。
具体在本实施例中,服务器中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:
获取待播放的语音数据的网络抖动延时和缓冲延时;对所述语音数据进行卡顿检测,确定语音无参考分数;根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时;结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
优选的,所述处理器601还可以用于:根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈值以及语音缓冲损失因子;根据所述缓冲延时最大阈值以及所述语音缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
优选的,所述处理器601还可以用于:获取所述语音数据的包序号以及包时戳;根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整;根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理。
优选的,所述处理器601还可以用于:根据所述包序号以及所述包时戳,判断所述语音数据是否连续;若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不调整;若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
优选的,所述处理器601还可以用于:若确定出所述抖动缓冲区大小的调整方式为调大,则对所述语音数据进行拉升慢播处理;若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压缩加速快播处理;若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所述语音数据进行正常处理。
优选的,所述处理器601还可以用于:在获取待播放的语音数据的网络抖动延时和缓冲延时之前,接收网络语音数据包;对所述网络语音数据包进行纠错处理;将纠错处理后的网络语音数据包的数据确定为待播放的语音数据。
优选的,所述处理器601还可以用于:计算所述语音数据的到达间隔;根据所述到达间隔生成遗忘因子更新概率分布;根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到达间隔;根据所述目标达到间隔生成所述语音数据的网络抖动延时。
优选的,所述处理器601还可以用于:根据所述网络抖动延时确定对应的遗忘因子;根据所述遗忘因子生成所述语音数据的缓冲延时。
由上述可知,本实施例提供的服务器中,对待播放的语音数据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对语音抖动缓冲区的调整方法的详细描述,此处不再赘述。
本发明实施例提供的所述语音抖动缓冲区的调整装置,譬如为计算机、平板电脑、具有触摸功能的手机等等,所述语音抖动缓冲区的调整装置与上文实施例中的语音抖动缓冲区的调整方法属于同一构思,在所述语音抖动缓冲区的调整装置上可以运行所述语音抖动缓冲区的调整方法实施例中提供的任一方法,其具体实现过程详见所述语音抖动缓冲区的调整方法实施例,此处不再赘述。
需要说明的是,对本发明所述语音抖动缓冲区的调整方法而言,本领域普通测试人员可以理解实现本发明实施例所述语音抖动缓冲区的调整方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中可包括如所述语音抖动缓冲区的调整方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
对本发明实施例的所述语音抖动缓冲区的调整装置而言,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的一种语音抖动缓冲区的调整方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (16)

1.一种语音抖动缓冲区的调整方法,其特征在于,包括:
获取待播放的语音数据的网络抖动延时和缓冲延时;
对所述语音数据进行卡顿检测,确定语音无参考分数;
根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时;
结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
2.根据权利要求1所述的语音抖动缓冲区的调整方法,其特征在于,所述根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时,包括:
根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈值以及语音缓冲损失因子;
根据所述缓冲延时最大阈值以及所述语音缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
3.根据权利要求1所述的语音抖动缓冲区的调整方法,其特征在于,所述按照预设策略对所述语音数据包所属的抖动缓冲区的大小进行调整,包括:
获取所述语音数据的包序号以及包时戳;
根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整;
根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理。
4.根据权利要求3所述的语音抖动缓冲区的调整方法,其特征在于,所述根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式,包括:
根据所述包序号以及所述包时戳,判断所述语音数据是否连续;
若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不调整;
若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
5.根据权利要求4所述的语音抖动缓冲区的调整方法,其特征在于,所述根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理,包括:
若确定出所述抖动缓冲区大小的调整方式为调大,则对所述语音数据进行拉升慢播处理;
若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压缩加速快播处理;
若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;
若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所述语音数据进行正常处理。
6.根据权利要求1至5任一项所述的语音抖动缓冲区的调整方法,其特征在于,所述获取待播放的语音数据的网络抖动延时和缓冲延时之前,还包括:
接收网络语音数据包;
对所述网络语音数据包进行纠错处理;
将纠错处理后的网络语音数据包的数据确定为待播放的语音数据。
7.根据权利要求1至5任一项所述的语音抖动缓冲区的调整方法,其特征在于,所述网络抖动延时基于以下方式获取:
计算所述语音数据的到达间隔;
根据所述到达间隔生成遗忘因子更新概率分布;
根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到达间隔;
根据所述目标达到间隔生成所述语音数据的网络抖动延时。
8.根据权利要求1至5任一项所述的语音抖动缓冲区的调整方法,其特征在于,所述缓冲延时基于以下方式获取:
根据所述网络抖动延时确定对应的遗忘因子;
根据所述遗忘因子生成所述语音数据的缓冲延时。
9.一种语音抖动缓冲区的调整装置,其特征在于,包括:
获取模块,用于获取待播放的语音数据的网络抖动延时和缓冲延时;
检测模块,用于对所述语音数据进行卡顿检测,确定语音无参考分数;
修正模块,用于根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正,得到目标缓冲延时;
调整模块,用于结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
10.根据权利要求9所述的语音抖动缓冲区的调整装置,其特征在于,所述修正模块包括:
第一确定单元,用于根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈值以及语音缓冲损失因子;
修正单元,用于根据所述缓冲延时最大阈值以及所述语音缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
11.根据权利要求9所述的语音抖动缓冲区的调整装置,其特征在于,所述调整模块,包括:
获取单元,用于获取所述语音数据的包序号以及包时戳;
第二确定单元,用于根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整;
调整处理单元,用于根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理。
12.根据权利要求11所述的语音抖动缓冲区的调整装置,其特征在于,所述第二确定单元,包括:
判断子单元,用于根据所述包序号以及所述包时戳,判断所述语音数据是否连续;
第一确定子单元,用于若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不调整;
第二确定子单元,用于若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
13.根据权利要求12所述的语音抖动缓冲区的调整装置,其特征在于,所述调整处理单元,包括:
第一调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为调大,则对所述语音数据进行拉升慢播处理;
第二调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压缩加速快播处理;
第三调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;
第四调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所述语音数据进行正常处理。
14.根据权利要求9至13任一项所述的语音抖动缓冲区的调整装置,其特征在于,所述装置,还包括:
接收模块,用于接收网络语音数据包;
纠错模块,用于对所述网络语音数据包进行纠错处理;
确定模块,用于将纠错处理后的网络语音数据包的数据确定为待播放的语音数据。
15.根据权利要求9至13任一项所述的语音抖动缓冲区的调整装置,其特征在于,所述获取模块包括第一获取单元,用于获取网络抖动延时,包括:计算所述语音数据的到达间隔;根据所述到达间隔生成遗忘因子更新概率分布;根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到达间隔;根据所述目标达到间隔生成所述语音数据的网络抖动延时。
16.根据权利要求9至13任一项所述的语音抖动缓冲区的调整装置,其特征在于,所述获取模块包括第二获取单元,用于获取缓冲延时,包括:根据所述网络抖动延时确定对应的遗忘因子;根据所述遗忘因子生成所述语音数据的缓冲延时。
CN201510071060.7A 2015-02-11 2015-02-11 一种语音抖动缓冲区的调整方法及装置 Active CN105991477B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510071060.7A CN105991477B (zh) 2015-02-11 2015-02-11 一种语音抖动缓冲区的调整方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510071060.7A CN105991477B (zh) 2015-02-11 2015-02-11 一种语音抖动缓冲区的调整方法及装置

Publications (2)

Publication Number Publication Date
CN105991477A true CN105991477A (zh) 2016-10-05
CN105991477B CN105991477B (zh) 2019-07-19

Family

ID=57041937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510071060.7A Active CN105991477B (zh) 2015-02-11 2015-02-11 一种语音抖动缓冲区的调整方法及装置

Country Status (1)

Country Link
CN (1) CN105991477B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979482A (zh) * 2016-10-25 2018-05-01 腾讯科技(深圳)有限公司 一种信息处理方法、装置、发送端、去抖动端、接收端
CN109743263A (zh) * 2019-01-14 2019-05-10 北京三体云联科技有限公司 动态抖动缓冲方法、装置和计算机设备
CN110061814A (zh) * 2019-04-26 2019-07-26 北京达佳互联信息技术有限公司 一种语音延时抖动控制方法、装置、电子设备及存储介质
WO2020207120A1 (zh) * 2019-04-11 2020-10-15 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
CN111955012A (zh) * 2018-10-18 2020-11-17 谷歌有限责任公司 基于环境数据的设备的动态缓冲区控制
CN112017666A (zh) * 2020-08-31 2020-12-01 广州市百果园信息技术有限公司 一种延迟控制方法和装置
CN112511885A (zh) * 2020-11-20 2021-03-16 深圳乐播科技有限公司 音视频同步方法、装置及存储介质
CN112637016A (zh) * 2020-12-24 2021-04-09 百果园技术(新加坡)有限公司 一种网络延时更新方法、系统、电子设备及存储介质
CN112735463A (zh) * 2020-12-16 2021-04-30 杭州小伴熊科技有限公司 一种音频播放延迟ai修正方法和装置
CN112822482A (zh) * 2020-12-31 2021-05-18 上海掌门科技有限公司 一种确定音视频通话的评估得分的方法与设备
CN113162812A (zh) * 2020-01-07 2021-07-23 阿里巴巴集团控股有限公司 语音处理方法、直播的语音播放方法、装置、设备及系统
CN114501114A (zh) * 2022-02-11 2022-05-13 福建星网智慧科技有限公司 一种音频网络自适应方法和存储设备
CN116805938A (zh) * 2023-08-23 2023-09-26 苏州大学 流媒体传输的抖动缓冲区控制方法、系统、介质和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
CN101304557A (zh) * 2008-04-25 2008-11-12 华为技术有限公司 一种分组传输控制方法及装置
CN101924683A (zh) * 2009-06-09 2010-12-22 华为技术有限公司 一种动态调整抖动缓存的方法、装置和电子设备
US7873064B1 (en) * 2007-02-12 2011-01-18 Marvell International Ltd. Adaptive jitter buffer-packet loss concealment
CN102843339A (zh) * 2011-06-21 2012-12-26 中兴通讯股份有限公司 一种延时处理方法及装置
CN103051955A (zh) * 2012-12-21 2013-04-17 华为技术有限公司 流媒体播放方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030112758A1 (en) * 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
US7873064B1 (en) * 2007-02-12 2011-01-18 Marvell International Ltd. Adaptive jitter buffer-packet loss concealment
CN101304557A (zh) * 2008-04-25 2008-11-12 华为技术有限公司 一种分组传输控制方法及装置
CN101924683A (zh) * 2009-06-09 2010-12-22 华为技术有限公司 一种动态调整抖动缓存的方法、装置和电子设备
CN102843339A (zh) * 2011-06-21 2012-12-26 中兴通讯股份有限公司 一种延时处理方法及装置
CN103051955A (zh) * 2012-12-21 2013-04-17 华为技术有限公司 流媒体播放方法及装置

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979482B (zh) * 2016-10-25 2021-06-11 腾讯科技(深圳)有限公司 一种信息处理方法、装置、发送端、去抖动端、接收端
CN107979482A (zh) * 2016-10-25 2018-05-01 腾讯科技(深圳)有限公司 一种信息处理方法、装置、发送端、去抖动端、接收端
CN111955012A (zh) * 2018-10-18 2020-11-17 谷歌有限责任公司 基于环境数据的设备的动态缓冲区控制
CN109743263A (zh) * 2019-01-14 2019-05-10 北京三体云联科技有限公司 动态抖动缓冲方法、装置和计算机设备
CN109743263B (zh) * 2019-01-14 2022-06-17 北京世纪好未来教育科技有限公司 动态抖动缓冲方法、装置和计算机设备
US11431643B2 (en) 2019-04-11 2022-08-30 Beijing Dajia Internet Information Technology Co., Ltd Method, device, and terminal for controlling jitter in network communication
WO2020207120A1 (zh) * 2019-04-11 2020-10-15 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
CN110061814B (zh) * 2019-04-26 2022-03-25 北京达佳互联信息技术有限公司 一种语音延时抖动控制方法、装置、电子设备及存储介质
CN110061814A (zh) * 2019-04-26 2019-07-26 北京达佳互联信息技术有限公司 一种语音延时抖动控制方法、装置、电子设备及存储介质
CN113162812A (zh) * 2020-01-07 2021-07-23 阿里巴巴集团控股有限公司 语音处理方法、直播的语音播放方法、装置、设备及系统
CN112017666A (zh) * 2020-08-31 2020-12-01 广州市百果园信息技术有限公司 一种延迟控制方法和装置
CN112017666B (zh) * 2020-08-31 2024-06-11 广州市百果园信息技术有限公司 一种延迟控制方法和装置
CN112511885A (zh) * 2020-11-20 2021-03-16 深圳乐播科技有限公司 音视频同步方法、装置及存储介质
CN112735463A (zh) * 2020-12-16 2021-04-30 杭州小伴熊科技有限公司 一种音频播放延迟ai修正方法和装置
CN112637016A (zh) * 2020-12-24 2021-04-09 百果园技术(新加坡)有限公司 一种网络延时更新方法、系统、电子设备及存储介质
CN112822482A (zh) * 2020-12-31 2021-05-18 上海掌门科技有限公司 一种确定音视频通话的评估得分的方法与设备
CN114501114A (zh) * 2022-02-11 2022-05-13 福建星网智慧科技有限公司 一种音频网络自适应方法和存储设备
CN116805938A (zh) * 2023-08-23 2023-09-26 苏州大学 流媒体传输的抖动缓冲区控制方法、系统、介质和设备
CN116805938B (zh) * 2023-08-23 2023-11-24 苏州大学 流媒体传输的抖动缓冲区控制方法、系统、介质和设备

Also Published As

Publication number Publication date
CN105991477B (zh) 2019-07-19

Similar Documents

Publication Publication Date Title
CN105991477B (zh) 一种语音抖动缓冲区的调整方法及装置
US11606564B2 (en) Video encoding code rate control method, apparatus, and device, and storage medium
CN108011686B (zh) 信息编码帧丢失恢复方法和装置
CN105872253B (zh) 一种直播声音处理方法及移动终端
US10261988B2 (en) Method, apparatus and terminal for matching expression image
CN109378000A (zh) 语音唤醒方法、装置、系统、设备、服务器及存储介质
CA2742858C (en) Audio/video data play control method and apparatus
CN104144312A (zh) 一种视频处理方法和相关装置
CN109817241B (zh) 音频处理方法、装置及存储介质
CN111739545B (zh) 音频处理方法、装置及存储介质
CN113117326B (zh) 一种帧率控制方法和装置
CN108492837B (zh) 音频突发白噪声的检测方法、装置及存储介质
CN112333763A (zh) 网络选择方法、装置
CN107734390B (zh) 直播方法、装置及存储介质
US20130045772A1 (en) Wireless communication device, mobile phone and wireless communication device control method
CN111642000B (zh) 数据传输方法、装置、电子设备及计算机可读存储介质
AU2013204547B2 (en) Audio signal processing method and electronic device supporting the same
CN112312370B (zh) 切换门限值处理方法、装置
CN108008808B (zh) 运行参数的调整方法和移动终端
CN114710804A (zh) 数据传输调节方法、装置、电子设备及可读存储介质
CN115118636A (zh) 网络抖动状态的确定方法、装置、电子设备及存储介质
WO2018227541A1 (zh) 链路的功率控制方法及相关产品
CN111970668B (zh) 一种蓝牙音频控制方法、设备及计算机可读存储介质
CN114416013A (zh) 数据发送方法、装置、电子设备及计算机可读存储介质
CN115776593A (zh) 一种视频内容的处理方法以及相关装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant