专利名称:一种实现丢包隐藏的方法和装置的制作方法
技术领域:
本发明涉及网络通信技术领域,尤指一种估计基音周期的方法和装置、一 种对基因周期进行微调的方法和装置以及实现丢包隐藏的方法和装置。
背景技术:
最初,IP网络是为传输包含较大的包且不需要实时可靠传送的数据流而设 计的。而现在IP网络中也传输语音数据。语音的传输需要实时可靠地传送较小 的语音包,当一个语音包在传输过程中被丢弃时,通常没有时间重新传送该被 丢弃的包。另外,当一个语音包经过了一段较长的路由而在需要播放时不能及时到达时,这个包已经失去了存在的意义。因此在基于IP网络协议的语音(VoIP, Voice over Internet Protocol)系统中,语音包不能及时到达或不能到达时,都被 认为该语音包丢失了。网络传输过程中的丢包是在网络传输语音数据时服务质量下降的主要原 因。而丢包隐藏技术是指通过合成的数据包补偿丟失的包,来减小传输过程中 的丟包对语音质量的影响。如果没有有效的语音丢包隐藏技术,即使是设计和 管理得最好的IP网络也不能提供长话级品质的通信。而设计良好的解决丢包问 题的技术,能很大程度上提高语音传输的质量。因此在现有技术中,不同的机 制被用来隐藏由于丢包引起的影响。例如G.711协议的附录1中记录了以基音波 形替代为基础的丟包隐藏方法。基音波形替代是一种基于收端的处理技术,它根据语音的特点对丢失的数 据帧进行补偿。下面介绍基音波形替代技术的原理、实现过程以及存在的缺点。在语音信号中, 一般清音从波形上看是杂乱无章的,而浊音在波形上则表 现出周期性。基音波形替代的主要原理是首先,利用丢失帧前一帧的信息,即波形缺口位置的前一帧的信息来估计出基音周期P,然后,用缺口位置之前的, 长度为P的 一段波形来#卜偿波形的缺口 。图1是现有技术中利用基音波形S卜偿丢失帧的示意图。如图1所示,帧2为丢失的音频帧,帧长为L,帧1是帧2之前的音 频帧,帧3是帧2之后的音频帧,且帧1和帧2都是完好的数据帧。假定已经检测 出丢失帧前一帧,即帧2对应的基音周期为P,在图l中用区间l表示,那么根据 浊音的周期性特点,就可以把丢失帧的前一帧的最后一个基音周期的数据,也 就是区间l对应的数据复制到丟失帧,以重建丟失帧2的信号。如果一个基音周 期的数据不足以把丢失帧的空缺填满,即基音周期P〈丢失帧的帧长L,则重复 复制区间l的数据到丢失帧的空缺进行填充。例如在图1中,L = 2P,因此在复 制区间1中的数据到区间2之后,还要再次复制区间1中的数据到区间3,即需要 两个基音周期才能填满丟失帧。在现有技术中 一般使用自相关分析的方法来获得基音波形替代方法中所使 用的基音周期P。自相关分析是一种常用的语音时域波形分析方法,由相关函 数来定义。相关函数可用来测定信号间的时域相似性,当进行相关的两个信号 完全不同时,相关函数的值接近于零;当进行相关的两个信号的波形相同时, 则会在超前或滞后处出现峰值。因此,自相关函数可用于研究信号本身,如波 形的同步性、周期性等等。图2是现有技术中利用自相关分析来计算基音周期的方法的示意图。在图2 中,长度为35ms的语音数据是历史緩沖区(HB)中的一段数据,即丟失帧之 前的一段数据。TW是模版窗,该窗的尾部与HB中数据的尾部对齐,R对应 TW在HB中的起始位置。由于最大可能基音周期为15ms,因此通常取TW的 长度W为20ms。 SW是滑动窗,其窗长与模版窗TW的长度相同,也为20ms, TW的位置保持不变,而SW的起始位置L从HB的起始位置1点开始滑动到 Q点,从HB的1点到Q点的长度等于最大可能基音周期减去最小可能基音周 期。在SW的滑动过程中计算SW中的采样点和TW中的采样点的自相关值, 以搜索最佳匹配点,在最佳匹配点处SW中的采样点信号与TW中的采样点信 号的自相关值最大。则最佳匹配点和TW的起始位置R之间的距离P即为所估计的基音周期。在上述过程中,用x(i)表示HB中的第i个采样点,且HB中采样点个数, 即35ms数据中的采样点个数为LEN, SW和TW中采样点个H即20ms数据 中的采样点个数为W,则SW中的采样点信号与TW中的采样点信号的相关函数CR如公式(1 )所示<formula>formula see original document page 13</formula>其中,SW和TW分别表示滑动窗和模板窗中的采样点序列,k为与滑动窗SW的起始位置L对应的HB中的釆样点的序号,也就是SW向右滑动的距离。在现有技术标准中用k点对应的SW与TW的自相关值与滑动窗SW的能量比值作为匹配值corr(k),如公式(2)所示<formula>formula see original document page 13</formula>最佳匹配点BK是在搜索过程中于匹配值的最大^直BC ( Best Corr )对应的k点的 位置,BC如公式(3)所示BC=max{c。rr(X)|l S k S MaxPitch—MinPitch} (3)其中,MaxPitch是最大可能基音周期长度数据中的采样点个数,MinPitch是最 小可能基音周期长度数据中的采样点个数。计算出最佳匹配点BK后,即可估计出基音周期P,如公式(4)所示 P二MaxPitch—BK+1 (4)为了减少计算量,在现有技术中给出了先隔点抽样计算匹配值,找出一个 粗糙的匹配点,然后在匹配点附近逐点计算匹配值,以进一步精确最佳匹配点 的^立置的方法。得到HB中数据的基音周期P后,如果直接用HB中最后基音周期长度的数据对丢失帧缺口进行重复填充,则会在两个基音周期数据的拼接处产生波形的突变。为了保证拼接处的平滑,在用HB中的最后一个基音周期的数 据对丢失帧进行填充之前,要对HB中最后1/4基音周期的数据进行平滑处 理。图3是现有技术中对历史緩冲区中最后1/4基音周期的数据进行平滑处 理的示意图。如图3所示,将HB中最后一个基音周期之前的四分之一基音 周期数据乘以上升窗,将HB最后四分之一基音周期数据乘以下降窗,并将 上述两个1/4基音周期的数据做叠加,然后用叠加得到的1/4基音周期数据 替换掉HB中最后1/4基音周期中的内容,以保证HB中的前帧原始信号和 填充的丢失帧信号之间的平滑过渡。对HB中的最后一个基音周期的数据进行图3所示的平滑处理后,对丢失 帧进行补偿。图4是现有技术中用平滑后的基音周期数据补偿丢失帧的示意图。 如图4所示,信号"Input"是丢失了两个帧的音频信号,且丟失帧之前的1/4 基音周期数据,即历史緩冲区HB中的最后1 /4基音周期数据已经用图3所示的 方法进行了平滑。用HB中最后 一个基音周期的数据填满第 一个丢失帧后, 需要在第一个丢失帧的尾部延伸l/4基音周期的长度的数据,如信号"After 10ms"所示。在用HB中的最后一个基音周期数据填充第一个丢失帧时还需要保存一 个和基音周期相关的数据的偏移量OFFSET,它将用在有连续丟包的情况 下。假定基音周期的长度为P,完整一帧对应的长度为L,则填满一帧后, OFFSET的值为OFFSET = L%P 。在图4中,将第一个丢失帧填满后,将历史緩冲区HB尾部的两个基音 周期的数据放入到一个緩沖区PB中,然后在HB尾部向后二又四分之一基 音周期处开始取四分之一基音周期的数据和緩冲区PB最后四分之一基音周 期的数据做叠加,然后用这两个基音周期长度的数据更新緩冲区PB中的 数据。然后再在緩冲区PB的OFFSET处开始,取四分之一基音周期长度的 数据并乘上一个上升窗,将填充第一个数据包时延伸的四分之一基音周期的,两者做叠加处理,并将叠加处理后的数据填充到第二帧开始的四分之一基音周期。最后,从緩沖区PB的OFFSET+四分之一基音 周期处继续取数据填充丢失的第二帧剩余的空间,并更新OFFSET的值OFFSET = (OFFSET+L )%P最后,还需要保证第2个丢失帧和其下一帧的波形的平滑过渡,从缓沖区PB的OFFSET处开始取四分之一基音周期加上其随后的4ms数据并乘 上一个下降窗,和下一帧开始的四分之一基音周期加上4ms的数据乘上一个 上升窗进行叠加,并替换下一帧开始的四分之一基音周期加上4ms的数据, 就得到了经过补偿后的音频信号,如图4中的信号"Concealed"所示,信 号"Original"是原始信号。图4给出了现有技术中填充两个丢失帧的过程,如果连续丢失了 3个数 据帧,仍然按照填充第二个丟失帧的方法填充第三个丟失帧。并且在现有技 术中,在连续丢帧的情况下,需要从第二个丢失帧开始进行线性的能量衰减, 其中每10ms衰减20%。当丢失帧的数据达到60ms后,就将丢失帧的数据 全部置为0。但是在上述利用基音波形补偿丢失帧的方法中存在如下的缺点1) 采用自相关分析的方法估计出的浊音基音周期P不够准确。利用图2 所示的方法查找最佳匹配点时,只查找一个最佳的匹配点,没有考虑到倍频 的问题,因此可能会估计出一个错误的基音周期,则用错误的基音周期数据 对丟失帧的数据进行补偿时,会影响到丟失帧合成的质量。另外,估计基音 周期的初衷本是要获得最接近丢失帧处的数据的基音周期,但在使用图2所 示的自相关方法计算基音周期的时,却需要使用丢失帧之前至少22.5ms的 采样数据,因此,在计算距离丢失帧起始处最近一段数据的基音周期时,会 产生一定的误差,使用有误差的基音数据填充丢失帧的数据时,就使得拼接 处的相位发生突变。2) 在现有技术中只使用丢失帧之前的数据,即历史数据进行填充。由 于音频信号中的基音周期也是逐渐变化的,因此距离丢失帧越远的数据与丢失帧的相关性越弱,只用丢失帧之前的数据对丢失帧进行补偿,有可能在丢 失帧和其之后的帧相连的地方发生相位不连续的现象。3)当丢失帧发生在有语音渐变的地方时,只用丢失帧的前一基音周期 数据对丢失帧数据进行恢复,则会发生幅度不连续的现象。发明内容有鉴于此,本发明实施例提供了一种估计基音周期的方法,该方法能够 消除估计基音周期时存在的倍频问题。本发明实施例提供了一种估计基音周期的装置,该装置能够消除估计基 音周期时存在的倍频问题。本发明实施例还提供了 一种对基音周期进行微调的方法,该方法能够减 小估计基音周期的误差。本发明实施例还提供了 一种对基音周期进行微调的装置,该装置能够减小估计基音周期的误差。本发明实施例提供了 一种实现丢包隐藏的方法,该方法增强了恢复的丢 失帧数据与丢失帧之后的数据之间的相关性。本发明实施例提供了 一种实现丢包隐藏的装置,该装置增强了恢复的丢 失帧数据与丢失帧之后的数据之间的相关性。为达到上述目的,本发明的技术方案具体是这样实现的本发明实施例公开了 一种估计基音周期的方法,该方法包括以下步骤获取已知语音数据的初始基音周期;从初始基音周期所对应频率的一个以上的大于1的整数倍频率所分别对应 的基音周期中,选择所对应频率小于或等于最小可能基音周期所对应频率的基 音周期作为候选基因周期,并从初始基因周期和候选基音周期中选择一个基因 周期作为所述已知语音数据的最终估计基音周期。本发明实施例公开了一种估计基音周期的装置,该装置包括初始基音 周期获取模块和选择模块,其中,初始基音周期获取模块,用于获取已知语音数据的初始基音周期,并发送给选择模块;选择模块,从初始基音周期所对应频率的一个以上的大于i的整数倍频率 所分别对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所对 应频率的基音周期作为候选基因周期,并从初始基因周期和候选基音周期中选 择一个基因周期作为所述已知语音数据的最终估计基音周期。本发明实施例公开了一种对基音周期进行微调的方法,该方法还包括 获取丟失数据之前或丟失数据之后的已知数据的初始基音周期; 在所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗; 设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在 预设点周围的预设范围内滑动,所述预设点是已知数据中与模板窗靠近丢失数 据的端点距离初始基音周期长度的点;在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的数据 与滑动窗中数据的匹配值,并从中查找出最佳的匹配值,并将具有最佳匹配值 时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期。本发明实施例公开了一种对基音周期进行微调的装置,该装置包括初始 基音周期获取模块,设置模块和计算模块,其中,初始基音周期获取模块,用于获取丟失数据之前或丢失数据之后的已知数 据获取初始基音周期,并发送给设置模块;设置模块,用于接收初始基音周期获取模块发送的初始基音周期,并在所 述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗,设置长度与模 板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设 范围内滑动;所述预设点是已知数据中与模板窗靠近丢失^:据的端点距离初始基音周期长度的点;计算模块,用于在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳匹配值,并将具 有最佳匹配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期。本发明实施例^Hf 了 一种实现丟包隐藏的方法,该方法包括 设置长度与丟失数据长度相等的丟失帧主緩沖区和丢失帧临时緩冲区; 利用丢失数据之前的已知数据中的一个基音周期数据,填充丢失帧主緩沖区;利用丢失数据之后的已知数据中的一个基音周期数据,或利用丢失数据之 前的已知数据中的一个基音周期数据,填充丟失帧临时緩沖区;对丢失帧主緩冲区和丟失帧临时緩冲区中的数据进行叠加处理,并用所述 叠加处理后的lt据补偿丢失帧。本发明实施例公开了一种实现丢包隐藏的装置,该装置包括主处理模块、 丟失帧主緩冲区和丢失帧临时緩冲区,其中,主处理模块,用于利用丢失数据之前的已知凝:据中的一个基音周期数据, 填充丢失帧主緩冲区,并利用丢失数据之后的已知数据中的一个基音周期数据, 或利用丟失数据之前的已知数据中的一个基音周期数据,填充丟失帧临时緩冲 区;并将丢失帧主緩冲区和丟失帧临时緩沖区中的数据进行叠加处理后,用所 述叠加处理后的数据补偿丢失帧;丢失帧主緩冲区,用于存储主处理模块所填充的数据,其长度与丟失数据 长度相等;丢失帧临时緩冲区,用于存储主处理模块所填充的凝:据,其长度与丟失数 据长度相等。由上述技术方案可见,本发明实施例中,通过从初始基音周期所对应频 率的一个以上的大于1的整数倍频率所分别对应的基音周期中,选择所对应 频率小于或等于最小可能基音周期所对应频率的基音周期作为候选基因周 期,并从初始基因周期和候选基音周期中选择一个基因周期作为所述已知语 音数据的最终估计基音周期的技术方案,能够消除估计基音周期时存在的倍 频问题。本发明实施例中,通过在与初始基音周期对应的匹配点附近查找最 佳匹配点,并根据最佳匹配点的位置对估计的初始基音周期进行微调的技术方案,减小了估计基音周期的误差。本发明实施例中,利用历史数据中的一 个基音周期数据,填充丢失帧主緩冲区,利用当前数据中的一个基音周期数 据,或利用历史数据中的一个基音周期数据,填充丢失帧临时緩冲区,对丢 失帧主緩沖区和丢失帧临时緩冲区中的数据进行叠加处理,并用所述叠加处 理后的数据补偿丟失帧的技术方案增强了恢复的丢失帧数据与丢失帧之后 的数据之间的相关性,进而改善了恢复的丢失帧数据与丢失帧之后的数据之 间相位的连续性。
图1是现有技术中利用基音波形补偿丢失帧的示意图; 图2是现有技术中利用自相关分析来计算基音周期的方法的示意图; 图3是现有技术中对历史緩冲区中最后1/4基音周期的数据进行平滑处 理的示意图;图4是现有技术中用平滑后的基音周期数据补偿丟失帧的示意图; 图5是本发明实施例中倍频点的示意图; 图6是本发明实施例一种估计基音周期的方法的流程图; 图7是本发明实现图6所示方法的一个具体实施例的流程图; 图8是本发明实施例 一种估计基音周期的装置的结构框图; 图9是本发明实施例对丢失帧之前的数据的基音周期进行微调的示意 图;图10是本发明实施例一种对基音周期进行微调的方法的流程图;图11是本发明实施例对丟失帧之后的数据的基音周期进行微调的示意图;图12是本发明实施例对基音周期进行微调的装置的结构框图; 图13是本发明实施例一种结合历史数据和当前数据实现丟包隐藏的方 法的流程图;图14是本发明实施例对当前帧进行平滑处理的示意图;图15是本发明实施例用当前数据反向填充丟失数据的示意图; 图16是本发明实施例在基音緩冲区中查找与给定波形最匹配的波形的 示意17是本发明实施例对恢复的丟失帧数据进行幅度平滑处理后的示意图;图18是本发明实施例 一 种实现丢包隐藏的装置的结构框图; 图19是本发明实施例实现丢包隐藏的装置在接收端系统中的外部连接 示意图;图20是本发明实施例在实际系统中应用实现丢包隐藏的方法的流程图。
具体实施方式
本发明实施例主要通过对现有的丟包隐藏技术进行改进,以减d、现有技 术对丢失帧进行补偿时存在的基音周期估计误差,相位不连续,幅度不连续 等问题。首先描述本发明对现有的基音周期估计方法进行改进的实施例。 前面提到过浊音是具有周期性的,且周期为P,即基音周期为P,因此在图 2中,HB中的采样点数据x的周期性可用公式(5)表示x(m)ax(m+P) (5) 并且由于周期函数的自相关函数与该周期函数具有相同的周期特性,因此公式 (1)所示的相关函数的周期性可用公式(6)表示CR(k)=CR(k+P) (6)因此,通过图2所示的方法查找到最佳匹配点有可能是干扰倍频点。图5 是本发明实施例中倍频点的示意图。如图5所示,通过图2所示的自相关分析 方法得到最佳匹配点为k3,但图5中的这段波形的真实基音周期的最佳匹配点 为kl,即所查找到的最佳匹配点k3对应的频率有是kl处所对应频率的1/N, 其中N是大于1的整数。因此,此时所估计的k3处所对应的基音周期为kl处所对应的基音周期的N倍,即为真实基音周期的整数倍。针对该问题本发明实 施例给出了如下的解决方案。图6是本发明实施例一种估计基音周期的方法的流程图。如图6所示,包 括以下步骤步骤601 ,获取已知语音数据的初始基音周期。在本步骤中,可以利用图2所示的自相关分析方法估计出一个基音周期值, 并将该基音周期值设置为初始基音周期。步骤602,从初始基音周期所对应频率的一个以上的大于1的整数倍频率 所分别对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所对 应频率的基音周期作为候选基因周期,并从初始基因周期和^f'矣选基音周期中选 择一个基因周期作为所述已知语音数据的最终估计基音周期。在本步骤中,将初始基音周期对应频率的一个以上的整^:倍频率所分别对应的基音周期作为候选基因周期的实现过程可以是查找出所有大于最小可能 基音周期的初始基音周期的因数,作为候选基音周期。例如,当初始基音周期为12ms,而最小可能基音周期为2.5ms时,所有大 于2.5ms的12ms的因凄t为6ms、 4ms禾口 3ms。本步骤中,可以根据与初始基音周期以及各个候选基音周期对应的匹配值 来进行选择。通过图6所示的方案可以消除现有技术估计基音周期时存在的倍频问题。 图7是本发明实现图6所示方法的一个具体实施例的流程图。如图7所示, 包括以下步骤步骤701,利用图2所示的自相关分析方法,查找出最佳匹配点,获得与 最佳匹配点对应的基音周期P0,初始化最佳基音周期BP,令BP二PO,并记录 相应的匹配^f直BC。本步骤中,匹配值BC如公式(3)所示。步骤702,初始化N,令N二1。本步骤中,N表示最佳基音周期发生在PO点对应频率的N倍处,当N-l,则表示最佳基音周期BP = P0。步骤703,令N=N+1, P=P0/N,即设真实的基音周期P对应的频率为P0 对应的频率的N倍。步骤704,判断步骤703中所得到的P是否大于或等于最小可能基音周期, 是则执行步骤705,否则结束本流程。本步骤中,检测P是否大于等于最小可能基音周期。通常最小可能基音周 期取2.5ms,在8kHz的采样速率下,对应20个采样点。如果P小于最小可能 基音周期,则当前的BP值即为所要估计的最佳基音周期,结束本流程。步骤705 ,获取与P对应的匹配值BC,。步骤706,判断BC,是否满足预设的条件,是则执行步骤707,否则回到步 骤703。在本步骤中,预设条件可以为BC,》axBC,其中a是一个常数,其经验 值可取0.85。步骤707,更新最佳基音周期BP,令BP:P,并执行步骤703。通过上述流程,就可以查找出所有大于最小可能基音周期的初始基音周 期的因数,并逐个进行比较选择出一个最佳的基音周期BP。但在上述过程中, 可能有两个以上的因数的匹配值都满足大于或等于0.85BC的条件,在图7所示的 流程中最终选择出来的是倍频最大的因数,即值最小的因数。当然也可以将图7 所示的流程设置为当有一个因数的匹配值满足条件时,便认为该因数是最佳 基音周期,结束流程。在步骤707中,较佳地,也可以用当前的BC,更新BC,即令BC-BC,, 这样每次进行比较的时候,不是一直与初始基音周期PO相比较,而是与上一 次的比较过程中选择出来的较佳值进行比较。更进一步的,考虑到自相关方法本身存在的误差,在步骤703或步骤705 中,可以先在P值附近的一定范围内选择一个匹配值最大的点P,,用P,代 替P,对P进行修正,以减少误差带来的影响。其具体过程可以是参照图 2,在与P对应的k点的附近进行搜索,找出匹配值BC最大的点k,,与k,对应的基音周期即为P,, 8KHZ采样速率下,对k点附近的3个点进行搜索 可以获得较好的效果。图8是本发明实施例一种估计基音周期的装置的结构框图。如图8所示, 该装置包括初始基音周期获取模块801和选择模块802。初始基音周期获取模块801,用于获取已知语音数据的初始基音周期,并 发送给选择模块802。选择模块802,从初始基音周期所对应频率的 一个以上的大于1的整数倍频 率所分别对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所 对应频率的基音周期作为候选基因周期,并从初始基因周期和候选基音周期中 选择一个基因周期作为所述已知语音数据的最终估计基音周期。在图8中选择模块802包括计算模块803和比较804,其中,计算模块803,用于分别计算出与初始基音周期和各个候选基音周期对应 的匹配值,并发送给比较模块804;比较模块804,用于对所接收到的与初始基音周期和各个候选基音周期对 应的匹配值进行比较,从中选择出一个最佳匹配值,并将该最佳匹配值所对应 的基音周期作为所述已知语音数据的最终估计基音周期。图8中的选择模块802还可以进一步用于,对于每一个候选基音周期,在该 候选基音周期所对应的匹配点周围的预设范围内进行搜索,查找出 一个匹配值 为最佳匹配值的匹配点,并用该匹配点对应的基音周期替换该候选基音周期; 并从初始基音周期以及所述替换后的候选基音周期中选择一个基音周期作为所 述已知语音数据的最终估计基音周期。前面提到过估计基音周期的初衷本是要获得最接近丟失帧处的数据的 基音周期,但在使用图2所示的自相关方法计算基音周期的时,却需要使用 丢失帧之前至少22.5ms的采样数据,因此,在计算距离丢失帧起始处最近一 段数据的基音周期时,会产生一定的误差。因此,接下结合图9和图10来描 述本发明通过对已获得的基音周期进行微调来减小估计误差的技术方案。图9是本发明实施例对丟失帧之前的数据的基音周期进行微调的示意图。在图9中,所示信号是历史緩冲区HB中音频信号。图10是本发明实施例 一种对基音周期进行微调的方法的流程图。如图10所示,包括以下步骤 步骤IOOI,获取丢失数据之前或丟失数据之后的已知数据的初始基音周期。在本步骤中,获取HB中数据的初始基音周期PO。 P0可以利用图2所示的 自相关分析方法获取的基音周期,也可以是经过图6所示的方法进行消除倍 频处理的基音周期,还可以是用其他方法获得的基音周期。步骤1002,在所述已知数据靠近丢失数据的一端,设置长度为预设值的 模板窗。与本步骤对应,在图9中,从历史緩冲区HB的最后一个采样点开始向前取 L个采样点数的一段数据作为模版窗TW。 HB的长度为LEN, TW的起始点为S,, 末尾点为ET,则有ST=LEN—L+lE丁二LEN在本步骤中,L的长度较佳地,取0.55xpo左右的值,但不少于0.25x PO。步骤1003,设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢 失数据的端点在预设点周围的预设范围内滑动,所述预设点是已知数据中与 模板窗靠近丢失数据的端点距离初始基音周期长度的点。与本步骤对应,在图9中在历史緩冲区HB中设置一个长度也为L的 滑动窗SW,并使SW的末尾点在Z点附近的预设范围内滑动,Z点是距离 TW的Et端点一个初始基音周期PO长度的点。SW的起始点为S^末尾点 为E^ Z点与HB的末尾点,也就是与TW的末尾点ET之间的距离为PO, 即Ss二St—PO, Es在[Z-R, Z+R]的范围内滑动。步骤1004,在滑动窗的滑动过程中,计算模板窗中的数据与滑动窗中数 据的匹配值,并从中查找出最佳的匹配值,并将具有最佳匹配值时的模板窗与 滑动窗的对应端点之间的距离作为微调后的基音周期。。在本步骤中,在SW的滑动过程中,计算SW与TW的匹配值,查找出 其中的最佳匹配值,即查找出一个与TW最为相似的SW的位置,并将此时 的T W与S W的对应端点之间的距离P1作为最终估计的基音周期。计算TW与SW的匹配值时,可以采用自相关分析的方法,如采用公式 (2)计算SW与TW的匹配值。为了减小计算的复杂度,也可以计算SW 中采样点与TW中对应的采样点的幅度差值的绝对值的总和BMV,如公式 (7)所示BMV (i) =S|x (Z—L+i+k)-x (ST+k-1)| -R"R (7)其中x (i)表示HB中的第i个数据。用公式(7)进行计算时,匹配值与BMV成反比,因此查找最小的BMV, 即BestBMV = min ( BMV (i) ), —R^i^R。另外,在步骤1104中,作为一种优选的方案,建议先从中间位置1 = 0 处开始,然后再向两侧进行搜索来查找最佳的匹配值。即首先计算1=0处 BMV的值,并作为最初的BestBMV,然后再计算i二土l , i=±2,..., i=±R 处对应的BMV值,并与BestBMV依次进行比较,如果小于BestBMV,则 将BestBMV值更新为BMV值。通过上述步骤可以估计出一个较为接近真实值的基音周期PI。在估计丢失帧之后的数据的基音周期时,可以用上述方法对初始的有误 差的基音周期进行微调,以达到减小误差的目的。图11是本发明实施例对丟失帧之后的数据的基音周期进行微调的示意 图。在图11中,首先利用丟失数据之后的一段已知数据获取初始基音周期 P0。 PO可以利用图2所示的自相关分析方法获取的基音周期,也可以是经 过图6所示的方法进行消除倍频处理的基音周期,还可以是用其他方法获得 的基音周期。在丢失数据之后的一段已知数据的长度不足以利用自相关分析 等方法计算出其基音周期时,可用丢失数据之前的已知数据的基音周期代替 P0。然后在所述丢失数据之后的数据的起始位置开始向后取L个采样点数的一段数据作为模版窗TW。 L的长度较佳地,取0.55xpo左右的值,但在所 述丢失数据之后的已知数据的长度不够0.55 xpo时,可以适当的减小L的 长度,但较佳地,L不少于0.25xpo。设置长度与模板窗相同的滑动窗SW, 并使滑动窗SW的起始端点在在Z点的预设范围[Z-R, Z+R]内滑动,Z点 是距离TW的St端点一个初始基音周期PO长度的点,SW的起始点为S^ 末尾点为Es 。在滑动窗SW的滑动过程中,计算模板窗TW中的数据与滑动窗SW中数据的匹配值,查找出其中的最佳匹配值,即查找出一个与TW最 为相似的SW的位置,并将此时的TW与SW的对应端点之间的距离Pl作 为最终估计的基音周期。计算TW与SW的匹配值时,可以采用自相关分析 的方法,如采用公式(2)计算SW与TW的匹配值。为了减小计算的复杂 度,也可以计算SW中采样点与TW中对应的采样点的幅度差值的绝对值的 总和BMV,如公式(7)所示,此时的最佳匹配值对应BMV的最小值。在图11所示的实施例中,对丢失帧之后的数据的基音周期进行微调时, 较佳地,窗的长度L取大于0.25 xpo,因此从图ll可以看出,较佳地,在 所获得的丢失帧之后的数据的长度大于或等于1.25 xpo时才进行基音周期 的微调。图12是本发明实施例对基音周期进行微调的装置的结构框图。如图12所 示,该装置包括初始基音周期获取模块1201,设置模块1202和计算模块1203, 其中,初始基音周期获取模块1201,用于获取丢失数据之前或丢失数据之后的已 知数据获取初始基音周期,并发送给设置模块1202;设置模块1202,用于接收初始基音周期获取模块1201发送的初始基音周 期,并在所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗,设 置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点 周围的预设范围内滑动;所述预设点是已知数据中与模板窗靠近丢失数据的端 点距离初始基音周期长度的点;计算模块1203,用于用于在所述滑动窗所能滑动的预设点周围的预设范围 内,计算模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳匹配值, 并将具有最佳匹配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的 基音周期。在本步骤中,计算模板窗中的数据与滑动窗中数据的匹配值可以是计算 模板窗中的数据与滑动窗中数据的相关值,并取匹配值为与相关值成正比的数 值;或计算模板窗中的数据与滑动窗中对应数据的幅度差值的绝对值的总和, 并取匹配值为与所述幅度差值的绝对值的总和成反比的数值。到此为止给出了本发明估计基音周期的具体实施例,接下来描述本发明如 何补偿丢失帧,即如何进行丢包隐藏处理的过程。在现有技术中只使用丢失帧之前的数据,即历史数据进行填充。由于音频 信号中的基音周期也是逐渐变化的,因此距离丢失帧越远的数据与丢失帧的相 关性越弱,现有技术中只用丟失帧之前的数据对丢失帧进行补偿,有可能在丟 失帧和其之后的帧相连的地方发生相位不连续的现象。但是具体的情况是当有数据帧丢失时,在系统延时允许的情况下可以等 到接收到下一个完好的数据帧时,结合历史数据和在丢失帧后所接收到的当前 数据进行丢包隐藏处理。因此在本发明实施例中给出 一种结合历史数据和当前 数据进行丟包隐藏处理的方案,其中历史数据指丢失帧之前的数据,当前数据 指丢失帧之后的数据。图13是本发明实施例一种结合历史数据和当前数据实现丢包隐藏的方法 的流程图。如图13所示,包括以下步骤步骤1301,估计历史凝:据的基音周期PP。在本步骤中,可以直接用图2所示的方法估计出PP,也可以先用图2所示 的方法估计出一个初始基音周期,然后用图6和图IO所示的本发明实施例的方 法对初始基音周期进行倍频消除和微调修正后再作为本实施例中的PP。步骤1302,对历史数据进行平滑处理。在本步骤中,可以用图3所示的方法对历史数据的最后PP/4数据进行平滑处理。步骤1303,将平滑后的历史数据中的最后一个PP长度的数据放到一个专 用的基音緩沖区PB中。基音緩沖区PB的长度与基音周期PP相等。步骤1304,用基音緩冲区PB中的数据填充与丢失帧长度相等的丢失帧主 緩沖区LMB。在本步骤中,用PB中的数据填充LMB时,需要一个偏移指针P—OFFSET 协助。P_OFFSET,用于指示下一次从基音緩冲区PB中取数据时,应该从什么 位置开始取数据,以保证和已填充数据拼接处的平滑。在使用PB中的数据来 恢复丢失的数据帧时,每取出一段数据,就需要将指针PJ3FFSET向右移动相 应的长度,如果发现从偏移指针P一OFFSET到基音缓沖区结尾的数据不够所需 要的数据时,则P—OFFSET重新置0,并从PB的开始位置接着取数据;如果 仍然不够所需的数据,则重复这个步骤,直至取到所需的所有数据。步骤1305,当前数据是否满足预设的条件,是则执行步骤1305;否则执行 步骤1310。在本步骤中,所指的预设条件是当前数据的长度,即丢失帧之后的第一 个完好帧的起始位置起到当前收到的数据长度,是否满足对当前帧进行平滑处 理的要求。图14是本发明实施例对当前帧进行平滑处理的示意图。参照图14, 对当前数据进行平滑处理的过程是将当前数据第一个基音周期P之后的1/4 基音周期数据乘以下降窗,将当前数据开始的第一个1/4基音周期数据乘以上 升窗,然后将上述两个P/4长度的数据进行叠加,并用叠加后的P/4长度数据 替换当前数据开始的第一个1/4基音周期的数据。这样处理的目的与步骤1302 中对历史数据进行平滑处理的目的相同,是为了在使用当前数据反向填充丢失 帧时,保证当前数据的原始信号和丢失帧信号之间的平滑过渡。在本步骤中由于还不知道当前数据的基音周期,因此可以使用历史数据的基音周期PP来进行判断,比如将判断条件设置为当前数据的长度Date-SZ满足 Date隱SZ > PP + PP/4步骤1306,估计当前数据的基音周期NP;在本步骤中,可以直接用图2所示的方法估计出NP,也可以先用图2所示 的方法估计出一个初始基音周期,然后用图6和图IO所示的本发明实施例的方 法对初始基音周期进行倍频消除或微调修正后再作为本实施例中的NP。步骤1307,对当前数据进行平滑处理。在本步骤中,用图14所示的方法对当前数据进行平滑处理。步骤1308,将平滑后的当前数据中的开始的一个NP长度的数据放到一个 专用的基音緩冲区PB1中。步骤1309,用基音緩冲区PB1中的数据反向填充与丢失帧长度相等的丢失 帧临时緩冲区LTB。执行步骤1313。在本步骤中,用PB1中的数据反向填充LTB的过程与步骤1304中用PB 中的数据填充LMB的过程类似,只是填充的方向相反,因此称为"反向填充"。 图15是本发明实施例用当前数据反向填充丢失数据的示意图。在图15中,比 较了用历史数据最后的PP长度的数据填充丢失数据段和用当前数据开始的NP 长度数据填充丢失数据段的过程,可以看出用历史数据填充的方向是从左到右, 而用当前数据填充的方向是从右到左。步骤1310,从当前数据的起始位置开始取长度为L的一段数据DateA,并 在基音緩冲区PB中查找与DateA最匹配的一^殳L长度的数据DateB,将DateB 的起始点记为St。图16是本发明实施例在基音緩冲区中查找与给定波形最匹配的波形的示 意图。如图16所示,在基音緩冲区PB中设置一个长度为L的滑动窗SW, SW 的起始端点SJ人PB的起始端点开始逐渐向右滑动一直到PB的末尾端点,并 SW的滑动过程中计算SW中的数据和给定数据DateA的匹配值。当SW的起 始端Ss点向右滑动一定距离后,其末尾端点Es会超出PB的区域范围,即SW 起始端点到PB末尾端点的长度M小于L,此时,复制基音緩冲区PB起始位 置起的L-M长度的数据拼接到基音缓冲区PB的末尾,以满足匹配的要求。然后用SW中拼接起来的L长度的数据与给定数据DateA进行匹配计算。 在本步骤中,其中,L可以取0.55xpp的值。步骤1311,将基音緩冲区PB中St点之后的PP/4长度数据DateB乘上一 个下降窗,将当前数据起始位置开始的PP/4长度数据DateA乘上一个上升窗之 后,将上述两个乘窗之后的PP/4长度数据进行叠加,并用叠加后的数据替换当 前数据起始位置的PP/4长度数据。本步骤中的操作可以保证当前数据和丟失数据之间的平滑连接。步骤1312,从基音緩冲区PB的St点之前,取长度与丢失数据长度相同的 数据,放入丢失帧临时緩冲区LTB中。在本步骤中,当PB中St点到PB的起始端点的长度小于所需数据的长度, 即小于丢失数据长度时,从PB的末尾点开始继续向左取数据,直至能够取到 所需长度的数据。步骤1313,将丢失帧主緩冲区LMB中的数据乘上一个下降窗,同时将丢 失帧临时緩冲区LTB中数据乘上一个上升窗,并将上述两个乘窗的数据进行叠 加,将叠加后的数据作为恢复的丢失帧填充到丢失帧处。到此为止,便完成了结合历史数据和当前数据进行丢包隐藏处理的过程。当然,在图13所示的流程中,可以不需要步骤1305的判断步骤,在步骤 1304之后直接执行步骤1306、 1307、 1308、 1309和1313,或在步骤1304之后 直接执行步骤1310、 1311、 1312和1313。在上述流程的步骤1310中,在PB中查找与DateA最匹配的DateB时, 可以利用在步骤1304中得到的基音緩冲区PB的偏移指针P—OFFSET的位置, 即将初始的匹配点设置为PJ3FFSET,然后在P—OFFSET的位置附近查找最佳 匹配的点St,这样可以减少匹配的次数,乂人而减少计算量。如果丢失帧正好位于浊音和清音的过渡段时,用图13所示的方法恢复丢失 帧,可能还会出现能量异常变化的情况,因此在本发明实施例中进一步需要根 据丢失帧的前后帧能量的变化来对丢失帧的幅度进行平滑处理,以实现波形的 渐变。首先取当前数据开始处的L个样点,并计算这L个样点的能量值EN。然 后在基音緩沖区PB中查找和这L个样点最匹配的L个样点,并计算基音緩冲 区中的这L个样点的能量EP。最后,根据丢失帧的前后帧能量的变化情况,对 图13所示的方法最终恢复的丢失帧数据幅度进行平滑,以达到能量平稳过渡的 目的。计算L个样点的能量时,可以取L个样点的幅度的平方求和的方法。 设丢失帧的前后帧能量的比值为ER ( Energy Ratio ),则ER = EN / EP, 用x表示所恢复丢失帧数据的序列,x(i)表示序列x中的第i个数据,帧长为 FRAME—SZ,则可以公式(8)对所恢复的丢失帧数据逐点进行能量修正x (i) = x (i)x(ix 丰卿-1 +1) 1"FRAME SZ (8)FRAME_SZ + 1 —其中,函数sqrt表示求平方根。图17是本发明实施例对恢复的丢失帧数据进行幅度平滑处理后的示意图。 从图17可以看出,在进行幅度平滑处理之前,所恢复的丢失帧与当前帧的连接 处能量变化较大,但在进行幅度平滑处理之后,恢复的丟失帧与当前帧的连接 处能量变化变得比较平稳。除了上述根据丢失帧的前帧和后帧的能量比值来对丢失帧的幅度进行平 滑处理之外,还可以根据丢失帧的前帧和后帧中匹配波形的最大幅度差的比值 来进行幅度的平滑处理,比如也可以利用公式(8 )对恢复丢失帧的幅度进行平 滑处理,只是,此时ER的位置处应该是丢失帧的前帧和后帧中匹配波形的最 大幅度差的比值。在上述对幅度进行平滑处理的过程中,较佳地,在EP〉EN时,才进行幅 度的平滑处理。图18是本发明实施例一种实现丟包隐藏的装置的结构框图。如图18所示, 该装置主要包括处理模块1801、丢失帧主緩冲区1802、丢失帧临时緩冲区1803和。主处理模块1801,用于利用历史数据中的最后一个基音周期数据,填充丟失帧主緩沖区1802,并利用当前数据中的第一个基音周期数据,或利用历史数 据中的最后一个基音周期数据,填充丟失帧临时緩冲区1803;并将丢失帧主緩 沖区1802和丟失帧临时緩冲区1803中的数据进行叠加处理后,用所述叠加处理 后的数据补偿丢失帧。丢失帧主緩冲区1802,用于存储主处理模块1801所填充的数据。 丢失帧临时緩沖区1803,用于存储主处理模块1801所填充的数据。 丢失帧主緩冲区1802和丢失帧临时緩沖区1803的长度等于丟失帧的长度。 此外,图18所示的装置还包括历史数据处理模块1805当前数据处理模 块1806,所述主处理模块包括基音緩沖区1807、平滑处理模块1808和幅度 平滑模块1804。历史数据处理模块1805,用于获取历史数据的基音周期,并将历史数据中 的最后一个基音周期数据进行平滑处理后,发送给主处理模块1801 。当前数据处理模块1806,用于获取当前数据的基音周期,并将当前数据中 的第一个基音周期数据进行平滑处理后,发送给主处理模块1801 。主处理模块1801利用历史数据中的最后一个基音周期数据,填充丢失帧临 时緩冲区1803的实现过程可以是主处理模块1801将历史数据中的最后一个基 音周期数据存入基音緩沖区1807,并从当前数据中的第 一个基音周期数据的起 始位置开始取长度为预设值的第一数据;在基音緩沖区1807中查找与第 一数据 最为匹配的第二数据;获取基音緩冲区1807中的第二数据的起始点之前的长度 与丟失帧临时緩冲区长度相等的第三数据;用所述第三数据填充丢失帧临时緩 沖区1803。平滑处理模块1808,用于将基音緩冲区1807中的第二数据的起始点之后 的长度为预设值的数据乘上一个下降窗,将所述当前数据起始位置开始的长度 为预设值的数据乘上一个上升窗,然后将上述两个乘窗之后的数据进行叠加处 理,并用叠加后的数据替换当前数据起始位置开始的长度为预设值的数据。幅度平滑模块1804,用于获取丢失数据之前的已知数据和丟失数据之后的 已知数据中相互匹配的两组数据之间的比例系数,并根据所述比例系数对所述叠加处理后的数据的幅度进行平滑处理;主处理模块1801利用所述经过幅度平 滑处理后数据补偿丢失帧。在图18所示的实施例中,主处理模块1801还可以进一步用于判断当前数据 的长度是否大于或等于预设值,是则,所述主处理模块1801利用丢失数据之后 的已知数据中的第一个基音周期凝:据,填充丟失帧临时緩沖区;否则,所述主 处理模块1801利用丟失数据之前的已知数据中的最后一个基音周期数据,填充 丢失帧临时緩沖区。图13和图18所示的实施例中,通过结合当前数据和历史数据恢复丢失帧数 据,进而完成丢包隐藏处理。由于在丢包隐藏处理过程中利用丢失帧之后的数 据帧,即当前数据对丢失帧进行恢复,因此增强了所恢复的丢失帧数据与丢失 帧之后的数据之间的相关性,进而提高了所恢复的语音数据的质量。另外,对 恢复的丢失帧数据进一步进行幅度平滑处理的过程也更进一步的提高了所恢复 的语音数据的质量。接下来进一步说明图13所示的丢包隐藏方法和图18所示的实现丢包隐 藏的装置在具体系统中是如何应用和工作的。图19是本发明实施例实现丢包隐藏的装置在接收端系统中的外部连接 示意图。如图19所示,该接收端系统中包括丢失帧检测器1901、解码器 1902、历史緩沖区1903、延迟模块1904和实现丟包隐藏的装置1905。在图19中,丢失帧检测器l卯l接收到从网络上传输过来的比特流后, 判断是否有数据帧丢失,如果没有数据帧丢失,则丢失帧检测器201将完好 的语音帧传送给解码器1902进行解码,然后解码器1902将解码后的数据送 入到历史緩冲区1903,延迟模块1904对历史緩冲区1903中的数据延迟一 定时间后输出。如果丢失帧检测器1901检测到有数据帧丢失,就发送"丢 失语音帧"的信号给实现丢包隐藏的装置1905,然后实现丢包隐藏的装置 l卯5使用本发明实施例所述的丢包隐藏方法,获取恢复的丢失帧数据,并 将恢复的丟失帧数据放置在历史緩冲区l卯3中与丢失帧相对应的位置上。 在图19所示的系统中,在满足延迟要求的条件下,实现丢包隐藏的装置1901需要根据丟失帧之前的历史数据和丟失帧之后的 一 帧或者多帧数据进行丢 包隐藏处理,但在复杂的网络条件下,丢失帧之前的帧和丢失帧之后的数据 帧是否丢失并不是已知或固定的,因此实现丢包隐藏的装置1905可通过丢失帧检测器1901获得在进行丟包隐藏处理时所需的帧的状态信息。然后实 现丢包隐藏的装置l卯5利用历史缓冲区1903中的数据,并结合与丢失帧相 关的前后帧的状态,合成丢失的音频帧。图20是本发明实施例在实际系统中应用实现丢包隐藏的方法的流程 图。如图20所示,包括以下步骤;步骤2001,接收端系统收到新的语音数据帧。步骤2002,接收端系统判断当前接收到的新的语音数据帧是否为坏帧, 是则执行步骤2006,否则执行步骤2003。步骤2003,接收端系统对接收到当前帧进行解码处理。步骤2004,接收端系统判断当前帧的前一帧是否丢失,是则执行步骤 2006,否则执行步骤2005。步骤2005,用当前帧更新历史緩冲区,执行步骤2008。步骤2006,用丢包隐藏处理方法恢复丟失帧。步骤2007,用恢复的丟失帧和/或当前帧更新历史緩沖区。步骤2008,将历史緩冲区中数据延迟一段之间。在本步骤中,延迟的时间可以根据应用场景进行设定。例如,系统要求 的延迟时间为1帧或更多帧对应的时间时,考虑到进行前帧平滑时最大的可 能叠加长度为最大可能基音周期(最大可能基音周期一般为15ms)的0.25 倍,即3.75ms,因此可以在满足系统延迟要求的情况下,适当增加延迟时间。 比如当lms数据对应的采样点的个数为SP时,则可以使用的延迟时间为一 帧对应的时间和CEIL ( 3.75 x SP / FRAME—SZ ) x FRAME—SZ个采样点对 应的时间中的大者,其中CEIL的意义为取大于给定浮点数的最小整数, FRAME—SZ为 一 帧数据中的采样点个数。例如,当系统的帧长为5ms时,可以设定延迟时间为5ms,即对应一帧的延迟时间;如果当前系统的帧长为2ms,则可以设定延迟时间为MAX(2, CEIL (3.75/2) x2) = 4ms,即对应两巾贞的延迟时间。 步骤2009,输出历史緩冲区中的数据。步骤2010,判断是否还有其它的数据帧需要接收,是则转到步骤2001 继续执行,否则结束本流程。在实际应用当中,需要根据系统的延时允许时间来决定是否应用本发明 实施例中给出的结合历史数据和当前数据恢复丢失帧的方法来进行丢包隐 藏处理。例如当有一个数据帧丢失时,如果系统的延时时间允许,则等待下 一帧,如果下一帧是完好的帧,则可以利用本发明实施例给出的结合历史数 据和当前数据恢复丢失帧的方法对丢失帧进行隐藏处理,如果下 一帧数据仍 然丢失了,则在系统的延时时间允许的情况下,继续等待下一帧的数据。在 连续丢帧的情况下,且系统时延条件不允许继续等待时,利用历史数据进行 丟包隐藏处理。综上所述,本发明实施例中,通过从初始基音周与所有大于最小可能基 音周期的初始基音周期的因数中选择一个数值作为估计的最佳基音周期的 技术方案,能够消除估计基音周期时存在的倍频问题。本发明实施例中,通 过在初始基音周期的附近查找最佳匹配点,并根据最佳匹配点的位置对估计 的初始基音周期进行微调的技术方案,减小了估计基音周期的误差。本发明 实施例中,利用历史数据中的最后一个基音周期数据,填充丢失帧主緩冲区, 利用当前数据中的第 一个基音周期数据,或利用历史数据中的最后 一个基音 周期数据,填充丢失帧临时緩冲区,对丢失帧主緩沖区和丢失帧临时緩沖区 中的数据进行叠加处理,并用所述叠加处理后的数据补偿丢失帧的技术方案 增强了恢复的丢失帧数据与丢失帧之后的数据之间的相关性,进而改善了恢 复的丢失帧数据与丢失帧之后的数据之间相位的连续性。并且,在本发明实 施例中还通过对所恢复的丟失帧的幅度进行平滑处理的技术方案,使得所恢 复的丢失帧与当前帧的连接处的能量变化变得平稳。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1、一种估计基音周期的方法,其特征在于,该方法包括以下步骤获取已知语音数据的初始基音周期;从初始基音周期所对应频率的一个以上的大于1的整数倍频率所分别对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所对应频率的基音周期作为候选基因周期,并从初始基因周期和候选基音周期中选择一个基因周期作为所述已知语音数据的最终估计基音周期。
2、 如权利要求1所述的方法,其特征在于,所述从初始基音周期以及候 选基音周期中选择一个基音周期作为所述已知语音数据的最终估计基音周期的 步骤包括在所述已知语音数据的一端,设置长度为预设值的模板窗;设置长度与模 板窗长度相同的滑动窗,并令滑动窗在所述已知语音数据的长度范围内滑动;当滑动窗与模板窗的对应端点之间的距离与初始基音周期的长度相等时, 取滑动窗中数据与模板窗中数据的匹配值为与初始基音周期对应的匹配值;当 滑动窗与模板窗的对应端点之间的距离与 一个候选基音周期的长度相等时,取 滑动窗中数据与模板窗中数据的匹配值为与该候选基音周期对应的匹配值;从初始基音周期所对应的匹配值以及各候选基音周期所对应的匹配值中 选择出 一个最佳匹配值,并将该最佳匹配值所对应的基音周期作为所述已知语 音数据的最终估计基音周期。
3、 如权利要求2所述的方法,其特征在于,所述从初始基音周期所对应 的匹配值以及各候选基音周期所对应的匹配值中选^t奪出 一个最佳匹配值的步骤 包括将初始基音周期所对应的匹配值设置为最佳匹配值的初始值,然后按照预 定顺序判断每一个候选基音周期所对应的匹配值是否优于初始基音周期所对 应的匹配值,是则用该候选基音周期所对应的匹配值更新最佳匹配值,最终 得到一个最佳匹配值;或将初始基音周期所对应的匹配值设置为最佳匹配值的初始值,然后按照预 定顺序判断每一个候选基音周期所对应的匹配值是否优于当前的最佳匹配 值,是则用该候选基音周期所对应的匹配值更新最佳匹配值,最终得到一个 最佳匹配值。
4、 如权利要求3所述的方法,其特征在于,所迷候选基音周期所对应的匹配值优于初始基音周期所对应的匹配值 是,所述候选基音周期所对应的匹配值与初始基音周期所对应的匹配值的比 值在预定范围内;所述候选基音周期所对应的匹配值优于当前的最佳匹配值是,所述候选 基音周期所对应的匹配值与当前的最佳匹配值的比值在预定范围内。
5、 如权利要求1所述的方法,其特征在于,该方法在所述从初始基因周 期和候选基音周期中选择一个基因周期作为所述已知语音数据的最终估计基音 周期之前进一步包括在所述已知语音数据的一端,设置长度为预设值的模板窗;设置长度与模 板窗长度相同的滑动窗,并令滑动窗在所述已知语音数据的长度范围内滑动;当滑动窗与模板窗的对应端点之间的距离与 一个候选基音周期的长度相 等时,取滑动窗中数据与模板窗中数据的匹配值为与该候选基音周期对应的匹 配值,并取滑动窗的起始端点或末尾端点的当前位置为与该候选基因周期对应 的匹配点;对于每一个候选基音周期,使滑动窗的起始端点或末尾端点在该候选基音 周期所对应的匹配点周围的预设范围内滑动,并在该候选基音周期所对应的匹 配点周围的预设范围内,查找出滑动窗中数据与模板窗中数据的匹配值为最佳 匹配值时的滑动窗的位置,并用此时的滑动窗与模板窗对应端点之间的语音数 据长度替换该候选基音周期;所述选择一个基音周期作为最终估计的基音周期是,从初始基音周期以及 所述替换后的候选基音周期中选择一个基音周期作为最终估计的基音周期。
6、 如权利要求5所述的方法,其特征在于,所述在候选基音周期所对应的匹配点周围的预设范围内,查找出滑动窗中数据与模板窗中数据的匹配值为 最佳匹配值时的滑动窗的位置是,从所述候选基音周期对应的匹配点开始向该 匹配点两侧的预设范围进行查找。
7、 如权利要求2至6中任一项所述的方法,其特征在于,所述滑动窗中数据与模板窗中数据的匹配值是滑动窗中数据与模板窗中数据的相关值。
8、 一种估计基音周期的装置,其特征在于,该装置包括初始基音周 期获取模块和选择模块,其中,初始基音周期获取模块,用于获取已知语音数据的初始基音周期,并发 送给选择模块;选择模块,从初始基音周期所对应频率的一个以上的大于1的整数倍频率 所分别对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所对 应频率的基音周期作为候选基因周期,并从初始基因周期和候选基音周期中选 择一个基因周期作为所述已知语音数据的最终估计基音周期。
9、 如权利要求8所述的装置,其特征在于,所述选择模块包括计算模块 和比较模块,其中,计算模块,用于分别计算出与初始基音周期和各个候选基音周期对应的匹 配值,并发送给比4支才莫块;比较模块,用于对所接收到的与初始基音周期和各个候选基音周期对应的 匹配值进行比较,从中选择出 一个最佳匹配值,并将该最佳匹配值所对应的基 音周期作为所述已知语音数据的最终估计基音周期。
10、 如权利要求8所述的装置,其特征在于,所述选择模块进一步用于, 对于每一个候选基音周期,在该候选基音周期所对应的匹配点周围的预设范围 内进行搜索,查找出一个匹配值为最佳匹配值的匹配点,并用该匹配点对应的 基音周期替换该候选基音周期;并从初始基音周期以及所述替换后的候选基音周期中选择一个基音周期作 为所述已知语音数据的最终估计的基音周期。
11、 一种对基音周期进行微调的方法,其特征在于,该方法包括获取丢失数据之前或丢失数据之后的已知数据的初始基音周期; 在所述已知数据靠近丟失数据的一端,设置长度为预设值的模板窗; 设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动,所述预设点是已知数据中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳的匹配值,并将具有最佳匹配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期。
12、 如权利要求ll所述的方法,其特征在于,所述在滑动窗所能滑动的预 设点周围的预设范围内,计算模板窗中的数据与滑动窗中数据的匹配值,并查 找出最佳匹配值是,从所述预设点开始向该预设点两侧的预设范围进行查找。
13、 如权利要求ll所述的方法,其特征在于,所述计算模板窗中的数据与 滑动窗中数据的匹配值,并从中查找出最佳的匹配值的步骤包括计算模板窗中的数据与滑动窗中数据的相关值,并取匹配值为相关值,取 匹配值中最大的值作为最佳匹配值;或计算模板窗中的数据与滑动窗中对应数据的幅度差值的绝对值的总和,并 取匹配值为所述幅度差值的绝对值的总和,取匹配值中最小的值作为最佳匹配 值。
14、 如权利要求ll所述的方法,其特征在于,获取丢失数据之后的已知数 据的初始基音周期包括获取丟失数据之前的已知数据的初始基音周期,并将 所获取的丢失数据之前的已知数据的初始基音周期作为丢失数据之后的已知数 据的初始基音周期。
15、 一种对基音周期进行微调的装置,其特征在于,该装置包括初始基 音周期获取模块,设置模块和计算模块,其中,初始基音周期获取模块,用于获取丢失数据之前或丢失数据之后的已知数 据获取初始基音周期,并发送给设置模块;设置模块,用于接收初始基音周期获取模块发送的初始基音周期,并在所述已知数据靠近丟失数据的一端,设置长度为预设值的模板窗,设置长度与模 板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动;所述预设点是已知数据中与模板窗靠近丢失数据的端点距离初始 基音周期长度的点;计算模块,用于在所述滑动窗所能滑动的预设点周围的预设范围内,计算 模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳匹配值,并将具 有最佳匹配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周 期。
16、 如权利要求15所述的装置,其特征在于,所述初始基音周期获取模块, 用于获取丟失数据之前的已知数据的初始基音周期,将所获取的丢失数据之前 的已知数据的初始基音周期作为丢失数据之后的已知数据的初始基音周期,并 发送给所述设置模块。
17、 一种实现丢包隐藏的方法,其特征在于,该方法包括 设置长度与丢失数据长度相等的丢失帧主緩沖区和丢失帧临时緩冲区;利用丢失数据之前的已知数据中的 一个基音周期数据,填充丢失帧主緩冲区;利用丢失数据之后的已知数据中的一个基音周期数据,或利用丢失数据之 前的已知数据中的一个基音周期数据,填充丢失帧临时緩冲区;对丢失帧主緩冲区和丢失帧临时緩冲区中的数据进行叠加处理,并用所述 叠加处理后的数据补偿丢失帧。
18、 如权利要求17所述的方法,其特征在于,所述丢失数据之前的已知数据中的一个基音周期数据是,丢失数据之前的 已知数据中的最后一个基音周期数据;所述丢失数据之后的已知数据中的一个基音周期数据是,丢失数据之后的 已知数据中的第 一个基音周期数据。
19、 如权利要求18所述的方法,其特征在于,在所述利用丢失数据之前 的已知数据中的最后一个基音周期数据,填充丢失帧主緩沖区之前进一步包括对丢失数据之前的已知数据中的最后一个基音周期数据进行平滑处理。
20、 如权利要求18所述的方法,其特征在于,在所述利用丟失数据之后的 已知数据中的第 一个基音周期数据,填充丢失帧临时緩冲区之前进一步包括对丢失数据之后的已知数据中的第一个基音周期数据进行平滑处理。
21、 如权利要求20所述的方法,其特征在于,所述对丢失数据之后的已知 数据中的第 一个基音周期数据进行平滑处理的步骤包括将丢失数据之后的已 知数据第一个基音周期之后的预设长度数据乘以下降窗,将丢失数据之后的已 知数据起始的第一个预设长度数据乘以上升窗后,将所述两个乘窗后的预设长 度的数据进行叠加,并用叠加后的数据替换丢失数据之后的已知数据中起始的 第一个预设长度数据。
22、 如权利要求18所述的方法,其特征在于,利用丢失数据之后的已知数 据中的第一个基音周期数据,对丢失帧临时缓冲区进行填充是进行反向填充。
23、 如权利要求18所述的方法,其特征在于,所述利用丢失数据之前的已 知数据中的最后一个基音周期数据,填充丢失帧临时緩沖区包括将在丢失数据之前的已知数据中的最后一个基音周期数据存入基音緩沖 区,并从丢失数据之后的已知数据的起始位置开始取长度为预设值的第一数据; 在基音緩冲区中查找与第 一数据最为匹配的第二数据; 获取基音緩冲区中的第二数据的起始点之前的长度与丢失帧临时緩沖区长度相等的第三数据;将所述第三数据存入丢失帧临时緩冲区。
24、 如权利要求23所述的方法,其特征在于,该方法进一步包括对丢失 数据之后的已知数据起始位置开始的长度为预设值的数据进行平滑处理。
25、 如权利要求24所述的方法,其特征在于,所述对丢失数据之后的已知 数据起始位置开始的长度为预设值的数据进行平滑处理的步骤包括将所述基 音緩沖区中的从第二数据的起始点开始的长度为预设值的数据乘上一个下降 窗,将丢失数据之后的已知数据起始位置开始的长度为预设值的数据乘上一个 上升窗,然后将上述两个乘窗之后的数据进行叠加,并用叠加后的数据替换丢失数据之后的已知数据起始位置开始的长度为预设值的数据。
26、 如权利要求23所述的方法,其特征在于,在所述利用丢失数据之前的 已知数据中的最后一个基音周期数据,填充丟失帧主緩冲区的步骤进一步包括 利用偏移指针指示所述最后一个基音周期数据的当前位置,每次从偏移指针指 示的当前位置取数据填充丢失帧主緩冲区,并实时更新偏移指针的位置;所述在基音緩沖区中查找与第一数据最为匹配的第二数据的步骤包括从 基音緩沖区中的所述偏移指针指示的相应位置周围的预设范围内查找与第一数 据最为匹配的第二数据。
27、 如权利要求18所述的方法,其特征在于,所述对丢失帧主緩沖区和丢 失帧临时緩沖区中的数据进行叠加处理的步骤包括将丢失帧主緩沖区的数据 乘上一个下降窗,将丟失帧临时緩沖区中的数据乘上一个上升窗,并将丢失帧 主緩冲区和丢失帧临时緩冲区中的乘窗后的数据进行叠加。
28、 如权利要求18所述的方法,其特征在于,该方法在对丢失帧主緩沖区 和丢失帧临时緩冲区中的数据进行叠加处理之后,并在用所述叠加处理后的数 据补偿丢失帧之前进一步包括将在丢失数据之前的已知数据中的最后一个基音周期数据存入基音緩沖 区,并从丟失数据之后的已知数据的起始位置开始取长度为预设值的数据; 在基音緩沖区中查找与所述长度为预设值的数据最为匹配的数据; 获取所述长度为预设值的数据和所述查找的匹配数据之间的比例系数; 根据所述比例系数对所述进行叠加处理后的数据的幅度进行平滑处理; 用所述经过幅度平滑处理的数据补偿丟失帧。
29、 如权利要求28所述的方法,其特征在于,所述比例系数为所述长度为 预设值的数据的能量和所述查找的匹配数据的能量的比值,或所述长度为预设 值的数据中的最大幅度差和所述查找的匹配数据中的最大幅度差的比值。
30、 如权利要求18所述的方法,其特征在于,该方法在所述丢失数据之后 的已知数据的长度大于或等于预设值时,利用丢失数据之后的已知数据中的第 一个基音周期数据,填充丢失帧临时緩沖区;否则,利用丢失数据之前的已知数据中的最后 一个基音周期数据,填充丢失帧临时緩冲区:。
31、 如权利要求30所述的方法,其特征在于,所述预设值是丢失数据之前 的已知数据的基音周期的5/4倍。
32、 一种实现丢包隐藏的装置,其特征在于,该装置包括主处理模块、 丟失帧主緩冲区和丢失帧临时緩冲区,其中,主处理模块,用于利用丢失数据之前的已知数据中的一个基音周期数据, 填充丢失帧主緩冲区,并利用丢失数据之后的已知数据中的一个基音周期数据, 或利用丢失数据之前的已知数据中的一个基音周期数据,填充丢失帧临时緩沖 区;并将丢失帧主緩沖区和丢失帧临时緩沖区中的数据进行叠加处理后,用所 述叠加处理后的数据补偿丢失帧;丢失帧主緩冲区,用于存储主处理模块所填充的数据,其长度与丢失数据 长度相等;丟失帧临时緩冲区,用于存储主处理模块所填充的数据,其长度与丢失数 据长度相等。
33、 如权利要求32所述的装置,其特征在于,所述主处理模块是利用丢失 数据之前的已知数据中的最后一个基音周期数据,填充丟失帧主緩冲区,并利 用丢失数据之后的已知数据中的第 一个基音周期数据,或利用丢失数据之前的 已知数据中的最后一个基音周期数据,填充丢失帧临时緩冲区。
34、 如权利要求32所述的装置,其特征在于,该装置进一步包括历史数 据处理模块和当前数据处理模块,其中历史数据处理模块,用于获取丢失数据之前的已知数据的基音周期,并将 丢失数据之前的已知数据中的最后一个基音周期数据发送给主处理模块;当前数据处理模块,用于获取丢失数据之后的已知数据的基音周期,并将 丢失数据之后的已知数据中的第一个基音周期数据发送给主处理模块。
35、 如权利要求34所述的装置,其特征在于,所述历史数据处理模块,进一步用于将丢失数据之前的已知数据中的最后 一个基音周期数据进行平滑处理后,再发送给主处理模块;和/或所述当前数据处理模块,进一步用于将丟失数据之前的已知数据中的第一 个基音周期数据进行平滑处理后,再发送给主处理^^块。
36、 如权利要求32所述的装置,其特征在于,所述主处理模块包括基音 緩冲区,用于存储所述丢失数据之前的已知数据中的最后一个基音周期数据;所述主处理模块,用于将丢失数据之前的已知数据中的最后一个基音周期 数据存入基音緩冲区,并从丢失数据之后的已知数据中的第 一个基音周期数据 的起始位置开始取长度为预设值的第一数据;在基音緩冲区中查找与第一数据 最为匹配的第二数据;获取基音緩冲区中的第二数据的起始点之前的长度与丢 失帧临时緩冲区长度相等的第三数据;用所述第三数据填充丢失帧临时緩冲区。
37、 如权利要求36所述的装置,其特征在于,所述主处理模块进一步包括 平滑处理模块,用于将所述基音緩沖区中的第二数据的起始点开始的长度为预 设值的数据乘上一个下降窗,将丟失数据之后的已知数据起始位置开始的长度 为预设值的数据乘上一个上升窗,然后将上述两个乘窗之后的数据进行叠加处 理,并用叠加后的数据替换丢失数据之后的已知数据起始位置开始的长度为预 设值的数据。
38、 如权利要求32所述的装置,其特征在于,所述主处理^t块进一步包括 幅度平滑模块,用于获取丢失数据之前的已知数据和丢失数据之后的已知数据 中相互匹配的两组数据之间的比例系数,并根据所述比例系数对所述叠加处理 后的数据的幅度进行平滑处理;所述主处理模块利用所述经过幅度平滑处理后数据补偿丢失帧。
39、 如权利要求32所述的装置,其特征在于,所述主处理模块进一步用于 判断所述丟失数据之后的已知数据的长度是否大于或等于预设值,是则,所述 主处理模块用于利用丟失数据之后的已知数据中的第一个基音周期数据,填充 丢失帧临时緩沖区;否则,所述主处理模块用于利用丢失数据之前的已知数据 中的最后一个基音周期数据,填充丢失帧临时缓冲区。
全文摘要
本发明实施例公开了实现丢包隐藏的方法和装置,通过结合丢失帧之前的数据和丢失帧之后的数据恢复丢失帧的技术方案增强了恢复的丢失帧数据与丢失帧之后的数据之间的相关性,进而改善了恢复的丢失帧数据与丢失帧之后的数据之间相位的连续性,提高了语音数据的质量。本发明实施例还公开了估计基音周期的方法和装置,通过从初始基音周期以及初始基音周期对应频率的一个以上的整数倍频率所分别对应的基音周期中选择一个基音周期作为最终估计的基音周期的技术方案,消除了估计基音周期时存在的倍频问题;另外,还通过波形匹配对初始基音周期进行微调的技术方案,减小了估计基音周期的误差,提高了语音数据的质量。
文档编号G10L19/00GK101325631SQ20071012616
公开日2008年12月17日 申请日期2007年6月14日 优先权日2007年6月14日
发明者王东琦, 詹五洲 申请人:华为技术有限公司
一种实现丢包隐藏的方法和装置的制作方法
相关推荐
专利名称:插泥灯的制作方法技术领域:本实用新型涉及照明技术领域,具体讲是ー种插泥灯。背景技术:插泥灯是ー种户外照明灯具,其被广泛用于花园草坪等的照明、美化,现有技术的插泥灯,包括灯体与支架,灯体与支架的一端连接,支架起固定灯体的作用,使用吋
专利名称:萨克斯管的制作方法技术领域:本实用新型涉及管乐器萨克斯管,具体说是一种萨克斯管#C音与C音音键机械连动装置。背景技术:目前,公知的通用的管乐器萨克斯管,其音键机械装置中低音区的#C音音键和C音音键是两个独立的音键,演奏者通常在演奏
专利名称:撞击显示电量的手电筒的制作方法技术领域:本实用新型涉及一种撞击显示电量的手电筒,它属于手电筒技术领域,特别是具有电量显示功能的手电筒。技术背景手电筒在使用过程中经常会遇到电池没有电的情况。传统的手电筒因为没有电池的剩余电量的显示功
专利名称:成像设备的制作方法技术领域:本发明涉及一种具有模糊校正功能以校正在拍摄时由于相机或者人手 抖动所致的模糊的成像设备,例如数码相机、数码摄像机(在此及后,称为 数码相机)。背景技术:数码相机根据来自图像传感器(CCD或者类似物)的图
专利名称::多层型的导光板结构的制作方法技术领域::本实用新型涉及一种导光板,尤其涉及一种用以导引光线且一体化具有光反射层、透光基材与聚光体的多层型的导光板结构。背景技术::一般非自发旋光性的平面显示器,如液晶显示器或液晶电视等需要组装一背
专利名称:一种床头灯的制作方法技术领域:本实用新型涉及一种生活用品,特别涉及一种床头灯。背景技术:目前,带眼镜的人越来越多,晚上睡觉前如果没有将眼镜放置的合适地方,第二天早晨起床,可能由于东西杂乱而不容易找到,市场上的床头灯功能单一,并没有