面向移动应用的语音编解码开环基音搜索方法
2014-04-29姜林等
姜林等
摘要:基音周期搜索的准确性将直接影响到语音编码器的编码质量和效率。本文根据AMR-WB+标准中基音周期搜索算法会发生检测基音倍频和半频错误,提出了开环基音搜索算法。该算法以自相关函数为基础,利用基音周期的平滑性,引入基音周期全局参考作为基音周期判断的辅助条件,有效解决了基音周期加倍的问题并在基音周期预测中体现基音周期的平滑性,实验结果表明本文算法性能优于AMR-WB+中的算法性能。该算法已应用到AVS-P10移动音频编解码框架中。
关键词:基音周期; 全局参考; 自相关函数
中图分类号:TN9123 文献标识码:A文章编号:2095-2163(2014)01-0075-04
0引言
基音周期搜索是语音编码中一个重要的问题,其准确性将直接影响到语音编码器的编码质量和效率。准确的基音周期性分析,可以在语音编码过程中有效地去除冗余,降低编码的比特数,实现低比特率,高质量的语音编码。目前,人们已经提出了多种基音检测算法。其中,在时域的角度,传统的算法主要包括基于平均幅度差函数(AMDF)的基音估计算法、基于短时自相关函数(ACF)的基音检测算法。在频域的角度,1984年,Griffin和Lim提出了一种频域基音周期估计方案[1],用于多带激励语音编码算法 (MBE),这种基音周期估计算法采用闭环分析合成方法,匹配信号频域波形,得到最优基音周期估计。1998年,Janer等提出了基于小波变换的基音周期估计方法[2],而2003年,楼红伟等提出小波加权的基音周期检测方案[3]。其后在2006年,黄海提出了一种基于Hilbert-Huang变换的语音信号基音周期提取方法,该方法无须对语音信号进行分帧截断,对其直接进行Hilbert-Huang变换后, 通过基音频率搜索处理得到基音频率及其随时间的变化[4]。2008年,Zhao采用线性导谱系数与自相关函数相结合的方式预测基音周期[5]。2012年,Ba H等将谐波比率和倒频谱分析的方法相结合对基音周期进行估计[6]。
AVS-P10音频标准是面向新一代移动通信系统的低码率高保真音频编解码,技术标准应用包括移动通信、无线宽带、多媒体通信、互联网宽带以及流媒体业务等。其中的核心编码器由ACELP和变换矢量TVC组成。基音周期搜索属于ACELP编码中重要组成部分,其搜索效率及存储代价直接影响编码器性能。3GPP制定的标准AMR-WB+[7]编码采用了加权相关函数法进行基音周期的搜索。在进行基音周期搜索之前, 对输入的信号进行预处理,除去直流分量,随后滤除对基音周期估计不起作用的高频部分。AMR-WB+使用传统的时域相关函数,并采用加权函数来防止倍周期以及平滑基音周期。在AMR-WB+编码标准中,使用加权函数进行加权,其合理之处在于该加权函数经过了训练,能够在一定程度上解决倍周期问题。但是对于倍音周期问题,并不是所有的候选值都会遇到,对于所有的候选值进行加权更无疑会增加运算复杂度。此外,加权函数函数值序列也会占用较大的内存空间,增加了存储空间开销。在AMR- WB+中,同时采用了基音周期平滑加权。其加权函数也采用类似对基音倍周期问题相似的加权。但如此这般要对其它所有的候选值进行加权,则必然会增加运算复杂度。
本文以自相关函数为基础,利用基音周期的平滑性,引入基音周期全局参考作为基音周期判断的辅助条件,有效解决了基音周期加倍的问题并在基音周期预测中体现基音周期的平滑性,实验结果表明本文算法性能优于AMR-WB+中的算法性能。该算法已应用到AVS-P10移动音频编解码框架中。
1开环基音搜索方法
每帧输入信号可分成四个子帧,开环基音搜索每两个子帧,即执行一次基音周期估计。开环基音搜索是为了估计出一个比较准确的基音周期,由此而降低闭环基音周期搜索的复杂度。
开环基音周期搜索基于感知加权后的信号而展开分析,感知加权域信号Sw(n)在进行基音周期搜索之前,使用4阶FIR滤波器Hdecim2(z)实现降采样处理,得到信号Swd(n)进行开环基音周期搜索。
开环基音周期搜索过程包括:自相关函数序列计算,基音周期全局参考确定,基音周期确定三个部分。首先计算信号Swd(n)的自相关函数,然后根据自相关函数的结果确定当前的基音周期全局参考,最后根据当前的基音周期全局参考确定语音信号的基音周期。
1.1自相关函数计算
1.2基音周期全局参考
为满足基音周期的平滑性,引入基音周期全局参考global_pitch辅助进行基音周期的判断。基音周期全局参考确定方法如下所述:
利用前节确定的基音周期候选值序列peakpos[6]以及自相关函数序列maxcorr[6],首先选择与前帧的基音周期全局参考接近的基音周期候选值,对其相应的自相关函数值进行加权,将自相关函数值乘以1.2,加权后重新排列基音周期候选值序列peakpos[6]以及自相关函数序列maxcorr[6]。
对peakpos[6]以及maxcorr[6]判断并去除基音周期加倍的情况。倍周期的消除采用的是固定加权方法,其最终目的是找出一个最佳基音周期候选值,算法过程为:
(1)设定最佳的基音周期候选值为自相关函数最大值对应的基音周期候选值,对于每一个基音周期候选值,选择一个自相关函数值的缩放因子,当基音周期候选值大于阈值25时,选择缩放因子为1.2,否则选择缩放因子为1.11;
(2)比较该基音周期候选值对应的自相关函数值与自相关函数值序列中的最大值和缩放因子的比值,若
①当前考虑的基音周期候选值小于当前最佳的基音周期;
②当前基音周期候选值对应的自相关函数值大于自相关函数序列中的最大值和缩放因子的比值,这两个条件同时满足时则设定基音周期最佳候选值为当前的基音周期候选值。如此循环,直至基音周期候选值序列中的每一个基音周期候选值计算完成;
(3)判断自相关函数序列中的最大值对应的基音周期候选值是否为当前最佳基音周期候选值的加倍,若是,保持当前的基音周期最佳候选值,否则设定自相关函数序列中最大值对应的基音周期候选值作为最佳基音周期候选值。
得到了最佳基音周期候选值后,要进行可靠的基音周期全局参考(global_pitch)确定。确定基音周期全局参考的算法为:
(1)若当前帧可以确定可靠的基音周期参考,即确定新的基音周期全局参考,否则,要在当前帧延续近期可靠的基音周期全局参考。若超过了额定的保持基音周期全局参考的帧数,则强制基音周期全局参考为0,意味着该语音片段并不是浊音,而且也不具备较好的基音周期连续性;
(2)对于可靠的基音周期参考,其确定方式为满足以下4个条件之一即可:
① 基音周期候选值序列中,自相关函数最大值并不是最佳基音周期候选对应的自相关函数值的加倍,并且最佳的基音周期候选值与当前的基音周期全局参考的差值的绝对值小于8 (延续前帧);
② 自相关函数序列中最大值与其它值的比值均大于1.7 (在这种情况下,前面遴选出的最佳基音周期候选值一定是自相关函数序列中最大值对应的基音周期候选值);
③ 基音周期候选值序列中存在基音周期候选值为最佳基音周期候选值的加倍;
④ 当前的基音周期全局参考(延续前帧)是当前最佳基音周期候选值的加倍,并且自相关函数的最大值要大于0.36这一门限。
满足这四个条件时,基本就可以断定该段语音信号为一个周期性比较强的浊音信号,因此利用这段语音信号可以确定一个基音周期的全局参考值,该全局参考值可以适用于当前帧以及后来帧。倘若不满足上述的条件,即不能确定可靠的基音周期,则要考虑是否沿用前面确定的可靠的基音周期全局参考,本文中设定基音周期参考轨迹可以保持三帧,首先判断是否保持了三帧,如果超过三帧,则强制当前帧的基音周期参考为0,失去参考的意义。否则,考察是否自相关函数最大值小于0.15这一门限,若小于该门限超过1帧,则仍强制该基音周期全局参考为0。
1.3基音周期确定
基音周期的确定可基于前面计算出来的自相关函数序列,以及其对应的基音周期候选序列来分别进行不同情况的基音周期判断。
在确定基音周期时,需分三种情况确定最终的基音周期:
(1)基音周期候选与基音周期全局参考的差值的绝对值小于5;
(2)最大自相关函数值小于门限值0.15;
(3)无法明显判断基音周期,基音周期确定参考值用来对最后的基音周期的确定起到参考的作用,确定该值的步骤如下:
① 若基音周期全局参考非零,基音周期确定参考值设定为基音周期的全局参考;
② 否则,基音周期确定参考值设定为上一个不为0的基音周期全局参考,若上一个不为0的基音周期全局参考保持超过3帧,则该值强制为0。
利用上述条件确定的基音周期确定参考值对整个基音周期候选序列进行搜索,找到基音周期候选值最接近基音周期确定参考值的一个值,将其对应的自相关函数加倍,并重新排序自相关函数值,随之移动对应的基音周期搜索候选值,同时找到自相关函数最大的基音周期候选值作为基音周期输出。
2实验分析
实验采用本文算法与AMR-WB+中的算法进行对比,以ACELP编码模式中的分段信噪比作为客观评价标准,测试数据采用MPEG标准的12个序列,实验结果如表1所示。其图示实验结果如图1所示。
3结束语
AVS P10标准采用最大化自相关函数值从而得到的基音周期候选值,该候选值与求原始信号以及延迟信号的误差的最小均方差标准求解得到的基音周期候选值一致,从统计意义上讲比较精确,并且与后面的闭环基音搜索中的整数基音搜索相一致。本文中使用归一化的自相关函数,以通过对自相关函数值的分类分析解决倍周期问题,并且对基音周期平滑性进行加权和判断语音的周期性强弱,进而最终确定基音周期。在判定过程中设定基音周期全局参考轨迹作为基音周期全局变化的量度,用于平滑基音周期,并采用分类的基音周期分析,针对信号自适应地最佳确定基音周期,解决了基音周期变化范围大的问题。AVS P10标准的算法运算复杂度和存储开销均小于AMR-WB+,而性能与AMR-WB+相当。
参考文献:
[1]GRIFFIN, DANIEL W, LIM, et al. New Pitch detection algorithm[C]//Proceedings of the International Conference on Digital Signal Processing, 1984: 395-399.
[2]JANER L. New pitch detection algorithm based on wavelet transform[C]//IEEE International Symposium on Signal Processing,1998: 165-168.
[3]楼红伟,赵建伟,胡光锐.一种小波加权的基音检测方法[J].上海交通大学学报,2003,37(3): 447-449.
[4]黄海,潘家强.基于Hilbert-Huang变换的基音周期提取方法[J].声学学报,2006,31(1):35-41.
[5]ZHAO Z D, HU X M, TIAN J F. An effective pitch detection method for speech signals with low signal-to-noise ratio[C]//IEEE International Conference on Machine Learning and Cybernetics[C]. 2008, 5: 2775-2778.
[6]BA H, YANG N, DEMIRKOL I, et al. BaNa: A hybrid approach for noise resilient pitch detection[C]// IEEE Statistical Signal Processing Workshop (SSP), 2012: 369-372.
[7]MAKINEN J, BESSETTE B, BRUHN S, et al. AMR-WB+: A new audio coding standard For 3rd generation mobile audio services[C]//IEEE International Conference on Acoustics, Speech and Signal Processing, 2005.