一种对基音周期进行微调的方法和装置的制作方法

文档序号:2823427阅读:423来源:国知局
专利名称:一种对基音周期进行微调的方法和装置的制作方法
技术领域
本发明涉及网络通信技术领域,尤指一种对基因周期进行微调的方法和装置。
背景技术
最初,IP网络是为传输包含较大的包且不需要实时可靠传送的数据流而设计的。 而现在IP网络中也传输语音数据。语音的传输需要实时可靠地传送较小的语音包,当一个 语音包在传输过程中被丢弃时,通常没有时间重新传送该被丢弃的包。另外,当一个语音包 经过了一段较长的路由而在需要播放时不能及时到达时,这个包已经失去了存在的意义。 因此在基于IP网络协议的语音(VoIP,Voice over Internet Protocol)系统中,语音包不 能及时到达或不能到达时,都被认为该语音包丢失了。网络传输过程中的丢包是在网络传输语音数据时服务质量下降的主要原因。而丢 包隐藏技术是指通过合成的数据包补偿丢失的包,来减小传输过程中的丢包对语音质量的 影响。如果没有有效的语音丢包隐藏技术,即使是设计和管理得最好的IP网络也不能提供 长话级品质的通信。而设计良好的解决丢包问题的技术,能很大程度上提高语音传输的质 量。因此在现有技术中,不同的机制被用来隐藏由于丢包引起的影响。例如G. 711协议的 附录1中记录了以基音波形替代为基础的丢包隐藏方法。基音波形替代是一种基于收端的处理技术,它根据语音的特点对丢失的数据帧进 行补偿。下面介绍基音波形替代技术的原理、实现过程以及存在的缺点。在语音信号中,一般清音从波形上看是杂乱无章的,而浊音在波形上则表现出周 期性。基音波形替代的主要原理是首先,利用丢失帧前一帧的信息,即波形缺口位置的前 一帧的信息来估计出基音周期P,然后,用缺口位置之前的,长度为P的一段波形来补偿波 形的缺口。图1是现有技术中利用基音波形补偿丢失帧的示意图。如图1所示,帧2为丢 失的音频帧,帧长为L,帧1是帧2之前的音频帧,帧3是帧2之后的音频帧,且帧1和帧2 都是完好的数据帧。假定已经检测出丢失帧前一帧,即帧2对应的基音周期为P,在图1中 用区间1表示,那么根据浊音的周期性特点,就可以把丢失帧的前一帧的最后一个基音周 期的数据,也就是区间1对应的数据复制到丢失帧,以重建丢失帧2的信号。如果一个基音 周期的数据不足以把丢失帧的空缺填满,即基音周期P <丢失帧的帧长L,则重复复制区间 1的数据到丢失帧的空缺进行填充。例如在图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点的长度等于最大可能基音周期减去最小可能基音周期。在 Sff的滑动过程中计算SW中的采样点和TW中的采样点的自相关值,以搜索最佳匹配点,在 最佳匹配点处SW中的采样点信号与TW中的采样点信号的自相关值最大。则最佳匹配点和 Tff的起始位置R之间的距离P即为所估计的基音周期。在上述过程中,用x(i)表示HB中的第i个采样点,且HB中采样点个数,即35ms 数据中的采样点个数为LEN,SW和TW中采样点个数,即20ms数据中的采样点个数为W,则 SW中的采样点信号与TW中的采样点信号的相关函数CR如公式(1)所示
W 其中,SW和TW分别表示滑动窗和模板窗中的采样点序列,k为与滑动窗SW的起始 位置L对应的HB中的采样点的序号,也就是SW向右滑动的距离。在现有技术标准中用k 点对应的SW与TW的自相关值与滑动窗SW的能量比值作为匹配值corr(k),如公式(2)所 示
corr(k)^ . CR(k)(2)
_]β(科冰
V m=l最佳匹配点BK是在搜索过程中于匹配值的最大值BC(Best Corr)对应的k点的 位置,BC如公式(3)所示BC = max{corr (k) 11 ^ k ^ 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中最后一个基音周 期的数据填满第一个丢失帧后,需要在第一个丢失帧的尾部延伸1/4基音周期的长度的数 据,如信号“After 10ms”所示。在用HB中的最后一个基音周期数据填充第一个丢失帧时还需要保存一个和基音 周期相关的数据的偏移量OFFSET,它将用在有连续丢包的情况下。假定基音周期的长度为 P,完整一帧对应的长度为L,则填满一帧后,OFFSET的值为0FFSET = L% P。在图4中,将第一个丢失帧填满后,将历史缓冲区HB尾部的两个基音周期的数据 放入到一个缓冲区PB中,然后在HB尾部向后二又四分之一基音周期处开始取四分之一基 音周期的数据和缓冲区PB最后四分之一基音周期的数据做叠加,然后用这两个基音周期 长度的数据更新缓冲区PB中的数据。然后再在缓冲区PB的OFFSET处开始,取四分之一基 音周期长度的数据并乘上一个上升窗,将填充第一个数据包时延伸的四分之一基音周期的 数据乘上一个下降窗,两者做叠加处理,并将叠加处理后的数据填充到第二帧开始的四分 之一基音周期。最后,从缓冲区PB的OFFSET+四分之一基音周期处继续取数据填充丢失的 第二帧剩余的空间,并更新OFFSET的值OFFSET = (0FFSET+L) % P最后,还需要保证第2个丢失帧和其下一帧的波形的平滑过渡,从缓冲区PB的 OFFSET处开始取四分之一基音周期加上其随后的4ms数据并乘上一个下降窗,和下一帧 开始的四分之一基音周期加上4ms的数据乘上一个上升窗进行叠加,并替换下一帧开始 的四分之一基音周期加上4ms的数据,就得到了经过补偿后的音频信号,如图4中的信号 "Concealed"所示,信号“Original,,是原始信号。图4给出了现有技术中填充两个丢失帧的过程,如果连续丢失了 3个数据帧,仍然 按照填充第二个丢失帧的方法填充第三个丢失帧。并且在现有技术中,在连续丢帧的情况 下,需要从第二个丢失帧开始进行线性的能量衰减,其中每IOms衰减20%。当丢失帧的数 据达到60ms后,就将丢失帧的数据全部置为0。但是在上述利用基音波形补偿丢失帧的方法中存在如下的缺点1)采用自相关分析的方法估计出的浊音基音周期P不够准确。利用图2所示的 方法查找最佳匹配点时,只查找一个最佳的匹配点,没有考虑到倍频的问题,因此可能会估 计出一个错误的基音周期,则用错误的基音周期数据对丢失帧的数据进行补偿时,会影响 到丢失帧合成的质量。另外,估计基音周期的初衷本是要获得最接近丢失帧处的数据的基 音周期,但在使用图2所示的自相关方法计算基音周期的时,却需要使用丢失帧之前至少 22. 5ms的采样数据,因此,在计算距离丢失帧起始处最近一段数据的基音周期时,会产生一 定的误差,使用有误差的基音数据填充丢失帧的数据时,就使得拼接处的相位发生突变。2)在现有技术中只使用丢失帧之前的数据,即历史数据进行填充。由于音频信号中的基音周期也是逐渐变化的,因此距离丢失帧越远的数据与丢失帧的相关性越弱,只用 丢失帧之前的数据对丢失帧进行补偿,有可能在丢失帧和其之后的帧相连的地方发生相位 不连续的现象。3)当丢失帧发生在有语音渐变的地方时,只用丢失帧的前一基音周期数据对丢失 帧数据进行恢复,则会发生幅度不连续的现象。

