摘要:人聲基頻檢測是一個普遍關心的技術問題,目前所采用的方法也很多。利用數字信號處理的方法,通過對人聲的濁音部分進行功率譜分析的方式,采用一種檢查共振峰位置,進而遏止共振峰,在頻域中凸顯基波頻率的方法,在頻域確定信號的頻率,從而自動檢查出信號的基頻。
關鍵詞:濁音;基頻;DSP;功率譜;共振峰
中圖分類號:TN912
文獻標識碼:B
文章編號:1004—373X(2008)04—113—02
1 算法概述
一般來說,聲音信號濁音部分,去其頭尾,可以看作是平穩的隨機信號。當然,可以用頻譜分析儀來觀察信號頻譜,在頻譜圖上尋找頻率最低的譜峰來確定該段頻率的基頻。同樣,用時域分析的方法,比如相關函數。類似這樣的方法還有很多。但是,如果用一種算法實現功率譜中基頻的自動測量有一定的困難,無法用功率譜中某一個特征值(與其諧波有著明顯的數值差距)。由于共振峰影響,其功率譜表現出基頻分量大小并不一定為其頻率分量中的最大值。所以,很難依靠一種功率譜值比較的方法來估計其基頻。
這里提供一種相對較容易實現,算法簡單的檢波濾波的方法,利用數字信號處理的基本理論,依靠經典功率譜分析方法,其具體思路如下:
首先,截取一段錄制好的聲音文件(這里采用,WAV格式的文件,采樣頻率為22.05 kHz),取2 048個采樣點(便于進行FFT),大約100 ms。如果信號的噪聲干擾不大,可以采用周期圖譜法。如果噪聲比較大,可以考慮用現代譜分析的方法,比如AR模型,以及類似的方法(普通話筒近距離錄音,噪聲影響不大)。
其次,在對這段數據進行譜分析前進行預處理,之后進行周期圖譜分析,在該圖譜中找出最大值,找出該最大值對應的數據位置。根據數據位置和數字頻率與模擬頻率的對應關系,容易算出該譜峰對應的頻率,這個頻率通常是該信號的諧波頻率,在聲音信號中一般來說,其主要的諧波分量為其第二或第三次諧波。
最后,設計一個數字檢波濾波器,對照數字頻率與模擬頻率之間的關系,以最大值的數據位置設計濾波器,以該頻率為阻帶下限截止頻率,以該頻率的1/2為通帶截止頻率的數字低通濾波器,對該信號進行濾波。
在通常情況下,要重復上述方法2次。這樣再進行周期圖譜分析,找到最大峰值所對應的點;根據數字頻率和模擬頻率的對應關系ω=ΩT(ω,Ω分別為數字和模擬角頻率),換算出該數字頻率對應的模擬頻率,這個模擬頻率就可以被認為是這段濁音信號的基頻。
2 算法流程
算法的基本流程如圖1所示:
圖1中,在功率譜中尋找最大值時所對應的頻率實際上并不是ω,而是對應的數組下標i,所以要根據數字頻率及模擬頻率的變換關系ω=ΩT以及FFT的變換長度N來換算ωi,具體換算關系為ωi=Ωs/N×i,其中Ω為采樣角頻率。另外,濾波器參數按照頻率π歸一化設計,歸一化截止頻率為ωi=2i/N。

3 實驗結果
以下是一些實驗結果,對2個元音(其基音頻率為220 Hz)。
圖2是對元音/i/的頻譜分析和為信號的時域波形,圖3為該元音的周期圖譜和經過一次檢波濾波后的周期圖譜,可以清楚的看到,對于男性發出的/i/的元音經過一次檢波濾波就能夠使比較大的二次諧波分量相對基頻分量變的較小。
圖3是元音/u/的周期圖譜,可以看出其基頻分量相對二次諧波分量要小的多,圖4是經過一次檢波濾波的周期圖譜,其基頻分量還是相對二次諧波分量要小,圖2中是對經過一次檢波濾波的聲音信號進行二次檢波濾波。從圖中可以看出經過兩次檢波濾波諧波分量相對基頻分量已經十分小了,從而可以在圖譜中找到最大值對應的位置換算出基頻分量。
4 分析說明
(1)由于只是說明方法的實驗,這里采用的抽樣頻率比較高,并且有著相對比較大的計算量。實際應用時可以采用8 kHz的采樣頻率,也可以根據不同的需要采用其他的采樣頻率。
(2)對聲音信號要進行預處理,過濾低于60 Hz高于3 000 Hz的頻率分量。
(3)對于濾波器的選擇,建議選擇Butterworth濾波器,原因是該濾波器具有平滑單調遞減的頻率響應(這一點在本方法中十分重要),并且濾波器設計簡單,無需考慮線形相位的要求(這里只是幅頻分析)。使用這種濾波器最好能夠調整其階數,階數不宜過高,因為并不希望濾波器的過渡帶過于陡峭,同時階數過高會使計算量過大,對實時處理不利。
要說明的是,如果待檢測信號的頻率在第一次檢波時找到的就是基頻,那么即使是經過二次檢波濾波,重復檢波濾波其峰值的相對位置也是不會發生變化。以下是對分析圖一經過兩次檢波濾波后的結果:
由圖1,圖3可以看出,雖然經過一次檢波濾波基頻分量已經大于諧波分量了,但是經過二次檢波濾波之后并沒有影響分析結果,基頻分量依然相對大于諧波分量。
總結以上介紹,該方法的優點是:方法簡單,理論成熟,可以自動調整數字濾波器的參數,無需對功率譜進行觀察,進而分辨該段信號的頻率,判斷平穩信號的基頻。
