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

文档序号:10626776阅读:379来源:国知局
一种语音抖动缓冲区的调整方法及装置的制造方法
【专利摘要】本发明公开了一种语音抖动缓冲区的调整方法及装置,其中该方法包括:获取待播放的语音数据的网络抖动延时和缓冲延时;对语音数据进行卡顿检测,确定语音无参考分数;根据缓冲延时和语音无参考分数,对当前网络抖动延时进行修正,得到目标缓冲延时;结合目标缓冲延时、当前缓冲延时以及语音无参考分数,按照预设策略对语音数据所属的抖动缓冲区的大小进行调整。本发明实施例在确保语音质量的情况下,可以适当的减少网络抖动延时,可以让互联网语音通话快速适应网络变化,提升用户在移动互联网中使用语音通话的质量。
【专利说明】
一种语音抖动缓冲区的调整方法及装置
技术领域
[0001] 本发明属于通信技术领域,尤其涉及一种语音抖动缓冲区的调整方法及装置。
【背景技术】
[0002] 随着互联网技术的不断发展,网络带宽也在不断的提升,实时语音技术在生活中 被广泛的应用。基于互联网传输的语音业务,用户通过2G/3G/4G/WIFI等网络接入互联网 成为主流,但由于这些接入的网络环境越来越复杂,网络中存在延时、抖动、丢包、乱序等对 语音质量影响巨大,因此语音质量越来越受到人们关注。
[0003] 为了提高语音质量,减少网络抖动的一般方法就是在接收端加入抖动缓冲区,即 在解码和播放之前放入一个固定长度的缓冲区,该缓冲区用于缓存一定时间的语音数据 包,通过增加一定的延时,消除网络抖动。这种算法实现简单,算法复杂度低。
[0004] 在对现有技术的研究和实践过程中,本发明的发明人发现,由于接收端增加一个 固定长度的抖动缓冲区,如果缓冲区设置比抖动小,那么将会导致数据的丢失从而导致语 音失真,降低语音质量;如果缓冲区设置较大,相当于引入很大的通话延时,同样也影响用 户的通话质量,甚至影响正常的实时通话。

【发明内容】