发明内容
有鉴于此,本发明实施例提供了一种估计基音周期的方法,该方法能够消除估计 基音周期时存在的倍频问题。本发明实施例提供了一种估计基音周期的装置,该装置能够消除估计基音周期时 存在的倍频问题。本发明实施例还提供了一种对基音周期进行微调的方法,该方法能够减小估计基 音周期的误差。本发明实施例还提供了一种对基音周期进行微调的装置,该装置能够减小估计基 音周期的误差。本发明实施例提供了一种实现丢包隐藏的方法,该方法增强了恢复的丢失帧数据 与丢失帧之后的数据之间的相关性。本发明实施例提供了一种实现丢包隐藏的装置,该装置增强了恢复的丢失帧数据 与丢失帧之后的数据之间的相关性。为达到上述目的,本发明的技术方案具体是这样实现的本发明实施例公开了一种估计基音周期的方法,该方法包括以下步骤获取已知语音数据的初始基音周期;从初始基音周期所对应频率的一个以上的大于1的整数倍频率所分别对应的基 音周期中,选择所对应频率小于或等于最小可能基音周期所对应频率的基音周期作为候选 基因周期,并从初始基因周期和候选基音周期中选择一个基因周期作为所述已知语音数据 的最终估计基音周期。本发明实施例公开了一种估计基音周期的装置,该装置包括初始基音周期获取 模块和选择模块,其中,初始基音周期获取模块,用于获取已知语音数据的初始基音周期,并发送给选择 模块;选择模块,从初始基音周期所对应频率的一个以上的大于1的整数倍频率所分别 对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所对应频率的基音周期 作为候选基因周期,并从初始基因周期和候选基音周期中选择一个基因周期作为所述已知 语音数据的最终估计基音周期。本发明实施例公开了一种对基音周期进行微调的方法,该方法还包括获取丢失数据之前或丢失数据之后的已知数据的初始基音周期;在所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗;设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点 周围的预设范围内滑动,所述预设点是已知数据中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的数据与滑动 窗中数据的匹配值,并从中查找出最佳的匹配值,并将具有最佳匹配值时的模板窗与滑动 窗的对应端点之间的距离作为微调后的基音周期。本发明实施例公开了一种对基音周期进行微调的装置,该装置包括初始基音周 期获取模块,设置模块和计算模块,其中,初始基音周期获取模块,用于获取丢失数据之前或丢失数据之后的已知数据获取 初始基音周期,并发送给设置模块;设置模块,用于接收初始基音周期获取模块发送的初始基音周期,并在所述已知 数据靠近丢失数据的一端,设置长度为预设值的模板窗,设置长度与模板窗长度相同的滑 动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动;所述预设点是已 知数据中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;计算模块,用于在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗 中的数据与滑动窗中数据的匹配值,并从中查找出最佳匹配值,并将具有最佳匹配值时的 模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期。本发明实施例公开了一种实现丢包隐藏的方法,该方法包括设置长度与丢失数据长度相等的丢失帧主缓冲区和丢失帧临时缓冲区;利用丢失数据之前的已知数据中的一个基音周期数据,填充丢失帧主缓冲区;利用丢失数据之后的已知数据中的一个基音周期数据,或利用丢失数据之前的已 知数据中的一个基音周期数据,填充丢失帧临时缓冲区;对丢失帧主缓冲区和丢失帧临时缓冲区中的数据进行叠加处理,并用所述叠加处 理后的数据补偿丢失帧。本发明实施例公开了一种实现丢包隐藏的装置,该装置包括主处理模块、丢失帧 主缓冲区和丢失帧临时缓冲区,其中,主处理模块,用于利用丢失数据之前的已知数据中的一个基音周期数据,填充丢 失帧主缓冲区,并利用丢失数据之后的已知数据中的一个基音周期数据,或利用丢失数据 之前的已知数据中的一个基音周期数据,填充丢失帧临时缓冲区;并将丢失帧主缓冲区和 丢失帧临时缓冲区中的数据进行叠加处理后,用所述叠加处理后的数据补偿丢失帧;丢失帧主缓冲区,用于存储主处理模块所填充的数据,其长度与丢失数据长度相 等;丢失帧临时缓冲区,用于存储主处理模块所填充的数据,其长度与丢失数据长度 相等。由上述技术方案可见,本发明实施例中,通过从初始基音周期所对应频率的一个 以上的大于1的整数倍频率所分别对应的基音周期中,选择所对应频率小于或等于最小可 能基音周期所对应频率的基音周期作为候选基因周期,并从初始基因周期和候选基音周期 中选择一个基因周期作为所述已知语音数据的最终估计基音周期的技术方案,能够消除估 计基音周期时存在的倍频问题。本发明实施例中,通过在与初始基音周期对应的匹配点附 近查找最佳匹配点,并根据最佳匹配点的位置对估计的初始基音周期进行微调的技术方 案,减小了估计基音周期的误差。本发明实施例中,利用历史数据中的一个基音周期数据,填充丢失帧主缓冲区,利用当前数据中的一个基音周期数据,或利用历史数据中的一个基 音周期数据,填充丢失帧临时缓冲区,对丢失帧主缓冲区和丢失帧临时缓冲区中的数据进 行叠加处理,并用所述叠加处理后的数据补偿丢失帧的技术方案增强了恢复的丢失帧数据 与丢失帧之后的数据之间的相关性,进而改善了恢复的丢失帧数据与丢失帧之后的数据之 间相位的连续性。


