网络抖动处理方法、装置和终端设备的制造方法
【专利摘要】本公开是关于一种网络抖动处理方法、装置和终端设备,该方法包括:接收多个语音数据包,并记录各个语音数据包的接收时刻;依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个语音数据包的时间间隔;依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布;依据所述概率分布和容许抖动概率计算缓冲区目标大小;依据所述缓冲区目标大小调整缓冲区以解决网络抖动。
【专利说明】
网络抖动处理方法、装置和终端设备
技术领域
[0001] 本公开设及智能终端设备技术领域,尤其设及一种网络抖动处理方法、装置和终 端设备。
【背景技术】
[0002] 随着网络带宽的增加和移动互联网的普及,在手机上利用互联网的实时语音通信 应用快速发展,与有线网络相比,无线网络在丢包率、网络延时、网络抖动等方面对网络电 话(Voice over Internet Protocol,简称VoIP)运种实时语音通信业务的质量有较大的影 响。
[0003] 在VoIP语音通信中,发送端一般采用固定帖率的语音编码算法,按均匀的时间间 隔发送数据,运种情况下,对接收端语音质量影响最大的因素,不是端到端的传输延时,而 是接收端接收数据的时间间隔的抖动,但相关技术缺少依据接收端接收数据的时间间隔的 抖动解决网络抖动的方法。
【发明内容】
[0004] 本公开提供一种网络抖动处理方法、装置和终端设备,用W依据接收端接收数据 的时间间隔的抖动解决网络抖动。
[0005] 根据本公开实施例的第一方面,提供一种网络抖动处理方法,包括:
[0006] 接收多个语音数据包,并记录各个语音数据包的接收时刻;
[0007] 依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个语音数据包的 时间间隔;
[0008] 依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布;
[0009] 依据所述概率分布和容许抖动概率计算缓冲区目标大小;
[0010] 依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0011] 该技术方案可W包括W下有益效果:由于接收端接收语音数据包的时间间隔的概 率分布随网络抖动的变化而变化,接收端接收语音数据包的时间间隔是一个随机变量,本 实施例通过时间间隔的概率分布和容许抖动概率计算缓冲区目标大小,因此缓冲区目标大 小随着网络抖动而变化,依据缓冲区目标大小调整缓冲区,可使缓冲区的大小随着网络抖 动而变化,由于缓冲区的大小与其能够克服的网络抖动的能力密切相关,通过对缓冲区目 标大小调整缓冲区可解决网络抖动。
[001 ^ 在第一方面的第一种可能的实现方式中,第n个时间间隔Jn = Rn-Rn-I,其中,Rn表示 第n个语音数据包的接收时刻,Rn-I表示第n-1个语音数据包的接收时刻,(N-1),N表 示所述语音数据包的总个数;
[0013]所述预设区间的个数为多个,第i个预设区间^其中,T为发送 端发送所述语音数据包的固定时间间隔,K为正整数;
[0014] 所述依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布,包括:
[0015] 统计所有时间间隔中分别落入各个预设区间的时间间隔的个数Ni,i >0,其中,i 表示预设区间的标识号,Ni > 0;
[001 Al 各个Ni和所述语音数据包的总个数的十算所述时间间隔落入各个预设区间的 概萄
[0017」该技术方案可W包括W下有益效果:通过统计所有时间间隔中分别落入各个预设 区间的时间间隔的个数,根据每个预设区间的时间间隔的个数与语音数据包的总个数的比 值作为时间间隔落入该预设区间的概率,得出时间间隔落入各个预设区间的概率,可获得 时间间隔的概率分布。
[0018] 根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所当N^Nma J寸,对于任何一个n,,则将第(n-Nmax+1 )个时间间隔所属的预设区 间对应的时间间隔的个数减1,其中,Nmax为所述语音数据包的总个数的阔值。
[0019] 该技术方案可W包括W下有益效果:通过每增加一个新的时间间隔减少一个存在 时间最久的时间间隔,保证随着接收端接收到语音数据包的增加,分布在各个预设区间的 时间间隔的总数不变。
[0020] 根据第一方面的第二种可能的实现方式,在第一方面的第=种可能的实现方式 中,所述依据所述概率分布和容许抖动概率计算缓冲区目标大小,包括:
[0021] 计算满足条f
的m,其中,P表示已知的容许抖动概率;
[0022] 将多个所述预设区间中第0个预设区间连续到第m个预设区间的大小之和作为所 述缓冲区目标大小。
[0023] 根据第一方面至第一方面的第=种可能的实现方式中的任何一种实现方式,在第 一方面的第四种可能的实现方式中,所述依据所述缓冲区目标大小调整缓冲区W解决网络 抖动,包括:
[0024] 若缓冲区的当前大小小于所述缓冲区目标大小,且缓冲区有效长度为0,则在所述 缓冲区中生成数据进行补帖;
[0025] 若缓冲区的当前大小大于所述缓冲区目标大小,则删除所述缓冲区中的非语音数 据,W使所述缓冲区的当前大小与所述缓冲区目标大小的差值在预设范围内。
[0026] 该技术方案可W包括W下有益效果:通过时间间隔的概率分布和容许抖动概率计 算缓冲区目标大小,并依据缓冲区目标大小调整缓冲区的当前大小,W使缓冲区的大小随 着网络抖动而动态调节,从而解决了网络抖动。
[0027] 根据第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式 中,所述接收多个语音数据包,并记录各个语音数据包的接收时刻之后,还包括:
[0028] 对所述多个语音数据包中的每个语音数据包进行解码获得语音数据或非语音数 据,并将所述语音数据或所述非语音数据存入所述缓冲区。
[0029] 该技术方案可W包括W下有益效果:通过在接收端的解码器和放音模块之间添加 一个缓冲区,接收端的RTP报文接收模块将接收到的语音数据包具体为RTP报文传到解码 器,由解码器对RTP报文进行解码处理获得语音数据或非语音数据,并将语音数据或非语音 数据放入缓冲区,对缓冲区的动态调节实现对网络抖动的处理。
[0030] 根据本公开实施例的第二方面,提供一种网络抖动处理装置,包括:
[0031] 接收记录模块,被配置为接收多个语音数据包,并记录各个语音数据包的接收时 刻;
[0032] 计算模块,被配置为依据所述接收时刻计算接收所述多个语音数据包中所有相邻 两个语音数据包的时间间隔;
[0033] 统计模块,被配置为依据各个时间间隔所属的预设区间统计所述时间间隔的概率 分布;
[0034] 所述计算模块还被配置为依据所述概率分布和容许抖动概率计算缓冲区目标大 小;
[0035] 调整模块,被配置为依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0036] 该技术方案可W包括W下有益效果:由于接收端接收语音数据包的时间间隔的概 率分布随网络抖动的变化而变化,接收端接收语音数据包的时间间隔是一个随机变量,本 实施例通过时间间隔的概率分布和容许抖动概率计算缓冲区目标大小,因此缓冲区目标 大小随着网络抖动而变化,依据缓冲区目标大小调整缓冲区,可使缓冲区的大小随着网络 抖动而变化,由于缓冲区的大小与其能够克服的网络抖动的能力密切相关,通过对缓冲区 目标大小调整缓冲区可解决网络抖动。
[0037] 在第二方面的第一种可能的实现方式中,第n个时间间隔Jn = Rn-Rn-I,其中,Rn表示 第n个语音数据包的接收时刻,Rn-I表示第n-1个语音数据包的接收时刻,(N-1),N表 示所述语音数据包的总个数;
[0038] 所述预设区间的个数为多个,第i个预设区间为( 痒中,T为发送 端发送所述语音数据包的固定时间间隔,K为正整数;
[0039] 所述统计模块包括:
[0040] 第一统计子模块,被配置为统计所有时间间隔中分别落入各个预设区间的时间间 隔的个数Ni, i>0,其中,i表示预设区间的标识号,Ni^O;
[0041] 第一计算子模块,被配置为依据各个Ni和所述语音数据包的总个数的十算所述时 间间隔落入各个预设区间的概羣
,
[0042] 该技术方案可W包括W下有益效果:通过统计所有时间间隔中分别落入各个预设 区间的时间间隔的个数,根据每个预设区间的时间间隔的个数与语音数据包的总个数的比 值作为时间间隔落入该预设区间的概率,得出时间间隔落入各个预设区间的概率,可获得 时间间隔的概率分布。
[0043] 根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述统计模块还包括:
[0044] 第二统计子模块,被配置为当Nmax时,对于任何一个n,若11 > Nmax,则将第(n-Nmax + 1)个时间间隔所属的预设区间对应的时间间隔的个数减1,其中,Nmax为所述语音数据包的 总个数的阔值。
[0045] 该技术方案可W包括W下有益效果:通过每增加一个新的时间间隔减少一个存在 时间最久的时间间隔,保证随着接收端接收到语音数据包的增加,分布在各个预设区间的 时间间隔的总数不变。
[0046] 根据第二方面的第二种可能的实现方式,在第二方面的第=种可能的实现方式 中,所述计算模块包括:
[0047] 第二计算子模块,被配置为计算满足条f
巧m,其中,P表示已知的容 许抖动概率;
[0048] 第=计算子模块,被配置为计算多个所述预设区间中第0个预设区间连续到第m个 预设区间的大小之和,所述之和为所述缓冲区目标大小。
[0049] 根据第二方面至第二方面的第=种可能的实现方式中的任何一种实现方式,在第 二方面的第四种可能的实现方式中,所述调整模块包括:
[0050] 第一调整子模块,被配置为若缓冲区的当前大小小于所述缓冲区目标大小,且缓 冲区有效长度为0,则在所述缓冲区中生成数据进行补帖;
[0051] 第二调整子模块,被配置为若缓冲区的当前大小大于所述缓冲区目标大小,则删 除所述缓冲区中的非语音数据,W使所述缓冲区的当前大小与所述缓冲区目标大小的差值 在预设范围内。
[0052] 该技术方案可W包括W下有益效果:通过时间间隔的概率分布和容许抖动概率计 算缓冲区目标大小,并依据缓冲区目标大小调整缓冲区的当前大小,W使缓冲区的大小随 着网络抖动而动态调节,从而解决了网络抖动。
[0053] 根据第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式 中,所述装置还包括:
[0054] 解码模块,被配置为所述接收记录模块接收多个语音数据包,并记录各个语音数 据包的接收时刻之后,对所述多个语音数据包中的每个语音数据包进行解码获得语音数据 或非语音数据,并将所述语音数据或所述非语音数据存入所述缓冲区。
[0055] 该技术方案可W包括W下有益效果:通过在接收端的解码器和放音模块之间添加 一个缓冲区,接收端的RTP报文接收模块将接收到的语音数据包具体为RTP报文传到解码 器,由解码器对RTP报文进行解码处理获得语音数据或非语音数据,并将语音数据或非语音 数据放入缓冲区,对缓冲区的动态调节实现对网络抖动的处理。
[0056] 根据本公开实施例的第=方面,提供一种终端设备,包括:
[0化7] 处理器;
[0058] 被配置为存储处理器可执行指令的存储器;
[0059] 其中,所述处理器被配置为:
[0060] 接收多个语音数据包,并记录各个语音数据包的接收时刻;
[0061] 依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个语音数据包的 时间间隔;
[0062] 依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布;
[0063] 依据所述概率分布和容许抖动概率计算缓冲区目标大小;
[0064] 依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0065] 应当理解的是,W上的一般描述和后文的细节描述仅是示例性和解释性的,并不 能限制本公开。
【附图说明】
[0066] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施 例,并与说明书一起用于解释本公开的原理。
[0067] 图1是根据一示例性实施例示出的一种网络抖动处理方法实施例一的流程图;
[0068] 图IA是图1所示实施例中接收端的示意图;
[0069] 图2是根据一示例性实施例示出的一种网络抖动处理方法实施例二的流程图;
[0070] 图3是根据一示例性实施例示出的一种网络抖动处理方法实施例=的流程图;
[0071 ]图4是根据一示例性实施例示出的一种网络抖动处理方法实施例四的流程图;
[0072] 图5是根据一示例性实施例示出的一种网络抖动处理方法实施例五的流程图;
[0073] 图6是根据一示例性实施例示出的一种网络抖动处理装置实施例一的框图;
[0074] 图7是根据一示例性实施例示出的一种网络抖动处理装置实施例二的框图;
[0075] 图8是根据一示例性实施例示出的一种终端设备的框图;
[0076] 图9是根据一示例性实施例示出的另一种终端设备的框图。
[0077] 通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。运些附图 和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为 本领域技术人员说明本公开的概念。
【具体实施方式】
[0078] 运里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述设及 附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。W下示例性实施例 中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附 权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0079] 图1是根据一示例性实施例示出的一种网络抖动处理方法实施例一的流程图,该 方法可W由网络抖动处理装置来执行,该网络抖动处理装置可W集成在终端设备中,如图 1所示,该方法包括W下步骤:
[0080] 在步骤101中,接收多个语音数据包,并记录各个语音数据包的接收时刻。
[0081] 本实施例中,两个终端设备通过VoIP进行语音通信,两个终端设备进行语音通信 时使用的协议为实时传输协议(Real-time hansport Protocol,简称RTP),接收端的用户 在收听发送端的用户讲话时,发送端向接收端发送多个RTP报文,每个RTP报文包括语音数 据,接收端接收该多个RTP报文,并记录接收每个RTP报文的接收时刻。
[0082] 在步骤102中,依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个 语音数据包的时间间隔。
[0083] 第n个时间间隔Jn = Rn-Rn-I,其中,Rn表示第n个语音数据包的接收时刻,Rn-I表示第 n-1个语音数据包的接收时刻,1(N-1),N表示所述语音数据包的总个数。
[0084] 依据每个RTP报文的接收时刻计算出所有相邻两个语音数据包的时间间隔,例如, 第n-1个语音数据包的接收时刻为Rn-I,第n个语音数据包的接收时刻为Rn ,Jn = Rn-Rn-I表示 第n个时间间隔,所有该RTP报文的个数为N,1(N-1)。
[0085] 在步骤103中,依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布。
[0086] 本实施例中,所述预设区间的个数为多个,第i个预设区间为(
, 其中,T为发送端发送所述语音数据包的固定时间间隔,K为正整数,i>0;统计所有时同同 隔中分别落入各个预设区间的时间间隔的个数,即对于每一个预设区间
壳计所有时间间隔中落入该预设区间的时间间隔的个数Ni,由于Jn是随 n变化的,因此接收端接收相邻两个语音数据包的时间间隔J是一个随机变量,该预设区间 对应的时间间隔的个数Ni与语音数据包的总个数N的比值即是随机变量J落入该预设区间 的概率Pi,依据随机变量J落入各个预设区间的概率Pi,i >0可获得随机变量J的概率分布。 优选的,K = 8,K越大,统计区间划分越细,计算得到的概率分布越准确,但过大的K值,当统 计的包数目不够多时,反而会使概率分布图的某些位置数据过小,导致数据失真。
[0087] 在步骤104中,依据所述概率分布和容许抖动概率计算缓冲区目标大小。
[0088] 本实施例中,容许抖动概率表示缓冲区能克服的网络抖动的概率,累加随机变量J 落入前m+1个预设区间的概率和;,W及前m+2个预设区间的概率和^巧,若容许抖动概 i=〇 i=0 率P满足条f
则第0个预设区间连续到第m个预设区间的大小之和为缓冲区 目标大小。
[0089] 在步骤105中,依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0090] 结合图1A,接收端的解码器和放音模块之间添加一个缓冲区,接收端的RTP报文接 收模块将接收到的语音数据包具体为RTP报文传到解码器,由解码器对RTP报文进行解码处 理获得语音数据或非语音数据,并将语音数据或非语音数据放入缓冲区,优选的,一个RTP 报文经过解码处理后获得的语音数据或非语音数据的长度为L,缓冲区的总大小为K礼,即 缓冲区分为K块,每块的长度为L,所有块的序号依次为0,1,2,.......,K-1。放音模块定期 从缓冲区读取数据进行放音,假设放音模块从缓冲区中序号为Pread的块读取数据进行放 音,解码器将解码输出的数据写入序号为Pwrite的块,Pwrite-Pread表示缓冲区的有效数据长 度,也代表了缓冲区所产生的延时。
[0091] 由于缓冲区的大小与其能够克服的网络抖动的能力密切相关,因此依据所述缓冲 区目标大小调整缓冲区W解决网络抖动。
[0092] 本实施例中,由于接收端接收语音数据包的时间间隔的概率分布随网络抖动的变 化而变化,接收端接收语音数据包的时间间隔是一个随机变量,本实施例通过时间间隔的 概率分布和容许抖动概率计算缓冲区目标大小,因此缓冲区目标大小随着网络抖动而变 化,依据缓冲区目标大小调整缓冲区,可使缓冲区的大小随着网络抖动而变化,由于缓冲区 的大小与其能够克服的网络抖动的能力密切相关,通过对缓冲区目标大小调整缓冲区可解 决网络抖动。
[0093] 图2是根据一示例性实施例示出的一种网络抖动处理方法实施例二的流程图,如 图2所示,该方法可W包括如下的步骤:
[0094] 在步骤201中,接收多个语音数据包,并记录各个语音数据包的接收时刻。
[0095] 在步骤202中,依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个 语音数据包的时间间隔。
[0096] 在步骤203中,统计所有时间间隔中分别落入各个预设区间的时间间隔的个数 Ni,i > 0,其中,i表示预设区间的标识号,Ni > 0。
[0097] 本实施例中,所述预设区间的个数为多个,第i个预设区间为
,i > 0,所有RTP报文的个数为N,则所有时间间隔为Ji,J2......Jn-I,统计Ji,J2......Jn-I中分 别落入每个预设区间的个数,用Ni表示Ji,J2......Jn-冲落入第i个预巧区间的个#,例如, Jl,j2......Jn-I中只有J2、J3和Jio满足条f
、
-,即Jl,j2......化-1中有3个值落入第i个 J I "-"J、Lii r J ? ;/vj 丄 1 丄 U ? I -j <>211 J I IHi J IHJ O
[0098] 在步骤204由.化?各个Ni和所述语音数据包的总个数的十算所述时间间隔落入各 个预设区间的概率
[0099] 根据张驢203可获得各个预设区间对应的统计值,例如,第i个预设区间对应有Ni 个统计值,!
为随机变量J落入第i个预设区间的概率,如此便可计算出随机变量J落 入各个预设区间的概率。
[0100] 在步骤205中,依据所述概率分布和容许抖动概率计算缓冲区目标大小。
[0101] 在步骤206中,依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0102] 本实施例中,通过统计所有时间间隔中分别落入各个预设区间的时间间隔的个 数,根据每个预设区间的时间间隔的个数与语音数据包的总个数的比值作为时间间隔落入 该预设区间的概率,得出时间间隔落入各个预设区间的概率,可获得时间间隔的概率分布。
[0103] 图3是根据一示例性实施例示出的一种网络抖动处理方法实施例=的流程图,如 图3所示,该方法可W包括如下步骤:
[0104] 在步骤301中,接收多个语音数据包,并记录各个语音数据包的接收时刻。
[0105] 在步骤302中,依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个 语音数据包的时间间隔。
[0106] 在步骤303中,统计所有时间间隔中分别落入各个预设区间的时间间隔的个数Ni, i > 0,其中,i表示预设区间的标识号,Ni >0。
[0107] 在步骤304中,依据各个Ni和所述语音数据包的总个数的十算所述时间间隔落入各 个预设区间的概率
[010引在步骤305甲,3^^1^。3拥,对于任何一个11,若11>1^。3、,则将第(11-1^。3、+1)个时间间 隔所属的预设区间对应的时间间隔的个数减1,其中,Nmax为所述语音数据包的总个数的阔 值。
[0109]合理假设,本实施例中接收端当前已经接收到1000个语音数据包,该1000个语音 数据包的序号依次为0,1,2......999,1000个语音数据包对应有999个时间间隔即Ji, J2......J999,接收端可接收的语音数据包的总个数的阔值为1000,当接收端接收序号为 1000的语音数据包时,计算Jiooo,假设Jiooo属于第10个预设区间,则将第10个预设区间对应 的统计值加1,同时,将Ji所属的预设区间对应的统计值减1,同理,当接收端接收序号为 1001的语音数据包时,计算Jiooi,假设Jiooi属于第8个预设区间,则将第8个预设区间对应的 统计值加1,同时,将J2所属的预设区间对应的统计值减1,即每增加一个新的时间间隔减少 一个存在时间最久的时间间隔,保证随着接收端接收到语音数据包的增加,分布在各个预 设区间的时间间隔的总数不变。
[0110] 在步骤306中,依据所述概率分布和容许抖动概率计算缓冲区目标大小。
[0111] 在步骤307中,依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0112] 本实施例中,通过每增加一个新的时间间隔减少一个存在时间最久的时间间隔, 保证随着接收端接收到语音数据包的增加,分布在各个预设区间的时间间隔的总数不变。
[0113] 图4是根据一示例性实施例示出的一种网络抖动处理方法实施例四的流程图,如 图4所示,该方法可W包括如下步骤:
[0114] 在步骤401中,接收多个语音数据包,并记录各个语音数据包的接收时刻。
[0115] 在步骤402中,依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个 语音数据包的时间间隔。
[0116] 在步骤403中,统计所有时间间隔中分别落入各个预设区间的时间间隔的个数Ni, i > 0,其中,i表示预设区间的标识号,Ni > 0。
[0117] 在步骤4〇4*.^竭各个Ni和所述语音数据包的总个数的十算所述时间间隔落入各 个预设区间的概聋
[01 1引在步骤4化甲,aiN^NmaJ寸,对于任何一个则将第(n-Nmax+1)个时间间 隔所属的预设区间对应的时间间隔的个数减1,其中,Nmax为所述语音数据包的总个数的阔 值。
[0119] 在步骤406中,计算满足条j
的m,其中,P表示已知的容许抖动概率。
[0120] 容许抖动概率表示缓冲区能克服的网络抖动的概率,累加随机变量J落入前m+1个 预设区间的概率和:i>:,W及前m+2个预设区间的概率和,预设容许抖动概率的已知数 i=0 i=〇 P,计算满足条巧
如1。
[0121] 在步骤407中,将多个所述预设区间中第0个预设区间连续到第m个预设区间的大 小之和作为所述缓冲区目标大小。
[0122] 在步骤408中,若缓冲区的当前大小小于所述缓冲区目标大小,则在所述缓冲区中 生成数据进行补帖;若缓冲区的当前大小大于所述缓冲区目标大小,则删除所述缓冲区中 的非语音数据,W使所述缓冲区的当前大小与所述缓冲区目标大小的差值在预设范围内。
[0123] 依据所述缓冲区目标大小调整缓冲区W解决网络抖动,具体调整方法为:若缓冲 区的当前大小小于所述缓冲区目标大小,则在所述缓冲区中生成数据进行补帖,补帖的方 法具体为:对于语音数据,根据基因周期进行重复,W保证语音的平稳;对于非语音数据,根 据背景噪声的能量估计,生成噪声并平滑。若缓冲区的当前大小大于所述缓冲区目标大小, 则删除所述缓冲区中的非语音数据,W减小缓冲区的当前大小,直到所述缓冲区的当前大 小与所述缓冲区目标大小的差值在预设范围内时停止删除所述缓冲区中的非语音数据。
[0124] 本实施例中,通过时间间隔的概率分布和容许抖动概率计算缓冲区目标大小,并 依据缓冲区目标大小调整缓冲区的当前大小,W使缓冲区的大小随着网络抖动而动态调 节,从而解决了网络抖动。
[0125] 图5是根据一示例性实施例示出的一种网络抖动处理方法实施例五的流程图,如 图5所示,该方法可W包括如下步骤:
[01%]在步骤501中,接收多个语音数据包,并记录各个语音数据包的接收时刻。
[0127] 在步骤502中,对所述多个语音数据包中的每个语音数据包进行解码获得语音数 据或非语音数据,并将所述语音数据或所述非语音数据存入所述缓冲区。
[0128] 具体如图IA所示,步骤502的方法与实施例一中关于图IA的描述一致,此处不再寶 述。
[0129] 在步骤503中,依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个 语音数据包的时间间隔。
[0130] 在步骤504中,统计所有时间间隔中分别落入各个预设区间的时间间隔的个数Ni, i > 0,其中,i表示预设区间的标识号,Ni > 0。
[0131] 在步骤505中,依巧各个Ni和所述语音数据包的总个数的十算所述时间间隔落入各 个预设区间的概率
[0132] 在步骤506中,当1^>1^。3拥,对于任何一个11,若11>1^。3、,则将第(11-1^。3、+1)个时间间 隔所属的预设区间对应的时间间隔的个数减1,其中,Nmax为所述语音数据包的总个数的阔 值。
[0133] 在步骤507中,计算满足条巧
化,其中,P表示已知的容许抖动概率。
[0134] 容许抖动概率表示缓冲区能克服的网络抖动的概率,累加随机变量J落入前m+1个 预设区间的概率和:i>:,W及前m+2个预设区间的概率和,预设容许抖动概率的已知数 z'=0 i 二 Q P,计算满足条巧
[0135] 在步骤508中,将多个所述预设区间中第0个预设区间连续到第m个预设区间的大 小之和作为所述缓冲区目标大小。
[0136] 在步骤509中,若缓冲区的当前大小小于所述缓冲区目标大小,且缓冲区有效长度 为0,则在所述缓冲区中生成数据进行补帖;若缓冲区的当前大小大于所述缓冲区目标大 小,则删除所述缓冲区中的非语音数据,W使所述缓冲区的当前大小与所述缓冲区目标大 小的差值在预设范围内。
[0137] 假设某种网络条件和设定的丢包容许概率下,缓冲区目标长度为3,如果网络阻 塞,则缓冲区内有效数据长度就会变成2,1,此时并不需要补帖,如果此时被阻塞的数据包 连续到达,缓冲区的有效长度会增加,此时不需补帖。如果被阻塞的数据包未连续到达,缓 冲区有效长度变为O,则需要补帖。
[0138] 假设网络条件变差,丢包容许概率不变,缓冲区的目标长度会变长,比如变成5,意 味着当阻塞时,缓冲区还有4帖数据可W放音,4帖数据播放结束后被阻塞的数据包未连续 到达,则需要补帖,由此可见,缓冲区的目标长度变长将减少缓冲区补帖的概率,提高了音 质。
[0139] 假设网络条件变好,丢包容许概率不变,缓冲区的目标长度会变小,比如变成1,意 味着缓冲区引入的延时只有一帖,延时变短,但是如果网络阻塞,播放完1帖数据后需要补 帖。
[0140] 假设网络条件不变,丢包容许概率变大,理论上,缓冲区的目标长度会变长,意味 着延时增加,但补帖的概率降低,运就是用户设定更大丢包容许概率的代价。
[0141 ]假设网络条件不变,丢包容许概率变小,理论上,缓冲区的目标长度会变小,意味 着延时降低,但补帖的概率增加,因为用户接受较多的丢包补帖,来换取较少的延时。
[0142] 本实施例中,通过在接收端的解码器和放音模块之间添加一个缓冲区,接收端的 RTP报文接收模块将接收到的语音数据包具体为RTP报文传到解码器,由解码器对RTP报文 进行解码处理获得语音数据或非语音数据,并将语音数据或非语音数据放入缓冲区,对缓 冲区的动态调节实现对网络抖动的处理。
[0143] 图6是根据一示例性实施例示出的一种网络抖动处理装置实施例一的框图,如图6 所示,该装置包括接收记录模块61、计算模块62、统计模块63和调整模块64,。
[0144] 接收记录模块61,被配置为接收多个语音数据包,并记录各个语音数据包的接收 时刻;
[0145] 计算模块62,被配置为依据所述接收时刻计算接收所述多个语音数据包中所有相 邻两个语音数据包的时间间隔;
[0146] 统计模块63,被配置为依据各个时间间隔所属的预设区间统计所述时间间隔的概 率分布;
[0147] 计算模块62还被配置为依据所述概率分布和容许抖动概率计算缓冲区目标大小;
[0148] 调整模块64,被配置为依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0149] 本实施例中,由于接收端接收语音数据包的时间间隔的概率分布随网络抖动的变 化而变化,接收端接收语音数据包的时间间隔是一个随机变量,本实施例通过时间间隔的 概率分布和容许抖动概率计算缓冲区目标大小,因此缓冲区目标大小随着网络抖动而变 化,依据缓冲区目标大小调整缓冲区,可使缓冲区的大小随着网络抖动而变化,由于缓冲区 的大小与其能够克服的网络抖动的能力密切相关,通过对缓冲区目标大小调整缓冲区可解 决网络抖动。
[0150] 图7是根据一示例性实施例示出的一种网络抖动处理装置实施例二的框图,如图7 所示,在图6所示实施例的基础上,第n个时间间隔Jn = Rn-Rn-I,其中,Rn表示第n个语音数据 包的接收时刻,Rn-I表示第n-1个语音数据包的接收时刻,(N-1),N表示所述语音数据 包的总个数;所述预设区间的个数为多个,第i个预设区间为
庚中,T为 发送端发送所述语音数据包的固定时间间隔,K为正整数。
[0151] 统计模块63包括:第一统计子模块631、第一计算子模块632和第二统计子模块 633。
[0152] 第一统计子模块631,被配置为统计所有时间间隔中分别落入各个预设区间的时 间间隔的个数Ni,i > 0,其中,i表示预设区间的标识号,Ni > 0;
[0153] 第一计算子模块632,被配置为依据各个Ni和所述语音数据包的总个数的十算所述 时间间隔落入各个预设区间的概率
[0154] 第二统计子模块633,被配置为当N^Nmax时,对于任何一个n^n^Nmax,则将第(n- Nmax+1)个时间间隔所属的预设区间对应的时间间隔的个数减1,其中,Nmax为所述语音数据 包的总个数的阔值。
[01巧]计算模块62包括:第二计算子模块621和第S A管革照化GW,
[0156] 第二计算子模块621,被配置为计算满足条f 的m,其中,P表示已知 的容许抖动概率;
[0157] 第=计算子模块622,被配置为计算多个所述预设区间中第0个预设区间连续到第 m个预设区间的大小之和,所述之和为所述缓冲区目标大小。
[0158] 调整模块64包括:第一调整子模块641和第二调整子模块642。
[0159] 第一调整子模块641,被配置为若缓冲区的当前大小小于所述缓冲区目标大小,且 缓冲区有效长度为0,则在所述缓冲区中生成数据进行补帖;
[0160] 第二调整子模块642,被配置为若缓冲区的当前大小大于所述缓冲区目标大小,贝U 删除所述缓冲区中的非语音数据,W使所述缓冲区的当前大小与所述缓冲区目标大小的差 值在预设范围内。
[0161] 所述装置还包括解码模块65,被配置为接收记录模块61接收多个语音数据包,并 记录各个语音数据包的接收时刻之后,对所述多个语音数据包中的每个语音数据包进行解 码获得语音数据或非语音数据,并将所述语音数据或所述非语音数据存入所述缓冲区。
[0162] 本实施例提供的网络抖动处理装置可W用于执行图2-图5任一所示方法实施例的 技术方案。
[0163] 本实施例中,通过统计所有时间间隔中分别落入各个预设区间的时间间隔的个 数,根据每个预设区间的时间间隔的个数与语音数据包的总个数的比值作为时间间隔落入 该预设区间的概率,得出时间间隔落入各个预设区间的概率,可获得时间间隔的概率分布; 通过每增加一个新的时间间隔减少一个存在时间最久的时间间隔,保证随着接收端接收到 语音数据包的增加,分布在各个预设区间的时间间隔的总数不变;通过时间间隔的概率分 布和容许抖动概率计算缓冲区目标大小,并依据缓冲区目标大小调整缓冲区的当前大小, W使缓冲区的大小随着网络抖动而动态调节,从而解决了网络抖动;通过在接收端的解码 器和放音模块之间添加一个缓冲区,接收端的RTP报文接收模块将接收到的语音数据包具 体为RTP报文传到解码器,由解码器对RTP报文进行解码处理获得语音数据或非语音数据, 并将语音数据或非语音数据放入缓冲区,对缓冲区的动态调节实现对网络抖动的处理。
[0164] 关于上述实施例中的网络抖动处理装置,其中各个模块、子模块执行操作的具体 方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0165] W上描述了网络抖动处理装置的内部功能和结构,如图8所示,实际中,该网络抖 动处理装置可实现为终端设备,包括:
[0166] 处理器;
[0167] 被配置为存储处理器可执行指令的存储器;
[0168] 其中,所述处理器被配置为:
[0169] 接收多个语音数据包,并记录各个语音数据包的接收时刻;
[0170] 依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个语音数据包的 时间间隔;
[0171] 依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布;
[0172] 依据所述概率分布和容许抖动概率计算缓冲区目标大小;
[0173] 依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
[0174] 本实施例中,由于接收端接收语音数据包的时间间隔的概率分布随网络抖动的变 化而变化,接收端接收语音数据包的时间间隔是一个随机变量,本实施例通过时间间隔的 概率分布和容许抖动概率计算缓冲区目标大小,因此缓冲区目标大小随着网络抖动而变 化,依据缓冲区目标大小调整缓冲区,可使缓冲区的大小随着网络抖动而变化,由于缓冲区 的大小与其能够克服的网络抖动的能力密切相关,通过对缓冲区目标大小调整缓冲区可解 决网络抖动。
[0175] 图9是根据一示例性实施例示出的另一种终端设备的框图。例如,终端设备800可 W是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健 身设备,个人数字助理等。
[0176] 参照图9,终端设备800可W包括W下一个或多个组件:处理组件802,存储器804, 电力组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814, W及通信组件816。
[0177] 处理组件802通常控制终端设备800的整体操作,诸如与显示,电话呼叫,数据通 信,相机操作和记录操作相关联的操作。处理组件802可W包括一个或多个处理器820来执 行指令,W完成上述的方法的全部或部分步骤。此外,处理组件802可W包括一个或多个模 块,便于处理组件802和其他组件之间的交互。例如,处理组件802可W包括多媒体模块,W 方便多媒体组件808和处理组件802之间的交互。
[0178] 存储器804被配置为存储各种类型的数据W支持在设备800的操作。运些数据的示 例包括用于在终端设备800上操作的任何应用程序或方法的指令,联系人数据,电话簿数 据,消息,图片,视频等。存储器804可W由任何类型的易失性或非易失性存储设备或者它们 的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器化EPROM),可擦除 可编程只读存储器化PROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪 存储器,磁盘或光盘。
[0179] 电力组件806为终端设备800的各种组件提供电力。电力组件806可W包括电源管 理系统,一个或多个电源,及其他与为终端设备800生成、管理和分配电力相关联的组件。
[0180] 多媒体组件808包括在所述终端设备800和用户之间的提供一个输出接口的屏幕。 在一些实施例中,屏幕可W包括液晶显示器化CD)和触摸面板(TP)。如果屏幕包括触摸面 板,屏幕可W被实现为触摸屏,W接收来自用户的输入信号。触摸面板包括一个或多个触摸 传感器W感测触摸、滑动和触摸面板上的手势。所述触摸传感器可W不仅感测触摸或滑动 动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中, 多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模 式或视频模式时,前置摄像头和/或后置摄像头可W接收外部的多媒体数据。每个前置摄像 头和后置摄像头可W是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0181] 音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克 风(MIC),当终端设备800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风 被配置为接收外部音频信号。所接收的音频信号可W被进一步存储在存储器804或经由通 信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0182] I/O接口 812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可 W是键盘,点击轮,按钮等。运些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁 定按钮。
[0183] 传感器组件814包括一个或多个传感器,用于为终端设备800提供各个方面的状态 评估。例如,传感器组件814可W检测到设备800的打开/关闭状态,组件的相对定位,例如所 述组件为终端设备800的显示器和小键盘,传感器组件814还可W检测终端设备800或终端 设备800-个组件的位置改变,用户与终端设备800接触的存在或不存在,终端设备800方位 或加速/减速和终端设备800的溫度变化。传感器组件814可W包括接近传感器,被配置用来 在没有任何的物理接触时检测附近物体的存在。传感器组件814还可W包括光传感器,如 CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可W 包括加速度传感器,巧螺仪传感器,磁传感器,压力传感器或溫度传感器。
[0184] 通信组件816被配置为便于终端设备800和其他设备之间有线或无线方式的通信。 终端设备800可W接入基于通信标准的无线网络,如WiFiJG或3G,或它们的组合。在一个 示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广 播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,W促进 短程通信。例如,在NF对莫块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带 (UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0185] 在示例性实施例中,终端设备800可W被一个或多个应用专用集成电路(ASIC)、数 字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程口阵列 (FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
[0186] 在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例 如包括指令的存储器804,上述指令可由终端设备800的处理器820执行W完成上述方法。例 如,所述非临时性计算机可读存储介质可W是ROM、随机存取存储器(RAM)、CD-R0M、磁带、软 盘和光数据存储设备等。
[0187] -种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理 器执行时,使得移动终端能够执行一种网络抖动处理方法,所述方法包括:
[0188] 检测用户拍摄照片时的手势,所述用户的终端设备在拍摄照片时处于水平放置状 态;
[0189] 根据拍摄手势与照片显示方向的对应关系,确定与检测到的所述手势对应的照片 显示方向,所述照片显示方向是所述照片相对于处于水平放置状态的所述终端设备的边框 的显示方向;
[0190] 根据所述照片显示方向和重力方向显示所述照片。
[0191] 本领域技术人员在考虑说明书及实践运里公开的发明后,将容易想到本公开的其 它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,运些变型、用途或 者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识 或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的 权利要求指出。
[0192] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并 且可W在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
【主权项】
13. -种终端设备,其特征在于,包括: 处理器; 被配置为存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 接收多个语音数据包,并记录各个语音数据包的接收时刻; 依据所述接收时刻计算接收所述多个语音数据包中所有相邻两个语音数据包的时间 间隔; 依据各个时间间隔所属的预设区间统计所述时间间隔的概率分布; 依据所述概率分布和容许抖动概率计算缓冲区目标大小; 依据所述缓冲区目标大小调整缓冲区W解决网络抖动。
【文档编号】H04L12/885GK105939289SQ201510967352
【公开日】2016年9月14日
【申请日】2015年12月21日
【发明人】李敬, 王林章, 梁善桂, 吴子敬
【申请人】小米科技有限责任公司
文档序号 :
【 10578093 】
技术研发人员:李敬,王林章,梁善桂,吴子敬
技术所有人:小米科技有限责任公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
技术研发人员:李敬,王林章,梁善桂,吴子敬
技术所有人:小米科技有限责任公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除