姜林等
摘要:基音周期搜索的準確性將直接影響到語音編碼器的編碼質量和效率。本文根據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.