一种语音数据延时处理方法及装置的制造方法

文档序号:10626775阅读:328来源:国知局
一种语音数据延时处理方法及装置的制造方法
【专利摘要】本发明实施例公开了一种语音数据延时处理方法及装置,涉及网络语音通讯技术领域,用于提高网络语音传输的质量。本发明提供的一种语音数据延时处理方法包括:确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
【专利说明】
一种语音数据延时处理方法及装置
技术领域
[0001]本发明涉及网络语音通讯技术领域,特别是涉及一种语音数据延时处理方法及装置。
【背景技术】
[0002]在大规模的网络语音直播技术中,由于网络状况不稳定,包括丢包、抖动、网络数据接收和语音数据播放之间存在速率差等因素,从而造成语音断续、不清晰,影响语音的效果O
[0003]目前,现有技术中仅仅给出如何根据网络抖动情况确定调整延时的方案,即:确定用于表示当前网络抖动情况的网络抖动参数;根据当前网络抖动参数,调整抖动缓存(Jitter Buffer)的延时参数;根据调整后的抖动缓存的延时参数,对抖动缓存中的数据包进行延时处理。
[0004]现有技术虽然考虑到了根据网络抖动情况调整延时,但存在一些待改进之处。一方面,现有技术在根据网络状况调整缓存时,网络评估考虑不够全面,调整的自适应速度较慢,且未能考虑到网络数据接收线程和语音数据播放线程之间存在速率差,另一方面,现有技术在调整时过于粗糙,而由于语音的时间连续性及时序敏感性关系,很容易造成语音的卡顿。

【发明内容】

