买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种用于前端实时语音聊天的语音平滑播放方法_竞技世界(北京)网络技术有限公司_201811403270.1 

申请/专利权人:竞技世界(北京)网络技术有限公司

申请日:2018-11-23

公开(公告)日:2021-04-13

公开(公告)号:CN109379168B

主分类号:H04L1/00(20060101)

分类号:H04L1/00(20060101);H04L1/18(20060101);H04L12/58(20060101);H04L29/06(20060101);H04L29/08(20060101);H04M1/725(20210101);G10L19/00(20130101)

优先权:

专利状态码:有效-授权

法律状态:2021.04.13#授权;2019.03.19#实质审查的生效;2019.02.22#公开

摘要:一种用于前端实时语音聊天的语音平滑播放方法,包括接收RTP数据包,将其送入QoS模块的待处理缓存队列中;检测数据包是否有丢失;组成丢失重传报文发往数据包的发送端;更新当前时间跨度内抖动的标准差stdev和均值average;将数据包按照序列号递增的顺序放入待解码缓冲区;将解码后的数据送入播放缓存队列中;计算播放缓存队列的总延迟值delay;获取当前时间跨度内抖动的标准差stdev和均值average并更新;设定可容忍的播放缓存队列延迟值;确定加速或减速比例的值tempo;提取预定时间内处理后的语音数据进行播放。

主权项:1.一种用于前端实时语音聊天的语音平滑播放方法,包括如下步骤:S101、接收RTP数据包,将其送入QoS模块的待处理缓存队列中;S102、在QoS模块中检测数据包是否有丢失;当判断结果为是,则执行S103,当判断结果为否,则跳过S103直接执行S104;S103、将丢失RTP数据包的序列号组成丢失重传报文发往数据包的发送端,继续执行S104;S104、在QoS模块中用当前接收到RTP数据包的抖动值更新当前时间跨度内抖动的标准差stdev和均值average;S105、将数据包按照序列号递增的顺序放入待解码缓冲区,再从待解码缓冲区取出数据送入解码器解码;S106、将解码后的数据送入播放缓存队列中;计算播放缓存队列的总延迟值delay;S107、获取当前时间跨度内抖动的标准差stdev和均值average,每一次有新的数据包到来的时候抖动的标准差stdev和均值average在S104步骤中进行更新;S108、设定可容忍的播放缓存队列延迟值m_wl_low,其过程包含如下步骤:S301、获取当前时间跨度内的抖动的标准差stdev和均值average,计算两者之和jit;S302、判断如果当前时间跨度内抖动的标准差和均值之和jit是否大于50ms,如果是、则执行S303,如果否、则执行S306;S303、判断当前时间跨度内的抖动的标准差stdev和均值average之和jit是否大于150ms,如果是、则执行S304,如果否、则执行S305;S304、设置可容忍的播放缓存队列延迟值m_wl_low的值为150ms,结束;S305、设置可容忍的播放缓存队列延迟值m_wl_low的值为jit,结束;S306、设置可容忍的播放缓存队列延迟值m_wl_low的值为50ms,结束;S109、根据现有播放缓存队列的总延迟值delay,确定播放时应采用加速还是减速策略并确定加速或减速比例的值tempo,其过程包含如下步骤:S401、获取S106中计算得到的播放缓存队列的总延迟delay;S402、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的3倍,是则表示语音播放缓冲区中积压了大量的数据,需要加速播放进而执行S403,否则实行S404;S403、设置加速比例tempo为1.5倍速度播放,结束;S404、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的2倍,如果是、则执行S405,如果否、则实行S406;S405、设置加速比例tempo为1.25倍速度播放,结束;S406、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.4倍,如果是、则执行S407;如果否、则实行S408;S407、设置减速比例tempo为0.5倍速度播放,结束;S408、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.8倍,如果是、则执行S409,如果否、则实行S4010;S409、设置减速比例为0.8倍速度播放,结束;S4010、设置加速比例tempo为1,不进行任何加速或减速操作,结束;S1010、提取预定时间内在语音播放缓冲区经过加速或者减速处理后的语音数据去播放,提取出的预定时间内的数据由原语音播放缓冲区中大于或小于预定时间的数据经过加速或减速处理产生。

