高 悅,陳硯圃,閔 剛,杜 佳
(西安通信學(xué)院 基礎(chǔ)部,陜西 西安 710106)
一種高效的基音估計算法
高 悅,陳硯圃,閔 剛,杜 佳
(西安通信學(xué)院 基礎(chǔ)部,陜西 西安 710106)
分析已有的一些基音估計算法,對比其優(yōu)缺點,提出一種可大大提高計算速度的高效基音估計算法。該算法是利用平均幅度差(MAMDF)法提取若干個可能峰值點,再利用計算精度較高的循環(huán)平均幅度差(CAMDF)法對這幾個點進行驗證,選取數(shù)值最小的點作為基音周期。由于只對幾個點求CAMDF函數(shù),因此運算量大大減小。
基音周期;基音估計;平均幅度差(AMDF);改進的平均幅度差(MAMDF);循環(huán)平均幅度差(CAMDF)
基音周期是語音壓縮、合成以及識別中的重要參數(shù),是語音信號處理中重要的一項,基音周期估計也因此成為大多數(shù)語音信號處理系統(tǒng)的重要組成部分?;艄烙嫞≒itch Estimation)又稱基音檢測(Pitch Detection),它在有調(diào)語音辨意、低速率語音編碼、說話人識別等方面具有關(guān)鍵作用,基音檢測的最終目標是找出和聲帶振動頻率完全一致的基音周期變化軌跡曲線,若不可能,則找出盡量相吻合的軌跡曲線[1]?;糁芷诠烙嬕恢笔钦Z音信號研究的重要課題,然而對此所提出的很多方法[2]都有其局限性。
由于語音信號是非平穩(wěn)的時變信號,只有其中的濁音部分能夠看作是準周期的,所以語音信號處理中通常采取短時處理技術(shù)。本文首先分析一些傳統(tǒng)基音檢測函數(shù)的特性,并比較其優(yōu)缺點,在此基礎(chǔ)上,提出一種新的基音估計算法,該算法不僅可減小倍頻和半頻的誤判,而且能大大提高計算速度。
語音信號經(jīng)加窗后的信號為Sn(n),Sn(n)的短時自相關(guān)函數(shù)為:
由于濁音是準周期信號,其最大值會周期性地出現(xiàn),因此自相關(guān)函數(shù)實際上放大了其峰值。對于大多數(shù)濁音,語音信號的自相關(guān)函數(shù)都會有一些周期出現(xiàn)的局部最大值,第1個局部最大值與起點之間的距離即為基音周期[4]。清音的自相關(guān)函數(shù)則沒有明顯的峰值出現(xiàn)。因此通過檢測是否有峰值就可判斷是清音還是濁音。
自相關(guān)法是檢測基音周期的有效方法,但因為求取自相關(guān)函數(shù)需要進行大量乘法運算,因此計算時間長,不適合實時應(yīng)用。
平均幅度差函數(shù)AMDF(Average Magnitude Difference Function)的原理與ACF法相似,都是將周期性出現(xiàn)的點放大,所不同的是AMDF法求取的基音周期是第1個局部最小值與起點之間的距離。其定義為:
從D(k)的計算式看出,計算D(k)的差值項是不同的。隨著k增加,求和的差值項數(shù)逐漸減少,結(jié)果導(dǎo)致D(k)的谷值幅度隨著滯后時間k的增加而逐漸下降。因此,很難提取代表基音周期大小的谷值。有些方法設(shè)置多個閾值,以此篩選AMDF的谷值并進行有效性檢驗。然而,閾值的設(shè)置很難適用于所有語音,估計結(jié)果中選擇倍頻、半頻,以及將清音誤判為濁音的概率很高。
為了克服基本AMDF算法中谷值幅度隨滯后時間增加而逐漸下降造成誤判,在其基礎(chǔ)上人們又提出許多新的算法,如變長的 AMDF(LVAMDF)、循環(huán) AMDF(CAMDF)和改進的AMDF(MAMDF)等方法[5]。
AMDF是一種用于估計基音周期的好方法,但由于其本身固有的缺陷,難以估計代表基音周期大小的谷值。由此,人們提出一種改進的AMDF方法,即以AMDF函數(shù)的最大峰值點(nmax,Rmax)與另一點(N,0)連接為一條直線,以這條直線與AMDF函數(shù)對應(yīng)點之差作為線性變換的結(jié)果,由此得到修正的平均幅度差函數(shù)。這一變換的目的是對AMDF函數(shù)的各個周期谷值點的深度作線性縮減,同時將原函數(shù)的峰值和谷值點反轉(zhuǎn)。在基音周期不是很大的情況下,以此方法進行變換后,將第1峰值與起點之間的距離作為基音周期,基本不會改變非平穩(wěn)濁音語音的AMDF函數(shù)谷值特性和清音語音的AMDF函數(shù)特性,因此是比較準確的。但當基音周期較大時,由于這種線性縮減不能很好地修正AMDF函數(shù),利用MAMDF方法仍會出現(xiàn)誤判。
基于以上算法的一些缺陷,一種新的CAMDF(Circular AMDF)函數(shù)[6]被提出,即采取類似于循環(huán)卷積的方法將AMDF函數(shù)重新定義為
由CAMDF的定義可以看出,其原理與AMDF類似,在基音周期的整數(shù)倍點處會呈現(xiàn)顯著的谷值點特征。但CAMDF函數(shù)與AMDF函數(shù)的不同之處在于,在計算幅度差函數(shù)D(k)時,當前加窗語音幀內(nèi)的每個樣本點都被使用且僅被使用一次,求和的差值項數(shù)也相同。因此,CAMDF函數(shù)值不會像AMDF函數(shù)那樣因求和的差值項越來越少而呈下降趨勢,其谷值點函數(shù)值會隨著滯后時間k的增加而依次遞增。這樣,利用谷值點檢測基音周期就更容易和有效。
由于CAMDF函數(shù)具有以上優(yōu)點,它成為基音周期檢測的有效方法。但由于每求取CAMDF函數(shù)的一個樣點值,都要進行2N次運算,因此計算一幀的CAMDF函數(shù)運算量非常大,這樣使其無法實時應(yīng)用。這里在綜合以上基音周期計算方法優(yōu)缺點的基礎(chǔ)上,提出一種綜合多種方法優(yōu)點的高效計算方法,既保留CAMDF函數(shù)計算精度高的優(yōu)點,又避免CAMDF函數(shù)運算時間過長的缺點。
考慮到AMDF方法運算量較小,運算速度快,首先采用MAMDF法計算基音周期。理論上,求得MAMDF函數(shù)后,只要找到最大的峰值點即可得到所要求的周期。但由于語音信號的準周期性,有時最大峰值點所對應(yīng)的點并不是基音周期,而真正的基音周期對應(yīng)的點也可能并不是最大峰值點。因此,為了消除這種誤判情況,在求出MAMDF函數(shù)的峰值點后,對峰值點所對應(yīng)的MAMDF函數(shù)的函數(shù)值進行排序,取出最大的5個函數(shù)值,這5個函數(shù)值對應(yīng)的點即為可能的周期點。
回顧已有的基音周期求取方法可發(fā)現(xiàn),CAMDF方法是一種比較準確的方法,其誤判率較低,基音周期的計算較準確。因此可采用準確率較高的CAMDF方法,僅對這5個點進行計算,然后對這5個點的CAMDF函數(shù)值進行排序,函數(shù)值最小的那個點與零點的距離即所要求的基音周期。采用這種方法,不但利用CAMDF函數(shù)可準確求取基音周期的優(yōu)點,同時避免了該方法運算量大的缺點。
圖1所示是對一幀語音求取MAMDF函數(shù)和CAMDF函數(shù),MAMDF函數(shù)上的圓圈是對MAMDF函數(shù)取最大的5個峰值點:16,37,53,90,106。 CAMDF 函數(shù)上的圓圈是這 5 個點在CAMDF函數(shù)上的對應(yīng)位置??煽闯觯?個點的值最小,因此這幀語音的周期就是53個點。
圖1 對一幀語音求取MAMDF函數(shù)和CAMDF函數(shù)
傳統(tǒng)基于AMDF函數(shù)的基音檢測算法中很容易出現(xiàn)基音估計加倍或減半的現(xiàn)象,CAMDF基音檢測算法精度較高,但運算量太大。本文針對該現(xiàn)象,綜合傳統(tǒng)基音檢測算法的優(yōu)點,提出一種新的基音檢測算法。由于該基音檢測算法只需計算5個點的CAMDF函數(shù),而傳統(tǒng)CAMDF算法需對一幀中的所有點進行計算,因此大大減少運算量,簡化基音檢測過程。
[1]楊行俊,遲惠生.語音信號數(shù)字處理[M].北京:電子工業(yè)出版社,1995.
[2]馮 康,時慧琨.語音信號基音檢測的現(xiàn)狀及展望[J].微機發(fā)展,2004,14(3):95-98.
[3]Rabiner L R.On the use of autocorrelation analysis for pitch detection[J].IEEE Trans.1977,ASSP-25(1):24-33.
[4]鮑長春.低比特率語音編碼基礎(chǔ)[M].北京:北京工業(yè)大學(xué)出版社,2001.
[5]成新民,曾毓敏,趙 力.一種改進的AMDF求取語音基音的方法[J].微電子學(xué)與計算機,2005,22(11):162-167.
[6]張文耀,許 剛,王裕國.循環(huán)AMDF及其語音基音周期估計算法[J].電子學(xué)報,2003, 31(6):886-890.
An effective pitch estimation algorithm
GAO Yue, CHEN Yan-pu, MIN Gang, DU Jia
(Base Department,Xi’an Communication College,Xi’an710106,China)
This paper analyses and compares some existing pitch detection algorithms,then puts forward an effective pitch detection algorithm which improves calculation speed.This algorithm uses MAMDF method picking up some possible peak values.Then verifies their values with high-precision CAMDF,the point which has the minimum value is the pitch.The computation reduces greatly because only several points’CAMDF function are are computed.
pitch; pitch estimation; average magnitude difference function(AMDF); MAMDF; CAMDF
TN912.3
A
1674-6236(2010)01-0024-02
2009-09-29 稿件編號:200909103
高 悅(1973—),女,陜西西安人,博士,講師。研究方向:語音信號處理。