摘 要:提出了一種改進的自相關函數基音檢測算法:首先利用清濁音自相關函數幅度值的不同性質進行清濁音判決,然后僅對濁音段檢測基音周期。在基音檢測前用帶通濾波、中心削波和數值濾波等方法進行預處理,去除共振峰和高頻噪聲的影響;在基音檢測過程的后端用搜索平滑方法進行后處理,平滑掉半、倍頻點和隨機錯誤點。實驗結果表明,改進算法的效果優于傳統自相關算法,而且在信噪比低至5 dB時仍有良好的清濁音判決和基音檢測性能。
關鍵詞:基音檢測;自相關函數;數值濾波;基音平滑
中圖分類號:TP391 文獻標識碼:B
文章編號:1004-373X(2008)09-135-03
Improved Pitch Detection Algorithm Based on Autocorrelation Function
YANG Senbin,CHEN Yanpu,LI Zhen
(Electronic Information Research Lab,Basic Department,Xi′an Communication Institute,Xi′an,710106,China)
Abstract:An improved pitch detection algorithm based on autocorrelation function is proposed.Unvoiced/voiced decision is realized using the differences between unvoiced and voiced autocorrelation function.Before the pitch detection,the voiced is pretreated by band-pass filter,center clipping and digital filter to reduce the effects of formant and high-frequency noises;after the pitch detection,searching smoothing method is exploited to overcoming the multiple or half frequency errors and random errors.The experimental results show that the performance is superior to traditional autocorrelation function-based algorithm.Furthermore,this new method still works well under low signal noise ratio(SNR=5 dB).
Keywords:pitch detection;autocorrelation function;digital filter;pitch smoothing
1 引 言
濁音信號的周期稱為基音周期,是語音的重要特征參數之一,在語音編碼、語音合成和語音識別等方面有相當重要的作用[1]。基音周期的估計稱為基音檢測,由于語音變化的不確定性和基音頻率的變化范圍大,迄今為止,尚未出現對各種說話人、不同使用環境和不同應用都能給出滿意結果的基音檢測方法[2]。經典的時域自相關函數基音檢測是其中一種性能較好的算法[3],然而該算法在無噪聲環境下會發生基音倍頻和半頻錯誤,在噪聲環境下,這種錯誤發生率會顯著增加[4]。
本文基于清濁音自相關函數幅度值的不同性質,提出了一種新的清濁音判決方法,并從減小共振峰影響、基音平滑兩個方面對傳統的時域自相關函數基音檢測算法進行了改進。
2 自相關函數基音檢測的原理
對于時間離散的確定信號,自相關函數的定義為[2]:
R(k)=∑∞m=-∞x(m)x(m+k)
式中,k為信號的延遲點數。對于隨機信號或周期信號,自相關函數定義為:
R(k)=limN→∞12N+1∑Nm=-Nx(m)x(m+k)
自相關函數具有以下的性質:周期為Np的信號x(n)的自相關函數是一個同周期的周期函數,即有R(k)=R(k+Np)。濁音信號具有準周期性,因此他的自相關函數R(k)具有與x(n)相同的周期,而且在基音周期整數倍上有很大的峰值,通常取第一最大峰值點為基音周期點;而清音信號沒有周期性,因此他的自相關函數也沒有周期,R(k)會隨著k的增大迅速衰減。自相關函數基音檢測正是利用R(k)的這一性質對語音信號進行基音檢測的,算法示意圖如圖1所示。
3 改進的自相關函數基音檢測算法
改進的自相關函數基音檢測流程如圖2所示。算法主要包括分幀加窗、減小共振峰影響、清濁音判決、濁音信號預處理、檢測基頻和平滑后處理等六部分。與其他自相關函數基音檢測算法[4,5]相比,本算法在清濁音判決、減小共振峰影響和平滑后處理等方面有獨特或改進之處。
3.1 基于自相關函數的清濁音判決方法
濁音信號的自相關函數具有周期性,而清音信號的自相關函數沒有周期性,因此,文獻[6]通過判斷自相關函數是否具有周期性而實現清濁音的判決。但是,由于基音周期的變化范圍很大,因此判斷自相關函數周期性的難度和運算量較大。
圖1 自相關函數基音檢測的原理示意圖
圖2 改進的自相關函數基音檢測算法流程圖
通過大量實驗,發現清濁音的自相關函數不僅在周期性上有很大差異,而且在幅度上也有明顯區別。濁音和清音(采樣率fs=8 kHz)在不同信噪比時的歸一化自相關函數分別如圖3,圖4所示。
圖3 濁音信號及其在不同信噪比時的
歸一化自相關函數
圖4 清音信號及其在不同信噪比時的
歸一化自相關函數
由圖3可以看出,對于濁音來說,在延遲樣點數門限T2之后,歸一化自相關函數的最大值即為第一峰值,而且該值在信噪比大于5 dB時均大于幅度門限T3。而對于清音來說,在T2之后,歸一化自相關函數值均小于T3。因此,可以通過判斷T2之后的歸一化自相關函數最大值Rmax與T3的關系來進行清濁音判決,如果Rmax>T3則判決為濁音,否則判決為清音。T2、T3是由實驗決定的判決閾值,根據清濁音的特點和大量實驗證明,當T2∈
3.2 減小共振峰影響的措施
基音頻率的分布范圍為50~450 Hz,其中100~200 Hz的情況占大多數,所以濁音信號有可能包含30~40個諧波分量。同時,由聲道特性決定的語音信號的第一共振峰通常在300~1 000 Hz的范圍內,這就可能導致語音的第2~8個諧波分量幅度高于基頻分量。這樣,豐富的諧波分量常常會令基音檢測出現倍頻或者半頻錯誤[2]。
為了減少共振峰的影響,改進算法采用了三種解決措施。首先,將輸入信號通過頻率范圍為[60,900] Hz的帶通濾波器。因為最高基音頻率為450 Hz,所以將上截頻設為900 Hz可以保留語音的一二次諧波。下截頻為60 Hz是為了抑制50 Hz電源干擾。
其次,利用中心削波函數進行中心削波:
y(n)=x(n)-T1, [WB]x(n)>T1x(n)+T1,x(n)<-T10,|x(n)|≤T1
通常,削波電平T1取本幀語音最大幅度的60%~70%。削波后信號的自相關函數在基音周期位置的峰值會更加尖銳,可以有效減少倍頻或半頻錯誤。
最后,在濁音數據進行基頻檢測前進行數值濾波。數值濾波器輸出與輸入間的關系可表示為:
y(n)=1N∑N-1i=0x(n-i),n=0,1,2,…
其中,N為窗的長度。其傳遞函數為:
H(z)=1N∑N-1n=0z-n
實驗證明,數值濾波器可有效抑制第一和第二個共振峰,突出濁音語音信號的周期性,使基音估計可靠。隨著數值濾波分析窗寬度N的變大,數值濾波后語音的周期性特征會變的更明顯,去除聲道共振峰對基音檢測的影響更徹底[3]。因此,對濁音信號加上寬度N=9的數值濾波器,可使基音估計比較可靠。
3.3 基音平滑后處理
為了進一步消除自相關法估計基音周期時出現的幀間基音周期跳躍、半頻點、倍頻點和隨機錯誤點,需要對基音采取平滑措施。傳統的中值平滑為強制性的基音輪廓平滑,其主要缺陷就是可能平滑掉基音的某些固有突變,破壞基音周期的自然加倍或減半特征。以基音連續特征為基礎的動態規劃技術屬于非線性平滑算法,能取得較好的平滑效果,但是運算量較大,而且需要1~3幀的延遲。
基于搜索的平滑算法[7]具有簡單可靠,快速高效的特點,因此本文利用該算法進行基音平滑。設f1,f2,…,fN表示連續N幀的基音頻率。對第i幀基頻fi的平滑過程主要分為兩種情況。首先處理倍頻和半頻問題,公式如下:
f′i
=12fi,12fi-fi-1 2fi,2fi-fi-1 然后,利用下式處理隨機錯誤點: 其中,f′i表示第i幀基頻平滑后的結果,T4是連續兩幀間頻率差的閾值,而T5是間隔一幀的連續兩幀間頻率差的閾值。根據基頻連續緩慢變化的特性和人發音的頻率范圍,可令T4=10,T5=25。兩個閾值和平滑公式的作用就是限制相鄰幀之間的基音頻率值變化不超過T4,而隔一幀的相鄰幀之間的基音頻率值變化不超過T5,從而達到對基音曲線平滑的效果。 4 實驗結果及分析 為了驗證本文改進算法的準確性和魯棒性,利用采樣 頻率為8 kHz,包含清音和濁音的語音進行提取語音基音周期的實驗。圖5所示為語音為女聲“盤旋”,幀長為400個采樣點,幀移為200個點,分別采用傳統的自相關方法(ACF)[2,5]與本文算法(IACF)進行基音周期檢測的結果比較圖。 圖5 傳統自相關法與本文算法基音檢測的性能比較 從圖5可以看出,本方法在基音周期估計的準確性和抗噪能力方面比傳統的自相關方法有明顯提高。在信噪比很低時,本文方法仍能取得滿意的結果,而傳統自相關方法甚至對一些幀的清濁音判決都發生了錯誤。 5 結 語 提出了一種基于自相關函數幅度值的清濁音判決方法,在此基礎上,結合帶通濾波、中心削波、數值濾波和基音平滑等技術,改進了自相關函數基音檢測算法。實驗結果表明,改進算法的清濁音判決準確率高、基音檢測準確,而且具有較強的抗噪能力。 參 考 文 獻 [1]王宏.用改進的SIFT方法檢測語音基頻[J].現代電子技術,2001,24(2):15-18. [2]張雄偉,陳亮,楊吉斌.現代語音處理技術及應用[M].北京:機械工業出版社,2003. [3]Rabiner L R.On the Use of Autocorrelation Analysis for Pitch Detection[A].IEEE International Conference on Acoustics,Speech and Signal Processing (ICASSP′77)[C].USA:IEEE,1977,25(1):24-33. [4]胡瑛,陳寧,夏旭.一種改進的自相關基音檢測算[J].電子科技,2007(2):25-28. [5]付青青,吳愛平.基于Matlab的語音信號自相關基音檢測[J].長江大學學報:自然科學版,2006,3(4):99-102. [6]李仕萍,凌衛新,閔銳.清濁音判決算法在語言康復訓練中的應用[J].計算機工程,2004,30(14):36-38. [7]朱小燕,王昱,劉俊.漢語聲調識別中的基音平滑新方法[J].中文信息學報,2001,15(2):45-50. 作者簡介 楊森斌 男,1983年出生,廣東省梅縣人,在讀碩士研究生。研究方向為智能信息處理。 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。