[0005]本发明综合考虑丢包、抖动等网络不稳定因素,以及网络数据接收和语音数据播放之间存在速率差,配合上丢包重传机制,提供一种改进的语音抖动缓存Jitter Buffer技术方案,即通过周期性地统计原始网络丢包率、重传后网络丢包率、重传数据包中迟到包所占比率、数据包最大抖动幅度这些参数,而后根据这些参数合理调整抖动缓存的目标延时参数,再周期性地对抖动缓存中的数据包进行延时处理,以达到快速自适应的效果,用于提高网络语音传输的质量,令听觉感受更加舒适。
[0006]本发明提供的一种语音数据延时处理方法包括如下步骤:
确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
[0007]本发明提供的一种语音数据延时处理装置包括:
网络状况确定单元,用于确定表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
【附图说明】
[0008]图1为本发明实施例提供的一种语音数据延时处理方法的流程示意图。
[0009]图2为本发明实施例提供的一种语音数据延时处理装置的结构示意图。
【具体实施方式】
[0010]本发明实施例实现的基本原理是:抖动缓存越大,其纠正乱序、去除网络抖动、配合丢包重传减少丢包的效果越好,但引起的延时却越大;反之则相反。因此,需要尽可能地让它维持在一个合理值;在实时语音传输过程中,抖动缓存中的数据接收速率取决于发送端的语音数据采集线程,而数据取出速率取决于接收端的语音数据播放线程,因此,两个速率很可能有细微的偏差,这种偏差随着时间的累积将导致当前语音数据延时慢慢变大或慢慢变小,此时,需要良好的语音数据延时处理方法来消除这种偏差,且尽可能小地影响用户听觉体验。
[0011]参见图1,本发明实例提供的一种语音数据延时处理方法,总体包括如下步骤: S101,确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
S102,根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
S103,根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
[0012]具体技术方案如下:
确定当前网络状况网络状态的参数,包括原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,即每隔一定周期统计一次该周期内的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,例如,以1s为周期统计一次。
[0013]其中:
原始网络丢包率:每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为O ;
重传后网络丢包率:每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为O ;
重传数据包中迟到包所占比率:每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=(每个统计周期内晚于播放时刻到达的重传包数量/每个统计周期内总的重传包数量)*100%,初始值为O ;
最大抖动幅度参数:每个统计周期内相邻数据包时间间隔的最大值,单位为ms,初始值为O。
[0014]根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,包括:
主要延时参数涉及:
Target_delay:期望延时参数,单位为 ms,例如:Target_delay=150ms ;Min_Target_delay:期望延时调整下限参数,单位为ms,例如:Min_Target_delay=100ms ;
Max—Target—delay:期望延时调整上限参数,单位为ms,例如:Max—Target—delay=500ms ;
Current—delay:当前延时参数,即目前缓存中的数据量大小,单位为ms ;
Min—Current—delay:当前延时调整下限参数,单位为ms,Min—Current—delay根据Target—delay 确定:如果 Target—delay 小于 400ms,则 Min—Current—delay =Target_delay/2 ;如果 Target—delay 大于或等于 200ms,则 Min—Current—delay = Target—delay-200 ;
Max—Current—delay:当前延时调整上限参数,单位为ms,Max—Current—delay根据Target—delay 确定:如果 Target—delay 小于 200ms,则 Max—Current—delay =Target_delay*2 ;如果 Target—delay 大于或等于 200ms,则 Max—Current—delay = Target—delay+200 ;
Need—turn—up:调大延时标记参数,布尔类型,True表示调大,False表示不调大,默认值为False ;
Need—turn—down:调小延时标记参数,布尔类型,True表示调小,False表示不调小,默认值为False ;
本抖动缓存包括两种状态:Waiting—state和Working—state,默认为Waiting—state ;
Waiting—state:此时处于等待数据接收状态,此时只接收数据包不取出数据; Working—state:此时处于正常工作状态,此时既接收数据也取出数据
[0015]如果原始丢包率小于原始丢包率阈值(例如,原始丢包率阈值=4%),并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值I (例如,重传数据包中迟到包所占比率阈值1=1%),则按固定步长(例如,步长=1ms)调小期望延时参数Target—delay,此时如果期望延时参数Target—delay小于期望延时调整下限参数Min—Target—delay,则将期望延时参数Target—delay调整为期望延时调整下限参数Min— Target—delayD
[0016]如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2 (例如,重传数据包中迟到包所占比率阈值2=10%),则按固定步长(例如,步长=1ms)调大期望延时参数Target—delay,此时如果期望延时参数Target—delay大于期望延时调整上限参数Max— Target—delay,则将期望延时参数Target—delay调整为期望延时调整上限参数Max—Target—delay。
[0017]如果数据包最大抖动幅度参数大于Target—delay,则将期望延时参数Target—delay调整为最大抖动幅度参数*1.20
[0018]根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,主要包括:
周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态。
[0019]所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为I的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False。
[0020]在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到Current_delay大于或等于Target_delay 为止。
[0021]在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数Need_turn_down置False。
[0022]在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,则在当前缓存中合并固定步长的数据帧,直到Current_delay小于或等于Target_delay为止,以达到对抖动缓存中的数据包进行自适应延时处理效果。
[0023]根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理过程中的判断和调整的速率需要作限制,例如以周期80ms,步长1ms进行判断和调整。
[0024]参见图2,本发明实施例提供一种语音数据延时处理装置,包括:
网络状况确定单元201,用于确定表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数;
抖动缓存的目标延时参数调整单元202,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数;
抖动缓存中数据包延时处理单元203,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。
[0025]具体如下:
所述网络状况确定单元,用于每隔一定周期统计一次该周期内的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,例如,以1s为周期统计一次。
[0026]其中: 原始网络丢包率:每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为O ;
重传后网络丢包率:每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100%,初始值为O ;
重传数据包中迟到包所占比率:每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=每个统计周期内晚于播放时刻到达的重传包数量/每个统计周期内总的重传包数量,初始值为O ;
最大抖动幅度参数:每个统计周期内相邻数据包时间间隔的最大值,单位为ms,初始值为O。
[0027]所述抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,包括:
主要延时参数涉及:
Target_delay:期望延时参数,单位为 ms,例如:Target_delay=150ms ;
Min_Target_delay:期望延时调整下限参数,单位为ms,例如:Min_Target_delay=100ms ;
Max—Target—delay:期望延时调整上限参数,单位为ms,例如:Max—Target—delay=500ms ;
Current—delay:当前延时参数,即目前缓存中的数据量大小,单位为ms ;
Min—Current—delay:当前延时调整下限参数,单位为ms,Min—Current—delay根据Target—delay 确定:如果 Target—delay 小于 400ms,则 Min—Current—delay =Target_delay/2 ;如果 Target—delay 大于或等于 200ms,则 Min—Current—delay = Target—delay-200 ;
Max—Current—delay:当前延时调整上限参数,单位为ms,Max—Current—delay根据Target—delay 确定:如果 Target—delay 小于 200ms,则 Max—Current—delay =Target_delay*2 ;如果 Target—delay 大于或等于 200ms,则 Max—Current—delay = Target—delay+200 ;
Need—turn—up:调大延时标记参数,布尔类型,True表示调大,False表示不调大,默认值为False ;
Need—turn—down:调小延时标记参数,布尔类型,True表示调小,False表示不调小,默认值为False ;
本抖动缓存包括两种状态:Waiting—state和Working—state,默认为Waiting—state ;
Waiting—state:此时处于等待数据接收状态,此时只接收数据包不取出数据;
Working—state:此时处于正常工作状态,此时既接收数据也取出数据
[0028]如果原始丢包率小于原始丢包率阈值(例如,原始丢包率阈值=4%),并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值I (例如,重传数据包中迟到包所占比率阈值1=1%),则按固定步长(例如,步长=1ms)调小期望延时参数Target_delay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_ Target_delay。
[0029]如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2 (例如,重传数据包中迟到包所占比率阈值2=10%),则按固定步长(例如,步长=1ms)调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_ Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay。
[0030]如果数据包最大抖动幅度参数大于Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2。
[0031]所述抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,包括:
周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态。
[0032]所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为I的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False。
[0033]在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到Current_delay大于或等于Target_delay 为止。
[0034]在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数Need_turn_down置False。
[0035]在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,则在当前缓存中合并固定步长的数据帧,直到Current_delay小于或等于Target_delay为止,以达到对抖动缓存中的数据包进行自适应延时处理效果。
[0036]根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理过程中的判断和调整的速率需要作限制,例如以周期80ms,步长1ms进行判断和调整。
[0037]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。并且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0038]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
【主权项】
1.一种语音数据延时处理方法,其特征在于,该方法包括如下步骤: 确定用于表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数; 根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数; 根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。2.根据权利要求1所述的语音数据延时处理方法,其特征在于,所述表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数进行周期性统计,其中: 原始网络丢包率为每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100% ; 重传后网络丢包率为每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100% ; 重传数据包中迟到包所占比率为每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=(每个统计周期内晚于播放时刻到达的重传数据包数量/每个统计周期内总的重传数据包数量)*100%; 最大抖动幅度参数为每个统计周期内相邻数据包时间间隔的最大值,单位为ms。3.根据权利要求2所述的语音数据延时处理方法,其特征在于,所述根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数,包括: 如果原始丢包率小于原始丢包率阈值,并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值I,则按固定步长调小期望延时参数Tar ge t_de I ay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_Target_delay ; 如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2,则按固定步长调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay ; 如果数据包最大抖动幅度参数大于期望延时参数Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2。4.根据权利要求3所述的语音数据延时处理方法,其特征在于,根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,包括: 周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态; 所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为I的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False ; 在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到当前延时参数Current_delay大于或等于期望延时参数Target_delay为止; 在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数 Need_turn_down 置 False ; 在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,贝Ij在当前缓存中合并固定步长的数据帧,直到当前延时参数Current_delay小于或等于目标延时参数Target_delay为止。5.根据权利要求4所述的语音数据延时处理方法,其特征在于,所述异常情况包括: 新接收的数据包序列号与缓存中的数据包序列号相差超过200 ; 抖动缓存的当前延时参数Curr ent_de I ay小于五分之一的目标延时参数T arget_delay ; 抖动缓存的当前延时参数Current_delay大于二倍的目标延时参数Target_delay。6.本发明实施例提供一种语音数据延时处理装置,其特征在于,该装置包括: 网络状况确定单元,用于确定表示当前网络状况的原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数; 抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整抖动缓存的目标延时参数; 抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理。7.根据权利要求6所述的语音数据延时处理装置,其特征在于,所述网络状况确定单元,用于对原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数进行周期性统计,其中: 原始网络丢包率为每个统计周期内发生丢包重传情况前的网络丢包率,原始网络丢包率=(每个统计周期内发生丢包重传情况前的丢包数量/每个统计周期内的总数据包数量)*100% ; 重传后网络丢包率为每个统计周期内发生丢包重传情况后的网络丢包率,重传后网络丢包率=(每个统计周期内发生丢包重传情况后的丢包数量/每个统计周期内的总数据包数量)*100% ; 重传数据包中迟到包所占比率为每个统计周期内重传到达的数据包中,晚于播放时刻到达的重传包数量占所有重传包数量的比率,重传数据包中迟到包所占比率=(每个统计周期内晚于播放时刻到达的重传数据包数量/每个统计周期内总的重传数据包数量)*100%;最大抖动幅度参数为每个统计周期内相邻数据包时间间隔的最大值,单位为ms。8.根据权利要求7所述的语音数据延时处理装置,其特征在于,所述抖动缓存的目标延时参数调整单元,用于根据当前原始网络丢包率参数、重传后网络丢包率参数、重传数据包中迟到包所占比率参数、数据包最大抖动幅度参数,调整目标延时参数,包括: 如果原始丢包率小于原始丢包率阈值,并且重传数据包中迟到包所占比率小于重传数据包中迟到包所占比率阈值I,则按固定步长调小期望延时参数Tar ge t_de I ay,此时如果期望延时参数Target_delay小于期望延时调整下限参数Min_Target_delay,则将期望延时参数Target_delay调整为期望延时调整下限参数Min_Target_delay ; 如果重传后网络丢包率小于原始网络丢包率,并且重传数据包中迟到包所占比率大于重传数据包中迟到包所占比率阈值2,则按固定步长调大期望延时参数Target_delay,此时如果期望延时参数Target_delay大于期望延时调整上限参数Max_Target_delay,则将期望延时参数Target_delay调整为期望延时调整上限参数Max_Target_delay ; 如果数据包最大抖动幅度参数大于期望延时参数Target_delay,则将期望延时参数Target_delay调整为最大抖动幅度参数*1.2。9.根据权利要求8所述的语音数据延时处理装置,其特征在于,所述抖动缓存中数据包延时处理单元,用于根据调整后的抖动缓存的目标延时参数,对抖动缓存中的数据包进行延时处理,包括: 周期性判断抖动缓存状态,当抖动缓存状态为Waiting_state状态时,则比较当前延时参数Current_delay与期望延时参数Target_delay的大小:如果当前延时参数Current_delay小于期望延时参数Target_delay,则表明抖动缓存中数据不够,则抖动缓存继续接收语音数据包;如果当前延时参数Current_delay大于或等于期望延时参数Target_delay,则解码并取出播放语音数据包,抖动缓存状态切换为Working_state状态;当出现异常情况时,抖动缓存状态切换为Waiting_state状态; 所述抖动缓存中的语音数据包为从远端接收到的按序列号升序排列、间隔为I的编码后的语音数据包序列的组成部分,判断数据包的序列号是否连续,如不连续,则发生丢包情形,其中导致不连续的序号的数据包即为丢失的数据包,此时重传丢失的数据包;在接收语音数据包时,判断是否需要调大当前延时参数Current_delay,即比较当前延时参数Current_delay与当前延时参数下限参数Min_Current_delay的大小:如Current_delay小于Min_Current_delay,则将调大延时标记参数Need_turn_up置为True,否则将调大延时标记参数Need_turn_up置为False ; 在取出播放语音数据包时,周期性判断调大延时标记参数Need_turn_up的值,如果为True,则在当前缓存中插入固定步长的数据帧,直到当前延时参数Current_delay大于或等于期望延时参数Target_delay为止; 在取出播放语音数据包时,如果当前延时参数Current_delay大于当前延时调整上限参数Max_Current_delay,则将调小延时标记参数Need_turn_down置Ture,否则将调小延时标记参数 Need_turn_down 置 False ; 在取出播放语音数据包时,周期性判断调小延时标记参数Need_turn_down的值,如果为True,贝Ij在当前缓存中合并固定步长的数据帧,直到当前延时参数Current_delay小于或等于目标延时参数Target_delay为止。10.根据权利要求9所述的语音数据延时处理装置,其特征在于,所述异常情况包括: 新接收的数据包序列号与缓存中的最大序列号数据包的序列号相差超过200 ; 抖动缓存的当前延时参数Curr ent_de I ay小于五分之一的目标延时参数T arget_delay ; 抖动缓存的当前延时参数Current_delay大于二倍的目标延时参数Target_delay。
【文档编号】H04M7/00GK105991476SQ201510043932
【公开日】2016年10月5日
【申请日】2015年1月29日
【发明人】李炼, 杨福强
【申请人】沪江教育科技(上海)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1