全文数据:一种用于前端实时语音聊天的语音平滑播放方法技术领域本发明涉及游戏技术领域,特别涉及一种用于前端实时语音聊天的语音平滑播放方法。背景技术随着移动设备性能的大幅度提升,移动端游戏也逐渐从小游戏向更追求极致体验的大型游戏发展。除了游戏本身的乐趣,游戏所包含的社交属性也逐渐得到了玩家的青睐,对于团队协作类游戏来讲,实时语音交流逐渐成为必不可少的需求,游戏中清晰有效的沟通会增加团队协作的乐趣,极大的提高用户粘性。然而移动设备上的专用的聊天软件例如:微信语音、QQ语音等难以做到在资源紧张的情况下不影响玩家的游戏体验,因此内置的语音聊天功能已成为高品质游戏必然选择。但由于网络抖动和网络拥塞等不确定性因素,接收端语音播放缓冲区中的数据量通常会具有较大的波动,接收端不能够根据播放缓冲区中现存的数据量独立地调整播放速度,以保证数据量的平稳以及数据合理的输出,导致语音聊天的过程中发生语音卡顿,如果网络状况比较差,这种现象将尤为严重,使得用户体验极差,实时语音功能也就失去了它原本存在的意义。发明内容针对现有技术的上述不足,本发明提供了一种用于前端实时语音聊天的语音平滑播放方法,可以通过对PCM数据进行的语音拉伸和语音压缩操作,控制语音播放的速度,在通话过程中最大程度的保证播放缓冲区中的数据量稳定,减小数据溢出和赤字的频率,实现语音的平滑播放。其中,一种用于前端实时语音聊天的语音平滑播放方法,包括如下步骤:一种用于前端实时语音聊天的语音平滑播放方法,包括如下步骤:S101、接收RTP数据包,将其送入QoS模块的待处理缓存队列中;S102、在QoS模块中检测数据包是否有丢失;当判断结果为是,则执行S103,当判断结果为否,则跳过S103直接执行S104;S103、将丢失RTP数据包的序列号组成丢失重传报文发往数据包的发送端,继续执行S104;S104、在QoS模块中用当前接收到RTP数据包的抖动值更新当前时间跨度内抖动的标准差stdev和均值average;S105、将数据包按照序列号递增的顺序放入待解码缓冲区,再从待解码缓冲区取出数据送入解码器解码;S106、将解码后的数据送入播放缓存队列中;计算播放缓存队列的总延迟值delay;S107、获取当前时间跨度内抖动的标准差stdev和均值average,每一次有新的数据包到来的时候抖动的标准差stdev和均值average在S104步骤中进行更新;S108、设定可容忍的播放缓存队列延迟值m_wl_low;S109、根据现有播放缓存队列的总延迟值delay,确定播放时应采用加速还是减速策略并确定加速或减速比例的值tempo;S1010、提取预定时间内在语音播放缓冲区经过加速或者减速处理后的语音数据去播放,提取出的预定时间内的数据由原语音播放缓冲区中大于或小于预定时间的数据经过加速或减速处理产生。优选地,通过解析当前接收到RTP数据包的序列号,若发现前一个数据包的序列号与当前数据包的序列号不连续,表明前一个数据包丢失;如果序列号连续则表明当前数据包没有丢失。优选地,当前时间跨度内抖动的标准差stdev和均值average的统计值之和小于50ms时,设定可容忍的播放缓存队列延迟值m_wl_low为50ms;当前时间跨度内抖动的标准差stdev和均值average之和大于50ms时,设定可容忍的播放缓存队列延迟值m_wl_low为抖动的标准差stdev和均值average之和;设定可容忍的播放缓存队列延迟值的上限为150ms。优选地,所述预定时间为10ms。优选地,上述S104进一步包含如下步骤:S201、输入当前接收数据包的抖动值value;S202、设置计数时间起始值startTick,判断startTick起始值是否为0ms,如果是、则执行S203,如果否、则执行S204;S203、将startTick设为当前系统时间戳tick减去毫秒为单位的计数时间跨度timeSpan的一半;S204、用当前接收数据包的抖动值value更新阶段均值总和sum和均值平方和sum2,count表示当前时间跨度内的数据包输入计数,更新count;S205、判断当前系统时间戳距计数时间起始值startTick的计数时间是否超过了1000ms,如果是、则执行S206,如果否、则执行S208;S206、判断数据包输入计数count是否大于1,是则执行S207,否则执行S208;S207、更新当前时间跨度内抖动的标准差值stdev;公式为当前时间跨度内抖动的均值average;公式为和当前时间跨度内抖动平方的均值average2;公式为执行S208;S208、判断当前时间跨度的值计算方式:当前系统时间戳tick减计数时间起始值startTick是否大于毫秒计数时间跨度的值计算方式:timeSpan*1000ms,是则执行S209,否则退出;S209、用数据包输入计数count除以当前时间跨度值更新当前时间跨度内的计数频率countRate,用S203同样的规则更新计数时间起始值startTick,用当前时间跨度内的计数频率countRate乘以当前时间跨度的值更新当前时间跨度内的数据包输入计数count,以同样方式更新当前时间跨度内的均值总和sum和均值平方和sum2。优选地,所述当前时间跨度内抖动的标准差值stdev的计算公式为优选地,所述当前时间跨度内抖动的均值average的计算公式为优选地,所述当前时间跨度内抖动平方的均值average2的计算公式为优选地,上述S108进一步包含如下步骤:S301、获取当前时间跨度内的抖动的标准差stdev和均值average,计算两者之和jit;S302、判断如果当前时间跨度内抖动的标准差和均值之和jit是否大于50ms,如果是、则执行S303,如果否、则执行S306;S303、判断当前时间跨度内的抖动的标准差stdev和均值average之和jit是否大于150ms,如果是、则执行S304,如果否、则执行S305;S304、设置可容忍的播放缓存队列延迟值m_wl_low的值为150ms,结束;S305、设置可容忍的播放缓存队列延迟值m_wl_low的值为jit,结束;S306、设置可容忍的播放缓存队列延迟值m_wl_low的值为50ms,结束。优选地,上述S109进一步包含如下步骤:S401、获取S106中计算得到的播放缓存队列的总延迟delay;S402、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的3倍,是则表示语音播放缓冲区中积压了大量的数据,需要加速播放进而执行S403,否则实行S404;S403、设置加速比例tempo为1.5倍速度播放,结束;S404、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的2倍,如果是、则执行S405,如果否、则实行S406;S405、设置加速比例tempo为1.25倍速度播放,结束;S406、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.4倍,如果是、则执行S407;如果否、则实行S408;S407、设置减速比例tempo为0.5倍速度播放,结束;S408、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.8倍,如果是、则执行S409,如果否、则实行S4010;S409、设置减速比例为0.8倍速度播放,结束;S4010、设置加速比例tempo为1,不进行任何加速或减速操作,结束。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种接收端的处理流程图;图2是本发明实施例提供的更新标准差及均值的流程图;图3是本发明实施例提供的设置可容忍的播放缓存队列延迟值的流程图;图4是本发明实施例提供的确定加速或减速比例的流程图。具体实施方式为了使本领域技术人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。本发明实施例提供一种基于现有播放缓存队列数据量的语音加速或减速调整方法,如图1所示,接收端接收网络中数据包进行语音拉伸或语音压缩前先进行丢包重传和解码操作的处理,具体包括如下步骤:S101、从网络中接收RTP数据包,将其送入QoS模块的待处理缓存队列中;S102、在QoS模块中检测数据包是否有丢失;当判断结果为是,则执行S103,如果序列号连续则表明当前数据包没有丢失,此时应跳过S103直接执行S104;根据本发明的一个优选实施方式,通过解析当前接收到RTP数据包的序列号,若发现前一个数据包的序列号与当前数据包的序列号不连续,表明前一个数据包丢失此时不进行延时等待操作;S103、将丢失RTP数据包的序列号组成丢失重传报文发往数据包的发送端此时发送端将重新发送丢失的数据包,继续执行S104;S104、在QoS模块中用当前接收到RTP数据包的抖动值更新当前时间跨度根据本发明的一个优选实施方式,将时间跨度的值设为固定值1000ms内抖动的标准差stdev和均值average;S105、将数据包按照序列号递增的顺序放入待解码缓冲区,再从待解码缓冲区取出数据送入解码器解码;S106、将解码后的数据送入播放缓存队列中播放缓存队列中数据的时间长度通常需要保持在一个合适的时间范围内,最大程度上保证播放缓存队列在任何时间点上都有数据可以取,以此来实现语音的平滑播放;计算播放缓存队列的总延迟值delay;S107、获取当前时间跨度内抖动的标准差stdev和均值average,每一次有新的数据包到来的时候抖动的标准差stdev和均值average都会在S104步骤中更新;S108、设定可容忍的播放缓存队列延迟值m_wl_low;在实际的语音通话中,播放缓存队列中数据的总延迟值通常会以m_wl_low为标准上下波动,延迟值的选择是自适应的,会受到网络抖动的标准差stdev和均值average的影响,在当前网络情况稳定当前时间跨度内抖动的标准差stdev和均值average的统计值之和小于50ms时,设定可容忍的播放缓存队列延迟值m_wl_low为50ms,在当前网络情况较差时抖动的标准差stdev和均值average之和大于50ms,设定可容忍的播放缓存队列延迟值m_wl_low为抖动的标准差stdev和均值average之和,规定可容忍的播放缓存队列延迟值的上限为150ms;S109、根据现有播放缓存队列的总延迟值delay,确定播放时应采用加速还是减速策略并确定加速或减速比例的值tempo;S1010、提取10ms在语音播放缓冲区经过加速或者减速处理后的语音数据去播放,提取出的10ms数据由原语音播放缓冲区中大于10ms或小于10ms的数据经过加速或减速处理产生。如图2所示,其中上述S104进一步包含如下步骤:S201、输入当前接收数据包的抖动值value;S202、在程序中设置计数时间起始值startTick,该值表示统计数值的那段时间内的时间起点,首先判断startTick起始值是否为0ms,是执行S203,否则执行S204;S203、tick表示当前系统时间戳,以毫秒为单位;timeSpan表示预先设置的计数时间跨度,以秒为单位,将startTick设为当前系统时间戳tick减去毫秒为单位的计数时间跨度timeSpan的一半;S204、用当前接收数据包的抖动值value更新阶段均值总和sum和均值平方和sum2,count表示当前时间跨度内的数据包输入计数,更新count;S205、判断当前系统时间戳距计数时间起始值startTick的计数时间是否超过了1000ms,是则执行S206,否则执行S208;S206、判断数据包输入计数count是否大于1,是则执行S207,否则执行S208。S207、更新当前时间跨度内抖动的标准差值stdev,公式为当前时间跨度内抖动的均值average,公式为和当前时间跨度内抖动平方的均值average2,公式为执行S208;S208、判断当前时间跨度的值计算方式:当前系统时间戳tick减计数时间起始值startTick是否大于毫秒计数时间跨度的值计算方式:timeSpan*1000ms,是则执行S209,否则退出;S209、用数据包输入计数count除以当前时间跨度值更新当前时间跨度内的计数频率countRate,用S203同样的规则更新计数时间起始值startTick,用当前时间跨度内的计数频率countRate乘以当前时间跨度的值更新当前时间跨度内的数据包输入计数count,以同样方式更新当前时间跨度内的均值总和sum和均值平方和sum2。如图3所示,其中上述S108进一步包含如下步骤:S301、获取当前时间跨度内的抖动的标准差stdev和均值average,计算两者之和jit;S302、判断如果当前时间跨度内抖动的标准差和均值之和jit是否大于50ms,是则执行S303,否则执行S306;S303、判断当前时间跨度内的抖动的标准差stdev和均值average之和jit是否大于150ms,是则执行S304,否则执行S305;S304、设置可容忍的播放缓存队列延迟值m_wl_low的值为150ms,结束;S305、设置可容忍的播放缓存队列延迟值m_wl_low的值为jit,结束;S306、设置可容忍的播放缓存队列延迟值m_wl_low的值为50ms,结束。如图4所示,其中上述S109进一步包含如下步骤:S401、获取S106中计算得到的播放缓存队列的总延迟delay;S402、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的3倍,是则表示语音播放缓冲区中积压了大量的数据,需要加速播放进而执行S403,否则实行S404;S403、设置加速比例tempo为1.5倍速度播放,结束;S404、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的2倍,是则表示语音播放缓冲区中积压了大量的数据,需要加速播放进而执行S405,否则实行S406;S405、设置加速比例tempo为1.25倍速度播放,结束;S406、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.4倍,是则表示语音播放缓冲区中的数据量比较少,需要执行S407来减速播放来积累数据,否则实行S408;S407、设置减速比例tempo为0.5倍速度播放,结束;S408、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.8倍,是则表示语音播放缓冲区中的数据量比较少,需要执行S409来减速播放来积累数据,否则实行S4010;S409、设置减速比例为0.8倍速度播放,结束;S4010、设置加速比例tempo为1,不进行任何加速或减速操作,结束。通过实施本发明,可以实现播放缓存队列可容忍延迟值的选取,从而根据网络状况,自适应的选取延迟值;并根据语音播放缓存队列中向现有的数据量确定变速策略,确定加速比或减速比;对语音数据的拉伸和压缩操作从而改变语音播放的速度,保持语音播放缓冲区数据的平稳,降低数据溢出率,相对于未使用任何平滑机制的情况,很大程度上保证了声音的平滑。根据本发明的一个可替代实施方式,可以通过设置足够大的语音播放缓冲区,来实现语音的平滑播放。当缓冲区足够大并且其中缓存的数据足够多时,基本上也可以实现在任何一个时间点都可以提取到语音数据送去播放,这样语音就不会发生卡顿。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