图1是现有技术中利用基音波形补偿丢失帧的示意图;图2是现有技术中利用自相关分析来计算基音周期的方法的示意图;图3是现有技术中对历史缓冲区中最后1/4基音周期的数据进行平滑处理的示意 图;图4是现有技术中用平滑后的基音周期数据补偿丢失帧的示意图;图5是本发明实施例中倍频点的示意图;图6是本发明实施例一种估计基音周期的方法的流程图;图7是本发明实现图6所示方法的一个具体实施例的流程图;图8是本发明实施例一种估计基音周期的装置的结构框图;图9是本发明实施例对丢失帧之前的数据的基音周期进行微调的示意图;图10是本发明实施例一种对基音周期进行微调的方法的流程图;图11是本发明实施例对丢失帧之后的数据的基音周期进行微调的示意图;图12是本发明实施例对基音周期进行微调的装置的结构框图;图13是本发明实施例一种结合历史数据和当前数据实现丢包隐藏的方法的流程 图;图14是本发明实施例对当前帧进行平滑处理的示意图;图15是本发明实施例用当前数据反向填充丢失数据的示意图;图16是本发明实施例在基音缓冲区中查找与给定波形最匹配的波形的示意17是本发明实施例对恢复的丢失帧数据进行幅度平滑处理后的示意图;图18是本发明实施例一种实现丢包隐藏的装置的结构框图;图19是本发明实施例实现丢包隐藏的装置在接收端系统中的外部连接示意图;图20是本发明实施例在实际系统中应用实现丢包隐藏的方法的流程图。
具体实施例方式本发明实施例主要通过对现有的丢包隐藏技术进行改进,以减小现有技术对丢失 帧进行补偿时存在的基音周期估计误差,相位不连续,幅度不连续等问题。首先描述本发明对现有的基音周期估计方法进行改进的实施例。前面提到过浊音是具有周期性的,且周期为P,即基音周期为P,因此在图2中,HB 中的采样点数据X的周期性可用公式(5)表示χ (m) ^ χ (m+P)(5)并且由于周期函数的自相关函数与该周期函数具有相同的周期特性,因此公式 (1)所示的相关函数的周期性可用公式(6)表示
8
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的整数倍频率所分别 对应的基音周期中,选择所对应频率小于或等于最小可能基音周期所对应频率的基音周期 作为候选基因周期,并从初始基因周期和候选基音周期中选择一个基因周期作为所述已知 语音数据的最终估计基音周期。在本步骤中,将初始基音周期对应频率的一个以上的整数倍频率所分别对应的基 音周期作为候选基因周期的实现过程可以是查找出所有大于最小可能基音周期的初始基 音周期的因数,作为候选基音周期。例如,当初始基音周期为12ms,而最小可能基音周期为2. 5ms时,所有大于2. 5ms 的12ms的因数为6ms、4ms和3ms。本步骤中,可以根据与初始基音周期以及各个候选基音周期对应的匹配值来进行 选择。通过图6所示的方案可以消除现有技术估计基音周期时存在的倍频问题。图7是本发明实现图6所示方法的一个具体实施例的流程图。如图7所示,包括 以下步骤步骤701,利用图2所示的自相关分析方法,查找出最佳匹配点,获得与最佳匹配 点对应的基音周期P0,初始化最佳基音周期BP,令BP = P0,并记录相应的匹配值BC。本步骤中,匹配值BC如公式(3)所示。步骤702,初始化N,令N = 1。本步骤中,N表示最佳基音周期发生在PO点对应频率的N倍处,当N = 1,则表示 最佳基音周期BP = P0。步骤703,令N = N+l, P = Ρ0/Ν,即设真实的基音周期P对应的频率为PO对应的 频率的N倍。步骤704,判断步骤703中所得到的P是否大于或等于最小可能基音周期,是则执 行步骤705,否则结束本流程。本步骤中,检测P是否大于等于最小可能基音周期。通常最小可能基音周期取 2. 5ms,在SkHz的采样速率下,对应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所示,包括以下步骤步骤1001,获取丢失数据之前或丢失数据之后的已知数据的初始基音周期。在本步骤中,获取HB中数据的初始基音周期P0。PO可以利用图2所示的自相关 分析方法获取的基音周期,也可以是经过图6所示的方法进行消除倍频处理的基音周期, 还可以是用其他方法获得的基音周期。步骤1002,在所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗。与本步骤对应,在图9中,从历史缓冲区HB的最后一个采样点开始向前取L个采 样点数的一段数据作为模版窗TW。HB的长度为LEN,Tff的起始点为St,末尾点为Et,则有 St = LEN-L+1Et = LEN在本步骤中,L的长度较佳地,取0. 55 X PO左右的值,但不少于0. 25 X PO。步骤1003,设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端 点在预设点周围的预设范围内滑动,所述预设点是已知数据中与模板窗靠近丢失数据的端 点距离初始基音周期长度的点。与本步骤对应,在图9中在历史缓冲区HB中设置一个长度也为L的滑动窗SW, 并使SW的末尾点在Z点附近的预设范围内滑动,Z点是距离TW的Et端点一个初始基音周 期PO长度的点。SW的起始点为Ss,末尾点为Es,Z点与HB的末尾点,也就是与TW的末尾点 Et之间的距离为P0,即Ss = St-PO, Es在[Z-R,Z+R]的范围内滑动。步骤1004,在滑动窗的滑动过程中,计算模板窗中的数据与滑动窗中数据的匹配 值,并从中查找出最佳的匹配值,并将具有最佳匹配值时的模板窗与滑动窗的对应端点之 间的距离作为微调后的基音周期。。在本步骤中,在SW的滑动过程中,计算SW与TW的匹配值,查找出其中的最佳匹配 值,即查找出一个与TW最为相似的SW的位置,并将此时的TW与SW的对应端点之间的距离 P 1作为最终估计的基音周期。计算TW与SW的匹配值时,可以采用自相关分析的方法,如采用公式⑵计算SW 与TW的匹配值。为了减小计算的复杂度,也可以计算SW中采样点与TW中对应的采样点的 幅度差值的绝对值的总和BMvmas (7)所示
BMV (i) 二玄|x (Z-L+i+k)-x (S丁+k — l)| -R<i<R (7) k=l其中x(i)表示HB中的第i个数据。用公式(7)进行计算时,匹配值与BMV成反比,因此查找最小的BMV,即BestBMV = min(BMV(i)), -R 彡 i 彡 R。另外,在步骤1104中,作为一种优选的方案,建议先从中间位置i = 0处开始,然 后再向两侧进行搜索来查找最佳的匹配值。即首先计算i = 0处BMV的值,并作为最初的BestBMV,然后再计算i = 士 l,i = 士2,...,i = 士 R处对应的BMV值,并与BestBMV依次 进行比较,如果小于BestBMV,则将BestBMV值更新为BMV值。通过上述步骤可以估计出一个较为接近真实值的基音周期P1。在估计丢失帧之后的数据的基音周期时,可以用上述方法对初始的有误差的基音 周期进行微调,以达到减小误差的目的。图11是本发明实施例对丢失帧之后的数据的基音周期进行微调的示意图。在图 11中,首先利用丢失数据之后的一段已知数据获取初始基音周期Po。PO可以利用图2所示 的自相关分析方法获取的基音周期,也可以是经过图6所示的方法进行消除倍频处理的基 音周期,还可以是用其他方法获得的基音周期。在丢失数据之后的一段已知数据的长度不 足以利用自相关分析等方法计算出其基音周期时,可用丢失数据之前的已知数据的基音周 期代替P0。然后在所述丢失数据之后的数据的起始位置开始向后取L个采样点数的一段 数据作为模版窗TW。L的长度较佳地,取0. 55XPO左右的值,但在所述丢失数据之后的已 知数据的长度不够0. 55XPO时,可以适当的减小L的长度,但较佳地,L不少于0. 25XP0。 设置长度与模板窗相同的滑动窗SW,并使滑动窗SW的起始端点在在Z点的预设范围[Z-R, Z+R]内滑动,Z点是距离TW的St端点一个初始基音周期PO长度的点,SW的起始点为Ss, 末尾点为Es。在滑动窗SW的滑动过程中,计算模板窗TW中的数据与滑动窗SW中数据的匹 配值,查找出其中的最佳匹配值,即查找出一个与TW最为相似的SW的位置,并将此时的TW 与SW的对应端点之间的距离Pl作为最终估计的基音周期。计算TW与SW的匹配值时,可 以采用自相关分析的方法,如采用公式(2)计算SW与TW的匹配值。为了减小计算的复杂 度,也可以计算SW中采样点与TW中对应的采样点的幅度差值的绝对值的总和BMvmas (7)所示,此时的最佳匹配值对应BMV的最小值。在图11所示的实施例中,对丢失帧之后的数据的基音周期进行微调时,较佳地, 窗的长度L取大于0. 25XP0,因此从图11可以看出,较佳地,在所获得的丢失帧之后的数据 的长度大于或等于1. 25XPO时才进行基音周期的微调。图12是本发明实施例对基音周期进行微调的装置的结构框图。如图12所示,该 装置包括初始基音周期获取模块1201,设置模块1202和计算模块1203,其中,初始基音周期获取模块1201,用于获取丢失数据之前或丢失数据之后的已知数据 获取初始基音周期,并发送给设置模块1202 ;设置模块1202,用于接收初始基音周期获取模块1201发送的初始基音周期,并在 所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗,设置长度与模板窗长度 相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动;所述预 设点是已知数据中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;计算模块1203,用于用于在所述滑动窗所能滑动的预设点周围的预设范围内,计 算模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳匹配值,并将具有最佳匹 配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期。在本步骤中,计算模板窗中的数据与滑动窗中数据的匹配值可以是计算模板窗 中的数据与滑动窗中数据的相关值,并取匹配值为与相关值成正比的数值;或计算模板窗 中的数据与滑动窗中对应数据的幅度差值的绝对值的总和,并取匹配值为与所述幅度差值 的绝对值的总和成反比的数值。
到此为止给出了本发明估计基音周期的具体实施例,接下来描述本发明如何补偿 丢失帧,即如何进行丢包隐藏处理的过程。在现有技术中只使用丢失帧之前的数据,即历史数据进行填充。由于音频信号中 的基音周期也是逐渐变化的,因此距离丢失帧越远的数据与丢失帧的相关性越弱,现有技 术中只用丢失帧之前的数据对丢失帧进行补偿,有可能在丢失帧和其之后的帧相连的地方 发生相位不连续的现象。但是具体的情况是当有数据帧丢失时,在系统延时允许的情况下可以等到接收 到下一个完好的数据帧时,结合历史数据和在丢失帧后所接收到的当前数据进行丢包隐藏 处理。因此在本发明实施例中给出一种结合历史数据和当前数据进行丢包隐藏处理的方 案,其中历史数据指丢失帧之前的数据,当前数据指丢失帧之后的数据。图13是本发明实施例一种结合历史数据和当前数据实现丢包隐藏的方法的流程 图。如图13所示,包括以下步骤步骤1301,估计历史数据的基音周期PP。在本步骤中,可以直接用图2所示的方法估计出PP,也可以先用图2所示的方法估 计出一个初始基音周期,然后用图6和图10所示的本发明实施例的方法对初始基音周期进 行倍频消除和微调修正后再作为本实施例中的PP。步骤1302,对历史数据进行平滑处理。在本步骤中,可以用图3所示的方法对历史数据的最后PP/4数据进行平滑处理。步骤1303,将平滑后的历史数据中的最后一个PP长度的数据放到一个专用的基 音缓冲区PB中。基音缓冲区PB的长度与基音周期PP相等。步骤1304,用基音缓冲区PB中的数据填充与丢失帧长度相等的丢失帧主缓冲区 LMB。在本步骤中,用PB中的数据填充LMB时,需要一个偏移指针P_0FFSET协助。P_ OFFSET,用于指示下一次从基音缓冲区PB中取数据时,应该从什么位置开始取数据,以保 证和已填充数据拼接处的平滑。在使用PB中的数据来恢复丢失的数据帧时,每取出一段数 据,就需要将指针PJFFSET向右移动相应的长度,如果发现从偏移指针P_0FFSET到基音缓 冲区结尾的数据不够所需要的数据时,则P_0FFSET重新置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和图10所示的本发明实施例的方法对初始基音周期进 行倍频消除或微调修正后再作为本实施例中的NP。步骤1307,对当前数据进行平滑处理。在本步骤中,用图14所示的方法对当前数据进行平滑处理。步骤1308,将平滑后的当前数据中的开始的一个NP长度的数据放到一个专用的 基音缓冲区PBl中。步骤1309,用基音缓冲区PBl中的数据反向填充与丢失帧长度相等的丢失帧临时 缓冲区LTB。执行步骤1313。在本步骤中,用PBl中的数据反向填充LTB的过程与步骤1304中用PB中的数据 填充LMB的过程类似,只是填充的方向相反,因此称为“反向填充”。图15是本发明实施例 用当前数据反向填充丢失数据的示意图。在图15中,比较了用历史数据最后的PP长度的 数据填充丢失数据段和用当前数据开始的NP长度数据填充丢失数据段的过程,可以看出 用历史数据填充的方向是从左到右,而用当前数据填充的方向是从右到左。步骤1310,从当前数据的起始位置开始取长度为L的一段数据DateA,并在基音缓 冲区PB中查找与DateA最匹配的一段L长度的数据DateBjf DateB的起始点记为St。图16是本发明实施例在基音缓冲区中查找与给定波形最匹配的波形的示意图。 如图16所示,在基音缓冲区PB中设置一个长度为L的滑动窗SW,Sff的起始端点Ss从PB 的起始端点开始逐渐向右滑动一直到PB的末尾端点,并SW的滑动过程中计算SW中的数据 和给定数据DateA的匹配值。当SW的起始端Ss点向右滑动一定距离后,其末尾端点Es会 超出PB的区域范围,即SW起始端点到PB末尾端点的长度M小于L,此时,复制基音缓冲区 PB起始位置起的L-M长度的数据拼接到基音缓冲区PB的末尾,以满足匹配的要求。然后用 Sff中拼接起来的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中数据乘上一个上升窗,并将上述两个乘窗的数据进行叠加,将叠加后的数据
14作为恢复的丢失帧填充到丢失帧处。到此为止,便完成了结合历史数据和当前数据进行丢包隐藏处理的过程。当然,在图13所示的流程中,可以不需要步骤1305的判断步骤,在步骤1304之 后直接执行步骤1306、1307、1308、1309和1313,或在步骤1304之后直接执行步骤1310、 1311,1312和 1313。在上述流程的步骤1310中,在PB中查找与DateA最匹配的DateB时,可以利用在 步骤1304中得到的基音缓冲区PB的偏移指针P_0FFSET的位置,即将初始的匹配点设置为 P_0FFSET,然后在P_0FFSET的位置附近查找最佳匹配的点St,这样可以减少匹配的次数, 从而减少计算量。如果丢失帧正好位于浊音和清音的过渡段时,用图13所示的方法恢复丢失帧,可 能还会出现能量异常变化的情况,因此在本发明实施例中进一步需要根据丢失帧的前后帧 能量的变化来对丢失帧的幅度进行平滑处理,以实现波形的渐变。首先取当前数据开始处的L个样点,并计算这L个样点的能量值EN。然后在基音 缓冲区PB中查找和这L个样点最匹配的L个样点,并计算基音缓冲区中的这L个样点的能 量EP。最后,根据丢失帧的前后帧能量的变化情况,对图13所示的方法最终恢复的丢失帧 数据幅度进行平滑,以达到能量平稳过渡的目的。计算L个样点的能量时,可以取L个样点的幅度的平方求和的方法。设丢失帧的前后帧能量的比值为ER (Energy Ratio),则ER = EN/EP,用χ表示所恢 复丢失帧数据的序列,X(i)表示序列X中的第i个数据,帧长为FRAME_SZ,则可以公式(8)
对所恢复的丢失帧数据逐点进行能量修正
χ (i) = x (i)x(ix Sqrt(ER)-1 +1) l<i<FRAME SZ (8)
FRAMESZ + l—其中,函数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中,丢失帧检测器1901接收到从网络上传输过来的比特流后,判断是否 有数据帧丢失,如果没有数据帧丢失,则丢失帧检测器201将完好的语音帧传送给解码器 1902进行解码,然后解码器1902将解码后的数据送入到历史缓冲区1903,延迟模块1904对历史缓冲区1903中的数据延迟一定时间后输出。如果丢失帧检测器1901检测到有数据 帧丢失,就发送“丢失语音帧”的信号给实现丢包隐藏的装置1905,然后实现丢包隐藏的装 置1905使用本发明实施例所述的丢包隐藏方法,获取恢复的丢失帧数据,并将恢复的丢失 帧数据放置在历史缓冲区1903中与丢失帧相对应的位置上。在图19所示的系统中,在满 足延迟要求的条件下,实现丢包隐藏的装置1901需要根据丢失帧之前的历史数据和丢失 帧之后的一帧或者多帧数据进行丢包隐藏处理,但在复杂的网络条件下,丢失帧之前的帧 和丢失帧之后的数据帧是否丢失并不是已知或固定的,因此实现丢包隐藏的装置1905可 通过丢失帧检测器1901获得在进行丢包隐藏处理时所需的帧的状态信息。然后实现丢包 隐藏的装置1905利用历史缓冲区1903中的数据,并结合与丢失帧相关的前后帧的状态,合 成丢失的音频帧。图20是本发明实施例在实际系统中应用实现丢包隐藏的方法的流程图。如图20 所示,包括以下步骤;步骤2001,接收端系统收到新的语音数据帧。步骤2002,接收端系统判断当前接收到的新的语音数据帧是否为坏帧,是则执行 步骤2006,否则执行步骤2003。步骤2003,接收端系统对接收到当前帧进行解码处理。步骤2004,接收端系统判断当前 帧的前一帧是否丢失,是则执行步骤2006,否则 执行步骤2005。步骤2005,用当前帧更新历史缓冲区,执行步骤2008。步骤2006,用丢包隐藏处理方法恢复丢失帧。步骤2007,用恢复的丢失帧和/或当前帧更新历史缓冲区。步骤2008,将历史缓冲区中数据延迟一段之间。在本步骤中,延迟的时间可以根据应用场景进行设定。例如,系统要求的延迟时间 为1帧或更多帧对应的时间时,考虑到进行前帧平滑时最大的可能叠加长度为最大可能基 音周期(最大可能基音周期一般为15ms)的0. 25倍,即3. 75ms,因此可以在满足系统延迟 要求的情况下,适当增加延迟时间。比如当Ims数据对应的采样点的个数为SP时,则可以 使用的延迟时间为一帧对应的时间和CEIL(3. 75XSP/FRAME_SZ) XFRAME_SZ个采样点对 应的时间中的大者,其中CEIL的意义为取大于给定浮点数的最小整数,FRAME_SZ为一帧数 据中的采样点个数。例如,当系统的帧长为5ms时,可以设定延迟时间为5ms,即对应一帧的延迟时间; 如果当前系统的帧长为2ms,则可以设定延迟时间为MAX (2,CEIL (3. 75/2) X 2) = 4ms,即对 应两帧的延迟时间。步骤2009,输出历史缓冲区中的数据。步骤2010,判断是否还有其它的数据帧需要接收,是则转到步骤2001继续执行, 否则结束本流程。在实际应用当中,需要根据系统的延时允许时间来决定是否应用本发明实施例中 给出的结合历史数据和当前数据恢复丢失帧的方法来进行丢包隐藏处理。例如当有一个数 据帧丢失时,如果系统的延时时间允许,则等待下一帧,如果下一帧是完好的帧,则可以利 用本发明实施例给出的结合历史数据和当前数据恢复丢失帧的方法对丢失帧进行隐藏处理,如果下一帧数据仍然丢失了,则在系统的延时时间允许的情况下,继续等待下一帧的数 据。在连续丢帧的情况下,且系统时延条件不允许继续等待时,利用历史数据进行丢包隐藏处理。综上所述,本发明实施例中,通过从初始基音周与所有大于最小可能基音周期的 初始基音周期的因数中选择一个数值作为估计的最佳基音周期的技术方案,能够消除估计 基音周期时存在的倍频问题。本发明实施例中,通过在初始基音周期的附近查找最佳匹配 点,并根据最佳匹配点的位置对估计的初始基音周期进行微调的技术方案,减小了估计基 音周期的误差。本发明实施例中,利用历史数据中的最后一个基音周期数据,填充丢失帧主 缓冲区,利用当前数据中的第一个基音周期数据,或利用历史数据中的最后一个基音周期 数据,填充丢失帧临时缓冲区,对丢失帧主缓冲区和丢失帧临时缓冲区中的数据进行叠加 处理,并用所述叠加处理后的数据补偿丢失帧的技术方案增强了恢复的丢失帧数据与丢失 帧之后的数据之间的相关性,进而改善了恢复的丢失帧数据与丢失帧之后的数据之间相位 的连续性。并且,在本发明实施例中还通过对所恢复的丢失帧的幅度进行平滑处理的技术 方案,使得所恢复的丢失帧与当前帧的连接处的能量变化变得平稳。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范 围之内。
权利要求
一种对基音周期进行微调的方法,其特征在于,该方法包括获取丢失数据之前或丢失数据之后的已知数据的初始基音周期;在所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗;设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动,所述预设点是已知数据中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳的匹配值,并将具有最佳匹配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期。
2.如权利要求1所述的方法,其特征在于,所述在滑动窗所能滑动的预设点周围的预 设范围内,计算模板窗中的数据与滑动窗中数据的匹配值,并查找出最佳匹配值是,从所述 预设点开始向该预设点两侧的预设范围进行查找。
3.如权利要求1所述的方法,其特征在于,所述计算模板窗中的数据与滑动窗中数据 的匹配值,并从中查找出最佳的匹配值的步骤包括计算模板窗中的数据与滑动窗中数据的相关值,并取匹配值为相关值,取匹配值中最 大的值作为最佳匹配值;或计算模板窗中的数据与滑动窗中对应数据的幅度差值的绝对值的总和,并取匹配值为 所述幅度差值的绝对值的总和,取匹配值中最小的值作为最佳匹配值。
4.如权利要求1所述的方法,其特征在于,获取丢失数据之后的已知数据的初始基音 周期包括获取丢失数据之前的已知数据的初始基音周期,并将所获取的丢失数据之前的 已知数据的初始基音周期作为丢失数据之后的已知数据的初始基音周期。
5.一种对基音周期进行微调的装置,其特征在于,该装置包括初始基音周期获取模 块,设置模块和计算模块,其中,初始基音周期获取模块,用于获取丢失数据之前或丢失数据之后的已知数据获取初始 基音周期,并发送给设置模块;设置模块,用于接收初始基音周期获取模块发送的初始基音周期,并在所述已知数据 靠近丢失数据的一端,设置长度为预设值的模板窗,设置长度与模板窗长度相同的滑动窗, 并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动;所述预设点是已知数据 中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;计算模块,用于在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的 数据与滑动窗中数据的匹配值,并从中查找出最佳匹配值,并将具有最佳匹配值时的模板 窗与滑动窗的对应端点之间的距离作为微调后的基音周期。
6.如权利要求5所述的装置,其特征在于,所述初始基音周期获取模块,用于获取丢失 数据之前的已知数据的初始基音周期,将所获取的丢失数据之前的已知数据的初始基音周 期作为丢失数据之后的已知数据的初始基音周期,并发送给所述设置模块。
全文摘要
本发明实施例公开了对基音周期进行微调的方法和装置,获取丢失数据之前或丢失数据之后的已知数据的初始基音周期;在所述已知数据靠近丢失数据的一端,设置长度为预设值的模板窗;设置长度与模板窗长度相同的滑动窗,并使滑动窗靠近丢失数据的端点在预设点周围的预设范围内滑动,所述预设点是已知数据中与模板窗靠近丢失数据的端点距离初始基音周期长度的点;在所述滑动窗所能滑动的预设点周围的预设范围内,计算模板窗中的数据与滑动窗中数据的匹配值,并从中查找出最佳的匹配值,并将具有最佳匹配值时的模板窗与滑动窗的对应端点之间的距离作为微调后的基音周期,减小了估计基音周期的误差,提高了语音数据的质量。
文档编号G10L19/08GK101887723SQ20101015865
公开日2010年11月17日 申请日期2007年6月14日 优先权日2007年6月14日
发明者王东琦, 詹五洲 申请人:华为终端有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1