[0005] 本发明的目的在于提供一种语音抖动缓冲区的调整方法及装置,旨在消除网络抖 动,提高语音通话质量。
[0006] 为解决上述技术问题,本发明实施例提供以下技术方案:
[0007] -种语音抖动缓冲区的调整方法,其中包括:
[0008] 获取待播放的语音数据的网络抖动延时和缓冲延时;
[0009] 对所述语音数据进行卡顿检测,确定语音无参考分数;
[0010] 根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动延时进行修正, 得到目标缓冲延时;
[0011] 结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考分数,按照预设 策略对所述语音数据所属的抖动缓冲区的大小进行调整。
[0012] 为解决上述技术问题,本发明实施例提供以下技术方案:
[0013] -种语音抖动缓冲区的调整装置,其中包括:
[0014] 获取模块,用于获取待播放的语音数据的网络抖动延时和缓冲延时;
[0015] 检测模块,用于对所述语音数据进行卡顿检测,确定语音无参考分数;
[0016] 修正模块,用于根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动 延时进行修正,得到目标缓冲延时;
[0017] 调整模块,用于结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考 分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
[0018] 相对于现有技术,本实施例,对待播放的语音数据进行卡顿检测,确定语音无参考 分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖动延时进行 修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时;并结 合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行调整,可以 让互联网语音通话快速适应网络变化,提升用户在移动互联网中使用语音通话的质量。
【附图说明】
[0019] 下面结合附图,通过对本发明的【具体实施方式】详细描述,将使本发明的技术方案 及其它有益效果显而易见。
[0020] 图1是本发明第一实施例提供的语音抖动缓冲区的调整方法的流程示意图;
[0021] 图2a为本发明第二实施例提供的语音抖动缓冲区的调整方法的流程示意图;
[0022] 图2b为本发明第二实施例提供的卡顿检测结果示意图;
[0023] 图3为本发明第三实施例提供的语音抖动缓冲区的调整方法的流程示意图;
[0024] 图4为本发明第四实施例提供的语音抖动缓冲区的调整装置的结构示意图;
[0025] 图5为本发明第五实施例提供的语音抖动缓冲区的调整装置的结构示意图;
[0026] 图6为本发明第六实施例提供的服务器的结构示意图。
【具体实施方式】
[0027] 请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一 适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被 视为限制本发明未在此详述的其它具体实施例。
[0028] 在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行的步骤 及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所 指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元 的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置 或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构 为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文 字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操 作亦可实施在硬件当中。
[0029] 本发明的原理使用许多其它泛用性或特定目的运算、通信环境或组态来进行操 作。所熟知的适合用于本发明的运算系统、环境与组态的范例可包括(但不限于)手持电 话、个人计算机、服务器、多处理器系统、微电脑为主的系统、主架构型计算机、及分布式运 算环境,其中包括了任何的上述系统或装置。
[0030] 本文所使用的术语「模块」可看做为在该运算系统上执行的软件对象。本文所述的 不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方 法优选的以软件的方式进行实施,当然也可在硬件上进行实施,均在本发明保护范围之内。
[0031] 而且本文所使用的词语"优选的"意指用作实例、示例或例证。奉文描述为"优选 的"任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语"优选的"的使用 旨在以具体方式提出概念。如本申请中所使用的术语"或"旨在意指包含的"或"而非排除 的"或"。即,除非另外指定或从上下文中清楚,"X使用A或B"意指自然包括排列的任意一 个。即,如果X使用A ;X使用B ;或X使用A和B二者,则"X使用A或B"在前述任一示例 中得到满足。
[0032] 而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技 术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这 样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、 资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功 能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文 所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特 征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定 应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语"包括"、 "具有"、"含有"或其变形被用在【具体实施方式】或权利要求中而言,这样的术语旨在以与术 语"包含"相似的方式包括。
[0033] 第一实施例
[0034] 请参阅图1,图1是本发明第一实施例提供的语音抖动缓冲区的调整方法的流程 示意图。所述方法包括:
[0035] 在步骤S101中,获取待播放的语音数据的网络抖动延时和缓冲延时。
[0036] 其中,所述语音抖动缓冲区的调整方法可基于一接收终端服务器上运行,所述接 收终端上设置有抖动缓冲区(即JitterBuffer),所述抖动缓冲区将接收到的语音数据包 按照时间进行缓存,然后顺序的按固定时间间隔进行播放语音数据。
[0037] 本发明实施例中,待播放的语音数据为网络上接收到的经过纠错处理且解码后的 语音数据;根据待播放的语音数据的网络抖动延时和缓冲延时,检测到当前的网络状况,进 而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
[0038] 可以理解的是,所述网络抖动延时和所述缓冲延时可以分别根据预设时间段内的 平均抖动和平均延时来生成,也可以根据语音数据包的到达间隔进行统计生成,此处对网 络抖动延时和缓冲延时的生成方式不作具体限定。
[0039] 在步骤S102中,对所述语音数据进行卡顿检测,确定语音无参考分数。
[0040] 本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳 主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于 卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更 加客观。
[0041] 在步骤S103中,根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动 延时进行修正,得到目标缓冲延时。
[0042] 可以理解的是,当网络抖动比较大的情况下,如果一味的增加抖动缓冲区的大小, 会导致用户的语音延时会偏大,也会影响语音的体验。因此,该实施例中,根据当前的缓冲 延时和语音无参考分数这两个参数对所述网络抖动延时进行修正,在确保语音质量的情况 下,可以适当的减少网络抖动延时,得出目标缓冲延时。
[0043] 在步骤S104中,结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考 分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
[0044] 可以理解的是,所述预设策略可预先设置于服务器中,所述预设策略可以具体指 示根据当前的网络状况,对语音数据执行的相应的调速操作,从而通过语音数据的调速操 作实现对抖动缓冲区的大小的调整。
[0045] 其中,本实施例中所述当前的网络状况可以通过步骤S103得到的目标缓冲延时, 以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区随着网络抖 动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
[0046] 由上述可知,本实施例提供的语音抖动缓冲区的调整方法中,对待播放的语音数 据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓 冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖 动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对 抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢 包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
[0047] 第二实施例
[0048] 请参阅图2a,图2a为本发明第二实施例提供的语音抖动缓冲区的调整方法的流 程示意图。其中,所述语音抖动缓冲区的调整方法基于一接收终端服务器上运行,所述接收 终端上设置有抖动缓冲区,所述抖动缓冲区将接收到的语音数据包按照时间进行缓存,然 后顺序的按固定时间间隔进行播放语音数据。
[0049] 区别于第一实施例,本实施例主要针对网络抖动统计算法(即所述网络抖动延时 的生成)、缓冲延时统计算法(即所述缓冲延时的生成)、语音无参考算法(即所述语音无 参考分数的生成)以及网络延时修正算法(即对当前所述网络抖动延时进行修正,得到目 标缓冲延时的过程)进行详细分析进行详细分析。所述方法包括:
[0050] 在步骤S201中,接收网络语音数据包;
[0051] 在步骤S202中,对所述网络语音数据包进行纠错处理,并将纠错处理且解码后的 网络语音数据包的数据确定为待播放的语音数据。
[0052] 所述步骤S201与步骤S202可具体为:
[0053] 也就是说,在获取到网络抖动延时和缓冲延时之前,服务器在接收到网络语音数 据包后,把经过前向纠错和后向纠错之后的语音包送给抖动缓冲处理模块,将该语音包进 行解码,其后根据语音包的到达间隔统计网络抖动延时和缓冲延时,以体现当前的网络状 况,进而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
[0054] 步骤S203、获取待播放的语音数据的网络抖动延时和缓冲延时。
[0055] 进一步优选的,以下对所述网络抖动延时与所述缓冲延时的生成计算进行简单说 明:
[0056] 本发明实施例中所述网络抖动延时可以基于以下方式生成:
[0057] 步骤a、计算所述语音数据的到达间隔;
[0058] 步骤b、根据所述到达间隔生成遗忘因子更新概率分布;
[0059] 步骤c、根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到 达间隔;
[0060] 步骤d、根据所述目标达到间隔生成所述语音数据的网络抖动延时。
[0061] 可以理解的是,计算语音数据的到达间隔之前还可以获取所述语音数据的包序号 以及包时戳,其后根据所述包序号以及所述包时戳,计算所述语音数据的到达间隔;根据所 述到达间隔生成遗忘因子更新概率分布,在所述遗忘因子更新概率分布中确定出概率和满 足某一阈值(如优选为95%)的到达间隔,跟预设间隔进行峰值检测,将较大值确定为所 述目标到达间隔,最后根据所述目标达到间隔以及数据包长度得到语音数据的网络抖动延 时。
[0062] 本发明实施例中所述缓冲延时可以基于以下方式生成:
[0063] 步骤e、根据所述网络抖动延时确定对应的遗忘因子;
[0064] 步骤f、根据所述遗忘因子生成所述语音数据的缓冲延时。
[0065] 具体的,定义缓冲延时为L,遗忘因子f,当当前的网络抖动延时越大,遗忘因子f 就越小,计算缓冲延时的公式可如下:
[0066] L(n) = f*L (n-1) + (1-f) *L (η);
[0067] 其中本实施例中可默认f = 0.98。可以理解的是,在某些更为精准的实施方式 中,所述遗忘因子f可以根据当前的网络抖动延时及缓冲包个数等来确定,此处不作具体 描述,此处举例不构成对本发明的限定。
[0068] 在步骤S204中,对所述语音数据进行卡顿检测,确定语音无参考分数。
[0069] 本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳 主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于 卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更 加客观。
[0070] 具体的,对语音数据进行卡顿检测,统计一预设时间段内的卡顿次数BdP B s。其 中^是指人耳主观能够感觉得到的卡顿,称为大卡;B s是指人耳感觉不到卡顿但体现出来 是失真,称为小卡。可一并参考图2b,图2b为卡顿检测中两类卡顿的打分效果示意图,包括 指示大卡&的主观打分以及指示小卡B s的模型打分。
[0071] 其后基于以下公式计算语音无参考分数Qa:
[0072]
[0073] 其中,山,a7, as,a9为拟合常数,通过模拟不同的卡顿参数的主观语音质量评估 (PESQ,Perceptual evaluation of speech quality)拟合出来最佳的常数值。
[0074] 可以理解的是,所述预设时间段可根据当前网络状况及数据包大小来确定,本实 施例可优选为12S或者16S等等,此处举例不构成对发明实现的限定。
[0075] 在步骤S205中,根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈 值以及语音缓冲损失因子。
[0076] 在步骤S206中,根据所述缓冲延时最大阈值以及所述语音缓冲损失因子,对当前 所述网络抖动延时进行修正,得到目标缓冲延时。
[0077] 其中,步骤S205与步骤S206可具体为:
[0078] 当网络抖动比较大的情况下,如果一味的增加抖动缓冲区的大小,会导致用户的 语音延时会偏大,也会影响语音的体验。于是根据当前缓冲延时和语音无参考分数,计算出 缓冲延时最大阀值和语音缓冲损伤因子,利用这两个参数对网络抖动延时进行修正,在确 保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲延时。
[0079] 优选的,该实施例中,当前网络抖动延时为DMtwOTk(t),目标缓冲延时的最小阀值为 D_,目标缓冲延时的最大阀值最小值为D__,目标缓冲延时的最大阀值的最大值为D__, 根据阀值和语音无参考分数QA,计算目标缓冲延时D ta_t (t):
[0080] 所述目标缓冲延时Dta_t(t)可以基于以下公式计算:
[0081]
[0082] 其中,f⑴为根据QA(t)算出来的可损伤因子,在尽量确保QA(t)彡Q_,Q_为可 接受的最小语音无参考分数,Q_为最大的语音无参考分数。
[0083] 其中
[0084] 在步骤S207中,结合所述目标缓冲延时、当前所述缓冲延时以及所述语音无参考 分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
[0085] 可以理解的是,所述预设策略可预先设置于服务器中,所述预设策略可以具体指 示根据当前的网络状况,对语音数据执行的相应的调速操作,从而通过语音数据的调速操 作实现对抖动缓冲区的大小的调整。
[0086] 其中,本实施例中所述当前的网络状况可以通过步骤S205及步骤S206得到的目 标缓冲延时,以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区 随着网络抖动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
[0087] 由上述可知,本实施例提供的语音抖动缓冲区的调整方法中,对待播放的语音数 据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓 冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖 动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对 抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢 包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
[0088] 第三实施例
[0089] 请参阅图3,图3为本发明第三实施例提供的语音抖动缓冲区的调整方法的流程 示意图。同上述实施例,所述语音抖动缓冲区的调整方法基于一接收终端服务器上运行,所 述接收终端上设置有抖动缓冲区。
[0090] 区别于第二实施例,本实施例主要针对抖动策略算法,即对对所述语音数据包所 属的抖动缓冲区的大小进行调整的过程进行详细分析。所述方法包括:
[0091] 在步骤S301中,获取待播放的语音数据的网络抖动延时和缓冲延时。
[0092] 优选的,在所述获取待播放的语音数据的网络抖动延时和缓冲延时之前,还可以 包括以下步骤:
[0093] 接收网络语音数据包;对所述网络语音数据包进行纠错处理;将纠错处理后的网 络语音数据包的数据确定为待播放的语音数据。
[0094] 也就是说,服务器在接收到网络语音数据包后,把经过前向纠错和后向纠错处理, 且经过解码后的语音包确定为待播放的语音数据,其后根据语音数据的到达间隔统计网络 抖动延时和缓冲延时,以体现当前的网络状况,进而根据当前的网络状况实时的对抖动缓 冲区的大小进行自适应动态调整。
[0095] 可以理解的是,所述网络抖动延时和所述缓冲延时的生成可以参考第二实例步骤 S203的相关描述进行实现,此处不再具体阐述;另外,此处举例仅为解释说明,所述网络抖 动延时和所述缓冲延时也可以分别根据预设时间段内的平均抖动和平均延时来生成,此处 不作具体限定。
[0096] 在步骤S302中,对所述语音数据进行卡顿检测,确定语音无参考分数。
[0097] 本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由人耳 主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以基于 卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结果更 加客观。
[0098] 可以理解的是,所述语音无参考分数的计算和确定可以参考第二实例步骤S204 的相关描述进行实现,此处不再具体阐述。
[0099] 在步骤S303中,根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动 延时进行修正,得到目标缓冲延时。
[0100] 可具体的,可先根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最大阈 值以及语音缓冲损失因子,再根据所述缓冲延时和所述语音无参考分数这两个参数,对当 前所述网络抖动延时进行修正,得到目标缓冲延时,以在确保语音质量的情况下,可以适当 的减少网络抖动延时,得出目标缓冲延时。
[0101] 可以理解的是,所述目标缓冲延时的计算和确定可以参考第二实例步骤S205和 步骤S206的相关描述进行实现,此处不再具体阐述。
[0102] 在步骤S304中,获取所述语音数据的包序号以及包时戳;
[0103] 在步骤S305中,根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调 整方式。
[0104] 本实施例中,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整三种;其 中,所述抖动缓冲区大小的调整方式可具体基于以下步骤进行确定:
[0105] 步骤A、根据所述包序号以及所述包时戳,判断所述语音数据是否连续;
[0106] 步骤A1、若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不调 整;
[0107] 步骤A2、若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设 运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
[0108] 可以理解的是,当确定出所述语音数据不连续时,可直接确定所述抖动缓冲区大 小的调整方式为不调整;当确定出所述语音数据连续时,需要结合考虑预设运行调速条件 对调整方式进行判断,其中,所述运行调速条件可以根据实际操作情况预先设置于接收终 端的服务器中。
[0109] 该实施例中,所述运行调速条件可理解为允许调速条件,譬如:为了确保语音质 量,该运行调速条件可以定义为:语音帧为连续低能量帧率允许调整,或者语音帧率连续6 帧语音数据只进行一次调速;则可具体限定目标缓冲延时与网络抖动延时的关系,以确定 出所述抖动缓冲区大小的调整方式。
[0110] 进一步优选的,在所述语音数据连续的情况下,当在目标缓冲延时小于网络抖动 延时75%且满足所述运行调速条件时,确定所述抖动缓冲区大小的调整方式为调大;当在 目标缓冲延时大于网络抖动延时加20m且满足运行调速条件时,确定所述抖动缓冲区大小 的调整方式为调小;在其他情况时,确定所述抖动缓冲区大小的调整方式为不调整。
[0111] 可容易想到的是,此处运行调速条件以及具体情形的举例仅为本方案的一种可实 现方式,并不构成对本发明实现的限定。
[0112] 在步骤S306中,根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处 理。
[0113] 优选的,在确定所述抖动缓冲区大小的调整方式后,根据其进行相对应的处理操 作,可包括:
[0114] -、若确定出所述抖动缓冲区大小的调整方式为调大,则对所述语音数据进行拉 升慢播处理;即语音数据需要进行减速,以调大抖动缓冲区的大小。
[0115] 二、若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压 缩加速快播处理;与第一种情形相反,所述语音数据需要进行加速,以调小抖动缓冲区的大 小。
[0116] 三、若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据不连续, 则对所述语音数据进行丢包隐藏处理;
[0117] 四、若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则 对所述语音数据进行正常处理。
[0118] 在第三种情形与第四种情形下,都不需要对抖动缓冲区的大小进行调整;当语音 数据不连续进行丢包隐藏处理,当语音数据连续进行正常处理。
[0119] 其中,对所述语音数据进行正常处理就是指对语音数据不调速,直接进行播放;一 般情况下,当确定出所述语音数据为不连续时,则可对所述语音数据进行丢包隐藏处理,即 不调整所述抖动缓冲区的大小。
[0120] 步骤S304至步骤S306为抖动缓冲区大小的具体调整方式,根据当前的网络状况, 对语音数据执行相应的调速操作,从而通过语音数据的调速操作实现对抖动缓冲区的大小 的调整。
[0121] 其中,本实施例中所述当前的网络状况可以通过步骤S303得到的目标缓冲延时, 以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区随着网络抖 动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
[0122] 在更为优选的实现方式下,根据播放缓冲区中当前仍然还有的数据长度,可再设 定判断语音数据调速的条件:
[0123] 1、如果所述语音数据不连续,播放缓冲区数据大于20ms,那么可确定数据足够播 放,本次不需要做丢包隐藏操作,否则做丢包隐藏操作,然后正常播放,不调速。
[0124] 2、如果所述语音数据连续,需要加速,那么需要确保有足够数据,即如播放缓冲区 及解码出来的语音数据大于40ms,则语音数据加速处理,否则数据不足,则不进行加速。
[0125] 3、如果所述语音数据连续,不需要调速,播放缓冲区数据不足20ms,解码抖动缓冲 区中的数据到播放缓冲区,直到播放缓冲区数据大于20ms,则进行正常播放。
[0126] 4、如果所述语音数据连续,需要拉升(减速)操作,如果播放缓冲区数据大于 40ms,或者解码抖动缓冲区中数据以及播放缓冲区中数据大于20ms,则进行减速,减速需要 确保一定有一帧的语音数据,否则不进行减速处理。
[0127] 由上述可知,本实施例提供的语音抖动缓冲区的调整方法中,对待播放的语音数 据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓 冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖 动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对 抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢 包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
[0128] 第四实施例
[0129] 为便于更好的实施本发明实施例提供的语音抖动缓冲区的调整方法,本发明实施 例还提供一种基于上述语音抖动缓冲区的调整方法的装置。其中名词的含义与上述语音抖 动缓冲区的调整的方法中相同,具体实现细节可以参考方法实施例中的说明。
[0130] 请参阅图4,图4为本发明实施例提供的语音抖动缓冲区的调整装置的结构示意 图,其中所述语音抖动缓冲区的调整装置可基于一接收终端服务器上运行,所述接收终端 上设置有抖动缓冲区(即JitterBuffer),所述抖动缓冲区将接收到的语音数据包按照时 间进行缓存,然后顺序的按固定时间间隔进行播放语音数据。
[0131] 如图4所示,本发明所述语音抖动缓冲区的调整装置可以包括获取模块401、检测 模块402、修正模块403以及调整模块404。
[0132] 其中,所述获取模块401,用于获取待播放的语音数据的网络抖动延时和缓冲延 时;所述检测模块402,用于对所述语音数据进行卡顿检测,确定语音无参考分数。
[0133] 本发明实施例中,待播放的语音数据为网络上接收到的经过纠错处理且解码后的 语音数据;根据待播放的语音数据的网络抖动延时和缓冲延时,检测到当前的网络状况,进 而根据当前的网络状况实时的对抖动缓冲区的大小进行自适应动态调整。
[0134] 可以理解的是,所述网络抖动延时和所述缓冲延时可以分别根据预设时间段内的 平均抖动和平均延时来生成,也可以根据语音数据包的到达间隔进行统计生成,此处对网 络抖动延时和缓冲延时的生成方式不作具体限定。
[0135] 另外,本实施例中所述语音无参考分数是根据卡顿检测得到,具体的,其主要是由 人耳主观感受到的卡顿以及人耳感觉不到的卡顿计算得出。由于语音数据的音频部分是以 基于卡顿检测统计的,因此检测过程可以不用考虑网络的丢包模型,从实际的卡顿入手,结 果更加客观。
[0136] 所述修正模块403,用于根据所述缓冲延时和所述语音无参考分数,对当前所述 网络抖动延时进行修正,得到目标缓冲延时;所述调整模块404,用于结合所述目标缓冲延 时、当前所述缓冲延时以及所述语音无参考分数,按照预设策略对所述语音数据所属的抖 动缓冲区的大小进行调整。
[0137] 可以理解的是,当网络抖动比较大的情况下,如果一味的增加抖动缓冲区的大小, 会导致用户的语音延时会偏大,也会影响语音的体验。因此,该实施例中,根据当前的缓冲 延时和语音无参考分数这两个参数对所述网络抖动延时进行修正,在确保语音质量的情况 下,可以适当的减少网络抖动延时,得出目标缓冲延时。
[0138] 另容易想到的是,所述预设策略可预先设置于服务器中,所述预设策略可以具体 指示根据当前的网络状况,对语音数据执行的相应的调速操作,从而通过语音数据的调速 操作实现对抖动缓冲区的大小的调整。
[0139] 其中,本实施例中所述当前的网络状况可以通过所述修正模块403得到的目标缓 冲延时实时,以及当前所述缓冲延时以及所述语音无参考分数来表征,即所述抖动缓冲区 随着网络抖动、延时的变化而不断动态调整,且可实现语音延时和语音质量的最佳平衡。
[0140] 由上述可知,本实施例提供的语音抖动缓冲区的调整装置中,对待播放的语音数 据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓 冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖 动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对 抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢 包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
[0141] 第五实施例
[0142] 请参阅图5,图5为本发明实施例提供的语音抖动缓冲区的调整装置的结构示意 图,其中所述语音抖动缓冲区的调整装置包括:获取模块501、检测模块502、修正模块503 以及调整模块504,其中,该实施例中上述各功能模块的功能作用可对应参考第四实施例中 的获取模块401、检测模块402、修正模块403以及调整模块404的相关描述,此处不作赘 述。
[0143] 在某些实施方式中,所述语音抖动缓冲区的调整装置还可以包括接收模块505、纠 错模块506以及确定模块507 ;其中所述接收模块505,用于接收网络语音数据包;所述纠 错模块506,用于对所述网络语音数据包进行纠错处理;所述确定模块507,用于将纠错处 理后的网络语音数据包的数据确定为待播放的语音数据。
[0144] 进一步,可具体的,所述获取模块501包括第一获取单元,用于获取网络抖动延 时,包括:计算所述语音数据的到达间隔;根据所述到达间隔生成遗忘因子更新概率分布; 根据所述遗忘因子更新概率分布以及预设间隔进行峰值检测,获取目标到达间隔;根据所 述目标达到间隔生成所述语音数据的网络抖动延时。
[0145] 可以理解的是,计算语音数据的到达间隔之前还可以获取所述语音数据的包序号 以及包时戳,其后根据所述包序号以及所述包时戳,计算所述语音数据的到达间隔;根据所 述到达间隔生成遗忘因子更新概率分布,在所述遗忘因子更新概率分布中确定出概率和满 足某一阈值(如优选为95%)的到达间隔,跟预设间隔进行峰值检测,将较大值确定为所 述目标到达间隔,最后根据所述目标达到间隔以及数据包长度得到语音数据的网络抖动延 时。
[0146] 所述获取模块501包括第二获取单元,用于获取缓冲延时,包括:根据所述网络抖 动延时确定对应的遗忘因子;根据所述遗忘因子生成所述语音数据的缓冲延时。
[0147] 具体的,定义缓冲延时为L,遗忘因子f,当当前的网络抖动延时越大,遗忘因子f 就越小,计算缓冲延时的公式可如下:
[0148] L (n) = f*L (n_l) + (l_f) *L (η);
[0149] 其中本实施例中可默认f = 0.98。可以理解的是,在某些更为精准的实施方式 中,所述遗忘因子f可以根据当前的网络抖动延时及缓冲包个数等来确定,此处不作具体 描述,此处举例不构成对本发明的限定。
[0150] 所述检测模块502对所述语音数据进行卡顿检测,确定语音无参考分数;
[0151] 可具体的,所述语音无参考分数主要是由人耳主观感受到的卡顿以及人耳感觉不 到的卡顿计算得出;统计一预设时间段内的卡顿次数BJPB S。其中&是指人耳主观能够感 觉得到的卡顿;BS是指人耳感觉不到卡顿但体现出来是失真。
[0152] 其中,山,a7, as,a9为拟合常数,通过模拟不同的卡顿参数的主观语音质量评估 PESQ拟合出来最佳的常数值。
[0153] 可以理解的是,所述预设时间段可根据当前网络状况及数据包大小来确定,本实 施例可优选为12S或者16S等等,此处举例不构成对发明实现的限定。
[0154] 优选的,所述修正模块503可以包括第一确定单元5031以及修正单元5032 ;其中 所述第一确定单元5031,用于根据所述缓冲延时和所述语音无参考分数,确定缓冲延时最 大阈值以及语音缓冲损失因子;所述修正单元5032,用于根据所述缓冲延时最大阈值以及 所述语音缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
[0155] 假设,该实施例中,当前网络抖动延时SDnetw"k(t),目标缓冲延时的最小阀值为 D_,目标缓冲延时的最大阀值最小值为D__,目标缓冲延时的最大阀值的最大值为D__, 根据阀值和语音无参考分数QA,计算目标缓冲延时D ta_t (t):
[0156] 所述目标缓冲延时Dta_(t)可以基于以下公式计算:
[0157]
[0158] 其中,f(t)为根据QA(t)算出来的可损伤因子,在尽量确保QA(t)彡Q_,Q_为可 接受的最小语音无参考分数,Q_为最大的语音无参考分数。
[0159] 其中
[0160] 所述调整模块504可以包括获取单元5041、第二确定单元5042以及调整处理单 元5043 ;其中所述获取单元5041,用于获取所述语音数据的包序号以及包时戳;所述第二 确定单元5042,用于根据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方 式,所述抖动缓冲区大小的调整方式包括调大、调小以及不调整;所述调整处理单元5043, 用于根据所述抖动缓冲区大小的调整方式对语音数据进行相应的处理。
[0161] 其中,所述抖动缓冲区大小的调整方式可具体基于所述第二确定单元5042中的 功能子单元进行确定,包括:
[0162] 判断子单元,用于根据所述包序号以及所述包时戳,判断所述语音数据是否连续; 第一确定子单元,用于若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为 不调整;第二确定子单元,用于若所述语音数据连续,则根据所述目标缓冲延时、网络抖动 延时以及预设运行调速条件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调 整。
[0163] 可以理解的是,当确定出所述语音数据不连续时,可直接确定所述抖动缓冲区大 小的调整方式为不调整;当确定出所述语音数据连续时,需要结合考虑预设运行调速条件 对调整方式进行判断,其中,所述运行调速条件可以根据实际操作情况预先设置于接收终 端的服务器中。
[0164] 该实施例中,所述运行调速条件可理解为允许调速条件,譬如:为了确保语音质 量,该运行调速条件可以定义为:语音帧为连续低能量帧率允许调整,或者语音帧率连续6 帧语音数据只进行一次调速;则可具体限定目标缓冲延时与网络抖动延时的关系,以确定 出所述抖动缓冲区大小的调整方式。
[0165] 进一步优选的,在所述语音数据连续的情况下,当在目标缓冲延时小于网络抖动 延时75%且满足所述运行调速条件时,确定所述抖动缓冲区大小的调整方式为调大;当在 目标缓冲延时大于网络抖动延时加20m且满足运行调速条件时,确定所述抖动缓冲区大小 的调整方式为调小;在其他情况时,确定所述抖动缓冲区大小的调整方式为不调整。
[0166] 可容易想到的是,此处运行调速条件以及具体情形的举例仅为本方案的一种可实 现方式,并不构成对本发明实现的限定。
[0167] 优选的,在确定所述抖动缓冲区大小的调整方式后,根据其进行相对应的处理操 作,基于此,所述调整处理单元5043可以包括:第一调整处理子单元,用于若确定出所述抖 动缓冲区大小的调整方式为调大,则对所述语音数据进行拉升慢播处理;第二调整处理子 单元,用于若确定出所述抖动缓冲区大小的调整方式为调小,则对所述语音数据进行压缩 加速快播处理;第三调整处理子单元,用于若确定出所述抖动缓冲区大小的调整方式为不 调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;第四调整处理子单 元,用于若确定出所述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所 述语音数据进行正常处理。
[0168] 在更为优选的实现方式下,根据播放缓冲区中当前仍然还有的数据长度,可再设 定判断语音数据调速的条件,例如:如果所述语音数据不连续,播放缓冲区数据大于20ms, 那么可确定数据足够播放,本次不需要做丢包隐藏操作,否则做丢包隐藏操作,然后正常播 放,不调速。又如,如果所述语音数据连续,需要加速,那么需要确保有足够数据,即如播放 缓冲区及解码出来的语音数据大于40ms,则语音数据加速处理,否则数据不足,则不进行加 速。又如,如果所述语音数据连续,不需要调速,播放缓冲区数据不足20ms,解码抖动缓冲区 中的数据到播放缓冲区,直到播放缓冲区数据大于20ms,则进行正常播放。又如,如果所述 语音数据连续,需要拉升(减速)操作,如果播放缓冲区数据大于40ms,或者解码抖动缓冲 区中数据以及播放缓冲区中数据大于20ms,则进行减速,减速需要确保一定有一帧的语音 数据,否则不进行减速处理。
[0169] 由上述可知,本实施例提供的语音抖动缓冲区的调整装置中,对待播放的语音数 据进行卡顿检测,确定语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓 冲延时,对当前网络抖动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖 动延时,得出目标缓冲延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对 抖动缓冲区的大小进行调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢 包、乱序等场景,提升用户在移动互联网中使用语音通话的质量。
[0170] 第六实施例
[0171] 本发明实施例还提供一种服务器,其中可以集成本发明实施例的语音抖动缓冲区 的调整装置,所述服务器可基于一接收终端服务器上运行,所述接收终端上设置有抖动缓 冲区,所述抖动缓冲区将接收到的语音数据包按照时间进行缓存,然后顺序的按固定时间 间隔进行播放语音数据。如图6所示,其示出了本发明实施例所涉及的服务器的结构示意 图,具体来讲:
[0172] 该服务器可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计 算机可读存储介质的存储器602、射频(Radio Frequency,RF)电路603、电源604、输入单 元605、以及显示单元606等部件。本领域技术人员可以理解,图6中示出的服务器结构并 不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同 的部件布置。其中:
[0173] 处理器601是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个 部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器 602内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处 理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处 理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要 处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。
[0174] 存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602 的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储 程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序 (比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的 数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例 如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还 可以包括存储器控制器,以提供处理器601对存储器602的访问。
[0175] RF电路603可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信 息接收后,交由一个或者一个以上处理器601处理;另外,将涉及上行的数据发送给基站。 通常,RF电路603包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身 份模块(S頂)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器 等。此外,RF电路603还可以通过无线通信与网络和其他设备通信。所述无线通信可以使 用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址 (CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS, Short Messaging Service)等。
[0176] 服务器还包括给各个部件供电的电源604(比如电池),优选的,电源可以通过电 源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗 管理等功能。电源604还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故 障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0177] 该服务器还可包括输入单元605,该输入单元605可用于接收输入的数字或字符 信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号 输入。
[0178] 该服务器还可包括显示单元606,该显示单元606可用于显示由用户输入的信息 或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文 本、图标、视频和其任意组合来构成。显示单元608可包括显示面板,可选的,可以采用液晶 显不器(LCD,Liquid Crystal Display)、有机发光二极管(0LED,0rganic Light-Emitting Diode)等形式来配置显示面板。
[0179] 具体在本实施例中,服务器中的处理器601会按照如下的指令,将一个或一个以 上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储 在存储器602中的应用程序,从而实现各种功能,如下:
[0180] 获取待播放的语音数据的网络抖动延时和缓冲延时;对所述语音数据进行卡顿检 测,确定语音无参考分数;根据所述缓冲延时和所述语音无参考分数,对当前所述网络抖动 延时进行修正,得到目标缓冲延时;结合所述目标缓冲延时、当前所述缓冲延时以及所述语 音无参考分数,按照预设策略对所述语音数据所属的抖动缓冲区的大小进行调整。
[0181] 优选的,所述处理器601还可以用于:根据所述缓冲延时和所述语音无参考分数, 确定缓冲延时最大阈值以及语音缓冲损失因子;根据所述缓冲延时最大阈值以及所述语音 缓冲损失因子,对当前所述网络抖动延时进行修正,得到目标缓冲延时。
[0182] 优选的,所述处理器601还可以用于:获取所述语音数据的包序号以及包时戳;根 据所述包序号以及所述包时戳确定所述抖动缓冲区大小的调整方式,所述抖动缓冲区大小 的调整方式包括调大、调小以及不调整;根据所述抖动缓冲区大小的调整方式对语音数据 进行相应的处理。
[0183] 优选的,所述处理器601还可以用于:根据所述包序号以及所述包时戳,判断所述 语音数据是否连续;若所述语音数据不连续,则确定所述抖动缓冲区大小的调整方式为不 调整;若所述语音数据连续,则根据所述目标缓冲延时、网络抖动延时以及预设运行调速条 件,确定所述抖动缓冲区大小的调整方式为调大或调小或不调整。
[0184] 优选的,所述处理器601还可以用于:若确定出所述抖动缓冲区大小的调整方式 为调大,则对所述语音数据进行拉升慢播处理;若确定出所述抖动缓冲区大小的调整方式 为调小,则对所述语音数据进行压缩加速快播处理;若确定出所述抖动缓冲区大小的调整 方式为不调整,且所述语音数据不连续,则对所述语音数据进行丢包隐藏处理;若确定出所 述抖动缓冲区大小的调整方式为不调整,且所述语音数据连续,则对所述语音数据进行正 常处理。
[0185] 优选的,所述处理器601还可以用于:在获取待播放的语音数据的网络抖动延时 和缓冲延时之前,接收网络语音数据包;对所述网络语音数据包进行纠错处理;将纠错处 理后的网络语音数据包的数据确定为待播放的语音数据。
[0186] 优选的,所述处理器601还可以用于:计算所述语音数据的到达间隔;根据所述到 达间隔生成遗忘因子更新概率分布;根据所述遗忘因子更新概率分布以及预设间隔进行峰 值检测,获取目标到达间隔;根据所述目标达到间隔生成所述语音数据的网络抖动延时。
[0187] 优选的,所述处理器601还可以用于:根据所述网络抖动延时确定对应的遗忘因 子;根据所述遗忘因子生成所述语音数据的缓冲延时。
[0188] 由上述可知,本实施例提供的服务器中,对待播放的语音数据进行卡顿检测,确定 语音无参考分数;根据语音无参考分数以及待播放的语音数据的缓冲延时,对当前网络抖 动延时进行修正,在确保语音质量的情况下,可以适当的减少网络抖动延时,得出目标缓冲 延时;并结合目标缓冲延时、当前缓冲延时以及语音无参考分数,对抖动缓冲区的大小进行 调整,可以让互联网语音通话快速适应网络变化,包括网络抖动、丢包、乱序等场景,提升用 户在移动互联网中使用语音通话的质量。
[0189] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部 分,可以参见上文针对语音抖动缓冲区的调整方法的详细描述,此处不再赘述。
[0190] 本发明实施例提供的所述语音抖动缓冲区的调整装置,譬如为计算机、平板电脑、 具有触摸功能的手机等等,所述语音抖动缓冲区的调整装置与上文实施例中的语音抖动缓 冲区的调整方法属于同一构思,在所述语音抖动缓冲区的调整装置上可以运行所述语音抖 动缓冲区的调整方法实施例中提供的任一方法,其具体实现过程详见所述语音抖动缓冲区 的调整方法实施例,此处不再赘述。
[0191] 需要说明的是,对本发明所述语音抖动缓冲区的调整方法而言,本领域普通测试 人员可以理解实现本发明实施例所述语音抖动缓冲区的调整方法的全部或部分流程,是可 以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存 储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中 可包括如所述语音抖动缓冲区的调整方法的实施例的流程。其中,所述的存储介质可为 磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
[0192] 对本发明实施例的所述语音抖动缓冲区的调整装置而言,其各功能模块可以集成 在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在 一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形 式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用 时,也可以存储在一个计算机可读取存储介质中,所述存储介质譬如为只读存储器,磁盘或 光盘等。
[0193] 以上对本发明实施例所提供的一种语音抖动缓冲区的调整方法及装置进行了详 细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发 明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理 解为对本发明的限制。
【主权项】
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任一项所述的语音抖动缓冲区的调整装置,其特征在于,所述 获取模块包括第二获取单元,用于获取缓冲延时,包括:根据所述网络抖动延时确定对应的 遗忘因子;根据所述遗忘因子生成所述语音数据的缓冲延时。
【文档编号】H04L12/885GK105991477SQ201510071060
【公开日】2016年10月5日
【申请日】2015年2月11日
【发明人】肖益剑
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1