权利要求:1.一种用于前端实时语音聊天的语音平滑播放方法,包括如下步骤:S101、接收RTP数据包,将其送入QoS模块的待处理缓存队列中;S102、在QoS模块中检测数据包是否有丢失;当判断结果为是,则执行S103,当判断结果为否,则跳过S103直接执行S104;S103、将丢失RTP数据包的序列号组成丢失重传报文发往数据包的发送端,继续执行S104;S104、在QoS模块中用当前接收到RTP数据包的抖动值更新当前时间跨度内抖动的标准差stdev和均值average;S105、将数据包按照序列号递增的顺序放入待解码缓冲区,再从待解码缓冲区取出数据送入解码器解码;S106、将解码后的数据送入播放缓存队列中;计算播放缓存队列的总延迟值delay;S107、获取当前时间跨度内抖动的标准差stdev和均值average,每一次有新的数据包到来的时候抖动的标准差stdev和均值average在S104步骤中进行更新;S108、设定可容忍的播放缓存队列延迟值m_wl_low;S109、根据现有播放缓存队列的总延迟值delay,确定播放时应采用加速还是减速策略并确定加速或减速比例的值tempo;S1010、提取预定时间内在语音播放缓冲区经过加速或者减速处理后的语音数据去播放,提取出的预定时间内的数据由原语音播放缓冲区中大于或小于预定时间的数据经过加速或减速处理产生。2.根据权利要求1的用于前端实时语音聊天的语音平滑播放方法,其特征在于:通过解析当前接收到RTP数据包的序列号,若发现前一个数据包的序列号与当前数据包的序列号不连续,表明前一个数据包丢失;如果序列号连续则表明当前数据包没有丢失。3.根据权利要求1或2的用于前端实时语音聊天的语音平滑播放方法,其特征在于:当前时间跨度内抖动的标准差stdev和均值average的统计值之和小于50ms时,设定可容忍的播放缓存队列延迟值m_wl_low为50ms;当前时间跨度内抖动的标准差stdev和均值average之和大于50ms时,设定可容忍的播放缓存队列延迟值m_wl_low为抖动的标准差stdev和均值average之和;设定可容忍的播放缓存队列延迟值的上限为150ms。4.根据权利要求1-3任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于:所述预定时间为10ms。5.根据权利要求1-4任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于,上述S104进一步包含如下步骤:S201、输入当前接收数据包的抖动值value;S202、设置计数时间起始值startTick,判断startTick起始值是否为0ms,如果是、则执行S203,如果否、则执行S204;S203、将startTick设为当前系统时间戳tick减去毫秒为单位的计数时间跨度timeSpan的一半;S204、用当前接收数据包的抖动值value更新阶段均值总和sum和均值平方和sum2,count表示当前时间跨度内的数据包输入计数,更新count;S205、判断当前系统时间戳距计数时间起始值startTick的计数时间是否超过了1000ms,如果是、则执行S206,如果否、则执行S208;S206、判断数据包输入计数count是否大于1,是则执行S207,否则执行S208;S207、更新当前时间跨度内抖动的标准差值stdev;公式为当前时间跨度内抖动的均值average;公式为和当前时间跨度内抖动平方的均值average2;公式为执行S208;S208、判断当前时间跨度的值计算方式:当前系统时间戳tick减计数时间起始值startTick是否大于毫秒计数时间跨度的值计算方式:timeSpan*1000ms,是则执行S209,否则退出;S209、用数据包输入计数count除以当前时间跨度值更新当前时间跨度内的计数频率countRate,用S203同样的规则更新计数时间起始值startTick,用当前时间跨度内的计数频率countRate乘以当前时间跨度的值更新当前时间跨度内的数据包输入计数count,以同样方式更新当前时间跨度内的均值总和sum和均值平方和sum2。6.根据权利要求1-5任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于,所述当前时间跨度内抖动的标准差值stdev的计算公式为7.根据权利要求1-6任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于,所述当前时间跨度内抖动的均值average的计算公式为8.根据权利要求1-7任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于,所述当前时间跨度内抖动平方的均值average2的计算公式为9.根据权利要求1-8任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于,上述S108进一步包含如下步骤:S301、获取当前时间跨度内的抖动的标准差stdev和均值average,计算两者之和jit;S302、判断如果当前时间跨度内抖动的标准差和均值之和jit是否大于50ms,如果是、则执行S303,如果否、则执行S306;S303、判断当前时间跨度内的抖动的标准差stdev和均值average之和jit是否大于150ms,如果是、则执行S304,如果否、则执行S305;S304、设置可容忍的播放缓存队列延迟值m_wl_low的值为150ms,结束;S305、设置可容忍的播放缓存队列延迟值m_wl_low的值为jit,结束;S306、设置可容忍的播放缓存队列延迟值m_wl_low的值为50ms,结束。10.根据权利要求1-9任一的用于前端实时语音聊天的语音平滑播放方法,其特征在于,上述S109进一步包含如下步骤:S401、获取S106中计算得到的播放缓存队列的总延迟delay;S402、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的3倍,是则表示语音播放缓冲区中积压了大量的数据,需要加速播放进而执行S403,否则实行S404;S403、设置加速比例tempo为1.5倍速度播放,结束;S404、判断播放缓存队列的总延迟值delay是否大于可容忍播放缓存队列的延迟值m_wl_low的2倍,如果是、则执行S405,如果否、则实行S406;S405、设置加速比例tempo为1.25倍速度播放,结束;S406、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.4倍,如果是、则执行S407;如果否、则实行S408;S407、设置减速比例tempo为0.5倍速度播放,结束;S408、判断播放缓存队列的总延迟值delay是否小于可容忍播放缓存队列的延迟值m_wl_low的0.8倍,如果是、则执行S409,如果否、则实行S4010;S409、设置减速比例为0.8倍速度播放,结束;S4010、设置加速比例tempo为1,不进行任何加速或减速操作,结束。

百度查询: 竞技世界(北京)网络技术有限公司 一种用于前端实时语音聊天的语音平滑播放方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术