CN109379168A - 一种用于前端实时语音聊天的语音平滑播放方法 - Google Patents

一种用于前端实时语音聊天的语音平滑播放方法 Download PDF

Info

Publication number
CN109379168A
CN109379168A CN201811403270.1A CN201811403270A CN109379168A CN 109379168 A CN109379168 A CN 109379168A CN 201811403270 A CN201811403270 A CN 201811403270A CN 109379168 A CN109379168 A CN 109379168A
Authority
CN
China
Prior art keywords
voice
value
delay
buffer queue
data packet
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
CN201811403270.1A
Other languages
English (en)
Other versions
CN109379168B (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.)
World (beijing) Network Technology Co Ltd
Original Assignee
World (beijing) Network Technology 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 World (beijing) Network Technology Co Ltd filed Critical World (beijing) Network Technology Co Ltd
Priority to CN201811403270.1A priority Critical patent/CN109379168B/zh
Publication of CN109379168A publication Critical patent/CN109379168A/zh
Application granted granted Critical
Publication of CN109379168B publication Critical patent/CN109379168B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0017Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0015Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy
    • H04L1/0017Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement
    • H04L1/0018Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the adaptation strategy where the mode-switching is based on Quality of Service requirement based on latency requirement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72427User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for supporting games or graphical animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/7243User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
    • H04M1/72433User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages for voice messaging, e.g. dictaphones

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种用于前端实时语音聊天的语音平滑播放方法
技术领域
本发明涉及游戏技术领域,特别涉及一种用于前端实时语音聊天的语音平滑播放方法。
背景技术
随着移动设备性能的大幅度提升,移动端游戏也逐渐从小游戏向更追求极致体验的大型游戏发展。除了游戏本身的乐趣,游戏所包含的社交属性也逐渐得到了玩家的青睐,对于团队协作类游戏来讲,实时语音交流逐渐成为必不可少的需求,游戏中清晰有效的沟通会增加团队协作的乐趣,极大的提高用户粘性。然而移动设备上的专用的聊天软件(例如:微信语音、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;
S 207、更新当前时间跨度内抖动的标准差值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。
S 207、更新当前时间跨度内抖动的标准差值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,不进行任何加速或减速操作,结束。
通过实施本发明,可以实现播放缓存队列可容忍延迟值的选取,从而根据网络状况,自适应的选取延迟值;并根据语音播放缓存队列中向现有的数据量确定变速策略,确定加速比或减速比;对语音数据的拉伸和压缩操作从而改变语音播放的速度,保持语音播放缓冲区数据的平稳,降低数据溢出率,相对于未使用任何平滑机制的情况,很大程度上保证了声音的平滑。
根据本发明的一个可替代实施方式,可以通过设置足够大的语音播放缓冲区,来实现语音的平滑播放。当缓冲区足够大并且其中缓存的数据足够多时,基本上也可以实现在任何一个时间点都可以提取到语音数据送去播放,这样语音就不会发生卡顿。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

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,不进行任何加速或减速操作,结束。
CN201811403270.1A 2018-11-23 2018-11-23 一种用于前端实时语音聊天的语音平滑播放方法 Active CN109379168B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811403270.1A CN109379168B (zh) 2018-11-23 2018-11-23 一种用于前端实时语音聊天的语音平滑播放方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811403270.1A CN109379168B (zh) 2018-11-23 2018-11-23 一种用于前端实时语音聊天的语音平滑播放方法

Publications (2)

Publication Number Publication Date
CN109379168A true CN109379168A (zh) 2019-02-22
CN109379168B CN109379168B (zh) 2021-04-13

Family

ID=65382724

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811403270.1A Active CN109379168B (zh) 2018-11-23 2018-11-23 一种用于前端实时语音聊天的语音平滑播放方法

Country Status (1)

Country Link
CN (1) CN109379168B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110838950A (zh) * 2019-10-21 2020-02-25 大唐软件技术股份有限公司 一种网络性能抖动值的确定方法及装置
CN110875860A (zh) * 2020-01-20 2020-03-10 翱捷科技(上海)有限公司 一种处理网络抖动的方法及装置
CN112398912A (zh) * 2020-10-26 2021-02-23 北京佳讯飞鸿电气股份有限公司 一种语音信号加速方法、装置、计算机设备及存储介质
CN113572736A (zh) * 2021-06-25 2021-10-29 北京长焜科技有限公司 一种VoLTE语音报文双向合并实时播放方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627747A (zh) * 2003-12-09 2005-06-15 华为技术有限公司 语音传输过程中实现动态调整抖动缓存的方法
CN102802088A (zh) * 2012-08-29 2012-11-28 上海天跃科技股份有限公司 一种基于实时传输协议的数据传输方法
US20120320784A1 (en) * 2006-08-22 2012-12-20 Embarq Holdings Company, Llc System and method for generating a graphical user interface representative of network performance
US20130142192A1 (en) * 2011-12-05 2013-06-06 Oki Electric Industry Co., Ltd. Voice communication apparatus for intermittently discarding packets
CN105119755A (zh) * 2015-09-10 2015-12-02 广州市百果园网络科技有限公司 一种抖动缓冲区调整方法及装置
CN105472404A (zh) * 2014-09-11 2016-04-06 成都鼎桥通信技术有限公司 一种视频业务中的数据处理方法
CN107770124A (zh) * 2016-08-15 2018-03-06 北京信威通信技术股份有限公司 一种ip语音缓冲区的动态控制方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627747A (zh) * 2003-12-09 2005-06-15 华为技术有限公司 语音传输过程中实现动态调整抖动缓存的方法
US20120320784A1 (en) * 2006-08-22 2012-12-20 Embarq Holdings Company, Llc System and method for generating a graphical user interface representative of network performance
US20130142192A1 (en) * 2011-12-05 2013-06-06 Oki Electric Industry Co., Ltd. Voice communication apparatus for intermittently discarding packets
CN102802088A (zh) * 2012-08-29 2012-11-28 上海天跃科技股份有限公司 一种基于实时传输协议的数据传输方法
CN105472404A (zh) * 2014-09-11 2016-04-06 成都鼎桥通信技术有限公司 一种视频业务中的数据处理方法
CN105119755A (zh) * 2015-09-10 2015-12-02 广州市百果园网络科技有限公司 一种抖动缓冲区调整方法及装置
CN107770124A (zh) * 2016-08-15 2018-03-06 北京信威通信技术股份有限公司 一种ip语音缓冲区的动态控制方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOYCE E. AVESTRO: "Adaptive RTP-compatible audio streaming for handheld clients (ARCASH)", <2006 INTERNATIONAL CONFERENCE ON COMPUTING & INFORMATICS> *
张若思: "IP电话分组语音技术分析", 《信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110838950A (zh) * 2019-10-21 2020-02-25 大唐软件技术股份有限公司 一种网络性能抖动值的确定方法及装置
CN110838950B (zh) * 2019-10-21 2022-01-28 大唐软件技术股份有限公司 一种网络性能抖动值的确定方法及装置
CN110875860A (zh) * 2020-01-20 2020-03-10 翱捷科技(上海)有限公司 一种处理网络抖动的方法及装置
CN110875860B (zh) * 2020-01-20 2020-07-10 翱捷科技(上海)有限公司 一种处理网络抖动的方法及装置
CN112398912A (zh) * 2020-10-26 2021-02-23 北京佳讯飞鸿电气股份有限公司 一种语音信号加速方法、装置、计算机设备及存储介质
CN112398912B (zh) * 2020-10-26 2024-02-27 北京佳讯飞鸿电气股份有限公司 一种语音信号加速方法、装置、计算机设备及存储介质
CN113572736A (zh) * 2021-06-25 2021-10-29 北京长焜科技有限公司 一种VoLTE语音报文双向合并实时播放方法
CN113572736B (zh) * 2021-06-25 2023-03-10 北京长焜科技有限公司 一种VoLTE语音报文双向合并实时播放方法

Also Published As

Publication number Publication date
CN109379168B (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN109379168A (zh) 一种用于前端实时语音聊天的语音平滑播放方法
EP1833253A1 (en) Method and apparatus for buffering streaming media data
EP3466001B1 (en) Media buffering
KR102246465B1 (ko) 무선 통신 시스템에서 자원 분배 방법 및 장치
CN105991963B (zh) 基于群组的多人音视频通信方法和装置
US20220006744A1 (en) Service forwarding method and network device
CN105791987B (zh) 媒体数据播放的方法及终端
WO2021091603A1 (en) Low latency docsis experience via multiple queues
CN110022335A (zh) 数据包发送方法、装置、服务器及计算机可读存储介质
CN107770124A (zh) 一种ip语音缓冲区的动态控制方法及装置
US10382155B2 (en) Data processing
CN108124169A (zh) 一种家用无线路由器的p2p视频服务加速方法
CN109495776A (zh) 一种音频发送、播放的方法及智能终端
CN115167806B (zh) 一种网络音频广播渐变音频处理方法及服务器
CN109981482A (zh) 音频处理方法及装置
Saldana et al. Bandwidth efficiency improvement of online games by the use of tunneling, compressing and multiplexing techniques
CN112367708B (zh) 一种网络资源分配方法及装置
CN114416013A (zh) 数据发送方法、装置、电子设备及计算机可读存储介质
CN111556467B (zh) 一种手机互联音频播放处理方法
CN110198279A (zh) 一种转发媒体包的方法及转发服务器
CN109327724B (zh) 音视频同步播放方法和装置
CN1787481B (zh) 一种减小数据包播放延时的方法
Lepola Managing network delay for browser multiplayer games
CN109510678B (zh) 一种通过中间件实现ip语音广播控制的方法
CN1791055B (zh) 一种减小数据包播放延时的方法

Legal Events

Date Code Title Description
PB01 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