李會雅,苑林,門晉喜,韓曉霞
(1.河北大學 電子信息工程學院,河北 保定 071002;2.河北大學 工商學院,河北 保定 071000;3.95866部隊 無線電導航教研室,河北 保定 071051)
基音周期是描述濁音激勵源的一個基本特征,其倒數(shù)稱為基音頻率.基音頻率的不同軌跡就是聲調,在漢語中聲調承擔著構字辯意的作用,因此基音檢測是漢語語言處理的關鍵環(huán)節(jié).自相關函數(shù)法(ACF)[1]和平均幅度差函數(shù)法(AMDF)[2]是基音檢測的經典算法,但準確性不高,容易產生倍、半基音,在平滑過程中不僅增加了處理時間和算法復雜度,還可能引入新的誤差[3-4].小波變換是近年來的研究熱點,具有良好的時頻局部分析能力,但受聲道響應的影響較大,計算量大.文獻[5]給出了降低復雜度的自相關函數(shù)法,但準確率不很理想.文獻[6-7]中的平均幅度差加權自相關法(AWAC)和文獻[8]中的自相關能量函數(shù)及幅度差能量函數(shù)相結合的算法,對于隨信噪比減小而越來越大的諧波峰值點起到了一定的抑制作用,突出了基音周期的峰值點.但文獻[8]中的算法,含有大量的平方運算,計算復雜度高.為了進一步降低其計算量,增強實時性,提高基音檢測算法的魯棒性,在研究ACF法和AMDF法的基礎上,提出了一種基于ACEF和MDEF的新算法,既保留了算法簡單、計算量小的優(yōu)點,又提高了準確度,有效杜絕了新誤差的出現(xiàn).
對于確定性信號序列x(k),自相關函數(shù)定義為
由于濁音的波形序列具有準周期性,而且其R(τ)的周期與濁音的周期相同,因此可利用R(τ)第1個峰值的位置來估計基音周期.
設含噪語音信號s(k)由純凈語音信號x(k)及噪聲信號n(k)組成,可表示為[8]
若用來選擇語音段的窗函數(shù)為矩形窗,則定義含噪語音信號s(k)的短時自相關函數(shù)為
其中,N為幀長,τ為位移,Rxx(τ)為x(k)的自相關函數(shù),Rxn(τ)為x(k)與n(k)的互相關函數(shù),Rnx(τ)為n(k)與x(k)的互相關函數(shù),Rnn(τ)為n(k)的自相關函數(shù).
一般地,語音信號x(k)與噪聲信號n(k)無關,則Rxn(τ)=0,Rnx(τ)=0,式(3)可表示為
當τ≠0時,n(k)互不相關,則Rnn(τ)=0,則Rss(τ)可以表示為
由式(5)易知,當τ≠0時,含噪語音信號的自相關函數(shù)Rss(τ)與噪聲n(k)無關,完全等于Rxx(τ).
對于完全的周期信號m(k),在其周期NP整數(shù)倍的樣點上幅值相同,可表示為
實際濁音信號的d(k)會在基音周期的整數(shù)倍位置出現(xiàn)不為零的極小值.若用來選擇語音段的窗函數(shù)為矩形窗,則定義語音信號s(k)的短時平均幅度差函數(shù)為
其中,N為幀長,τ為位移.若語音信號s(k)在窗函數(shù)取值范圍內具有周期性,則Fss(τ)將在τ=0,±NP,±2NP,…處出現(xiàn)極小值.比較式(7)與式(3)可知,F(xiàn)ss(τ)的運算過程較Rss(τ)簡單,易于硬件實現(xiàn).
為了消除聲道共振峰和語音諧波對基音周期檢測的影響,對語音信號進行預處理[11].本文采用三電平中心削波的方法,對輸入的語音信號進行處理,其輸入輸出函數(shù)
其中,y(k)為三電平中心削波器的輸出信號,s(k)為三電平中心削波器的輸入信號,±CL為削波電平.
由式(8)可知,當削波器的輸入s(k)>CL時,削波器的輸出為1;當削波器的輸入s(k)<-CL時,削波器的輸出為-1;當削波器的輸入為其他情況時,削波器輸出全為零.語音信號經過三電平削波后,其中大多數(shù)次要的峰值被濾除掉了,僅保留下明顯顯示周期性的峰值.之后采用自相關法進行基音檢測時,可大大減少錯判為倍頻或半頻的情況.
基音檢測過程分為3個階段:預處理、基音檢測、后處理,具體過程如圖1所示.
圖1 基音檢測實現(xiàn)過程Fig.1 Realization process of pitch detection in this paper
在預處理階段,由錄音設備采集的語音信號首先通過帶通濾波器,以抑制50Hz的電源干擾和大部分共振峰的影響,之后存入循環(huán)緩沖區(qū).為確保語音信號基音檢測的連續(xù)性,在取幀時,幀移與幀長的比值一般取為,前一幀與后一幀相交疊部分的數(shù)據(jù)長度,稱為幀移.將每幀數(shù)據(jù)通過削波函數(shù),削去和聲道有關的波動.
在基音周期估計階段,采用Matlab仿真軟件,記錄下本文算法得到的仿真波形中相鄰2個峰值橫坐標之間的距離,即相隔的采樣點數(shù).
在后處理階段,去大野點模塊去除峰值橫坐標相隔采樣點數(shù)的錯誤估值,之后采用試探平滑處理算法[10],進而得到語音信號的基音周期.
由于ACEF會在語音信號基音周期整數(shù)倍的位置上呈現(xiàn)峰值,而相應處的MDEF則會呈現(xiàn)出谷值的特性.因此,采用本文算法得到的仿真曲線中,基音周期整數(shù)倍處呈現(xiàn)峰值的特性將更加突出,有利于基音周期的提取.而且算法僅涉及到1和0的相乘和相加運算.由此可見,新算法的計算復雜度較低,而且運算量也得到了大幅度的降低.
本實驗采用的測試語音信號是在實驗室的噪聲環(huán)境下錄制的,其采樣頻率fs為16kHz,每個采樣點為16bit量化,含噪測試語音信號波形如圖2所示.仿真實驗過程中采用的帶通濾波器通帶為60~90Hz,通過調用語音信號處理工具箱中的分幀函數(shù),實現(xiàn)對語音信號流的分幀處理,其中窗函數(shù)為矩形窗.幀移與幀長N的比值取為基于語音信號的短時平穩(wěn)性,以下仿真過程均是逐次對每幀語音信號進行相應的處理.三電平中心削波處理過程中,首先分別找出該幀前個語音信號采樣值中的最大值,然后比較這2個最大值,取其中較小值的65%作為門限電平.將偏離采用本文算法的仿真曲線中相鄰2個峰值橫坐標之間相隔采樣點數(shù)平均值以上的數(shù)值設為大野點,中值平滑的滑動窗口寬度為3,精度為中值的,將不在平滑范圍內的點置為0,從而糾正個別估值的錯誤,最后得到語音信號的基音周期的平均值.
設采用本文算法的仿真波形中相鄰2個峰值橫坐標之間相隔的采樣點數(shù)為NT,則基音周期T=NT/fs,其中fs為采集語音信號時的采樣頻率,單位為kHz.
圖2 含噪測試語音信號波形Fig.2 Waveform of Noisy test speech signal
由圖2可見,測試語音信號波形的幅度處于[-0.1,0.1]內,其持續(xù)時間為0.12s,波形帶有鋸齒狀的毛刺,說明測試語音信號的錄制環(huán)境含有噪聲.
應用語音信號處理Praat軟件對測試語音信號進行基音頻率提取的仿真圖形,如圖3所示.
圖3 Praat處理測試語音信號的仿真圖形Fig.3 Simulation graphics of the test speech signal using Praat
由圖3可見,Praat軟件得到的測試語音信號基音頻率為229.49Hz,則該測試語音信號的基音周期為
以該測試語音信號的第6幀數(shù)據(jù)為例,此幀語音信號的一般自相關函數(shù)和幅度差函數(shù)結合的(ACFMDF)的仿真示意圖如圖4所示;基于自相關能量函數(shù)和幅度差能量函數(shù)(ACEF-MDEF)的仿真示意圖如圖5所示.
圖4 第6幀語音信號采用ACF-MDF函數(shù)的仿真示意Fig.4 Simulation graphics of the Sixth frame test speech signal using the ACF-MDF function
圖5 第6幀信號采用ACEF-MDEF函數(shù)的仿真示意Fig.5 Simulation graphics of the Sixth frame test speech signal using the ACEF-MDEF function
由圖4可見,在使用ACF-MDF函數(shù)法得到的第6幀測試語音信號的仿真示意圖中,在采樣點數(shù)為70的位置上出現(xiàn)了波形的峰值,但由于此處的峰值較小,在強噪聲環(huán)境下會出現(xiàn)峰值提取的困難,甚至峰值會完全淹沒在噪聲信號中,以致無法提取出語音信號的基音周期.
由圖5可見,在使用ACEF-MDEF函數(shù)法得到的第6幀測試語音信號的仿真示意圖中,采樣點數(shù)為70位置上出現(xiàn)了波形的峰值,峰值尖銳明顯,去除了一些對提取基音周期影響較大的諧波峰值點,使峰值點更加突出,有利于語音信號基音周期的提取,具有一定的抗噪聲性能.
基于ACEF-MDEF的基音檢測算法克服了自相關函數(shù)計算量大和幅度差函數(shù)易受噪聲影響的缺點,比ACF和AMDF直接結合的方法更準確,更穩(wěn)定.新算法涉及到的運算簡單,降低了時間和空間復雜度,適合應用于手持語音識別終端上.與此同時,基音檢測的準確性和魯棒性也有了很大提高.但由于語音信號產生過程的復雜性和不可預測性,以及基音周期本身固有的特性,到目前為止,還沒有能適應任何人、任何環(huán)境的基音檢測算法.因此,如何從語音信號中僅取出與聲帶振動有關的信息,去除聲道的影響,是下一步需要解決的問題.
[1]RABINER L R.On the use of autocorrelation analysis for pitch detection[J].IEEE Trans on Acoustics Speech and Signal Proc,1977,ASSP-26(1):24-33.
[2]ROSS M J,SHAFFER H L,COHEN A,et al.Average magnitude difference function pitch extractor[J].IEEE Trans on Acoustics Speech and Signal Proc,1974,22(5):353-362.
[3]DUANPEI WU,TANAKA M,CHEN R,et al.A robust speech detection algorithm for speech activated hands-free application[Z].1999IEEE International Conference on Acoustics,Speech,and Signal Processing,Phoenix,1999.
[4]BERITELLI F,CASALE S,SERRANO S.Adaptive V/UV speech detection based on acoustic noise estimation and classification[J].Electronics Letters,2007,43(4),249-251.
[5]馬祥杰,孟相如,張百生.一種自相關基音檢測算法[J].通信技術,2003(5):9-11.
MA Xiangjie,MENG Xiangru,ZHANG Baisheng.An autocorrelation algorithm for pitch detection[J].Communications Technology,2003(5):9-11.
[6]劉建,鄭方,鄧答,等.基于混合幅度差函數(shù)的基音提取算法[J].電子學報,2006,34(10):1925-1928.
LIU Jian,ZHENG Fang,DENG Da,et al.Combined magnitude difference function based pitch tracking algorithm.[J].Chinese Journal of Electronics,2006,34(10):1925-1928.
[7]陶維青,徐士林,仁靜.漢語語音的基音快速提取算法[J].合肥工業(yè)大學學報:自然科學版,1996,19(3):31-36.
TAO Weiqing,XU Shilin,REN Jing.Algorithm of Chinese Speech Pitch Extraction[J].Journal of Hefei University of Technology:Natural Science Edition,1996,19(3):31-36.
[8]李娟.基音周期檢測算法研究及在語音合成中的應用[D].太原:太原理工大學,2008.
LI Juan.Study of speech pitch detection algorithm and application in speech synthesis system[D].Taiyuan:Taiyuan U-niversity of Technology,2008.
[9]朱建偉,孫水發(fā).一種基于段的基音檢測算法[J].三峽大學學報:自然科學版,2008,30(3):80-82.
ZHU Jianwei,SUN Shuifa.Pitch detection of speech segment[J].Journal of China Gorges Univercity:Natural Science Edition,2008,30(3):80-82.
[10]朱小燕,王昱,劉俊.漢語聲調識別中的基音平滑新方法[J].中文信息學報,2000,15(2):45-50.
ZHU Xiaoyan,WANG Yu,LIU Jun.An approach of fundamental frequencies smoothing for Chinese Tone Recognition[J].Journal of Chinese Information Processing,2000,15(2):45-50.
[11]胡航.語音信號處理 [M].4版.哈爾濱:哈爾濱工業(yè)大學出版社,2009.