張文希, 胡志剛
(1. 中南大學(xué) 軟件學(xué)院,長沙 410083;2. 長沙學(xué)院 電子與通信工程系,長沙 410003)
隨著人類社會的發(fā)展,生物特征認證已成為身份認證的重要技術(shù)參數(shù)得以迅速發(fā)展。在人類自然語言中,語音的特征參數(shù)能有效地體現(xiàn)說話人語音所包含的與其他說話人不同的特點,語音信號的特征提取,在聲紋識別(也稱說話人識別)研究領(lǐng)域,使用較多的有Mel頻率倒譜系數(shù)(MFCC)、線性預(yù)測倒譜系數(shù)(LPCC)、線性倒譜對(LSP)等。其中,美爾頻率倒譜系數(shù)(Mel Frequency cepstrum coefficient,MFCC)是由 Davies 和 Mermelstein 提出的[1],它采用了一種非線性的頻率單位(Mel頻率),以模擬人的聽覺系統(tǒng),充分考慮人耳聽覺結(jié)構(gòu)和人類發(fā)聲和接受聲音的機理特性,具有較好的識別性能和抗噪能力,已成為在語音相關(guān)的識別任務(wù)中應(yīng)用最廣泛、最成功的特征參數(shù)[2]。
MFCC特征參數(shù)的提取,由于計算量大且復(fù)雜,大多數(shù)研究都是借用計算機平臺進行的基于軟件的特征提取,但這種處理方式,無法滿足對硬件環(huán)境和實時性要求更高的應(yīng)用?;贔PGA的數(shù)字處理系統(tǒng)其處理速度與專用集成電路(ASIC)相當(dāng),并且具有更好的設(shè)計靈活性和成本優(yōu)勢,為滿足嵌入式系統(tǒng)和實時性要求,本文提出一種以FPGA為平臺的MFCC特征提取的設(shè)計方法。
MFCC參數(shù)是依據(jù)人耳聽覺系統(tǒng)的生理特性描述的,考慮到人耳聽覺系統(tǒng)的非線性特性,而不同于物理學(xué)對頻率的描述。計算MFCC時,需要在Mel頻率上均勻劃分若干三角形濾波器,各三角形濾波器相互交迭,每個濾波器三角形兩底角點是相鄰濾波器的中心點。MFCC參數(shù)的計算是以“bark”為其頻率基準的[3],通常頻率f與Mel頻率的轉(zhuǎn)換關(guān)系為(1)式
從語音信號輸入到MFCC參數(shù)的求解過程如圖1所示。
圖1 MFCC特征提取過程
語音信號在FFT變換前,需要對其進行預(yù)處理,即圖1中FFT變換前的工作。由于語音受聲門激勵再通過口腔和鼻腔,高頻端(800HZ以上)會以6dB/倍頻程下降,所以需進行預(yù)加重,提升信號高頻部分,傳遞函數(shù)如(2)式。
式中,α為預(yù)加重系數(shù),在聲紋識別系統(tǒng)中,α取0.93和0.95時識別率最高[4],本文取0.94≈15/16。
語音信號的準平穩(wěn)特性,可以將語音信號在短時段內(nèi)視為是平穩(wěn)的。加窗后的語音信號分為一個個短時段,每一個短時段稱為一幀,幀長取32ms,采樣頻率Fs=8kHz時,每幀有256個信號樣值,幀移則為128個信號樣值。語音加窗就是用窗函數(shù)ω(n)乘s(n),即sω(n)=s(n).ω(n),本文采用海明窗如 (3)式。
加窗信號進行FFT變換得到其頻譜,求出頻譜平方,即能量譜;FFT變換的信號,用M個Mel帶通濾波器進行濾波,由于每一個頻帶中分量的作用在人耳中是疊加的,因此將每個濾波器頻帶內(nèi)的能量進行疊加,這時第k個濾波器輸出功率譜經(jīng)x'(k);將每個濾波器的輸出再作對數(shù)運算,得到相應(yīng)頻帶的對數(shù)功率譜,并進行反離散余弦變換,得到L(一般取12~16左右)個MFCC系數(shù)。如下(4)式所示,求出MFCC參數(shù)。
按照圖1 MFCC特征參數(shù)的提取過程和特征,本文采用Matlab中的DSP Builder圖形建模工具箱與VHDL語言設(shè)計模塊相結(jié)合的方法,完成對FPGA的設(shè)計,整體結(jié)構(gòu)如圖2所示。它主要由預(yù)處理模塊、FFT單元、Mel濾波器組、對數(shù)運算單元、累加器輸出模塊、控制單元和表單元等組成。
圖 2 MFCC參數(shù)提取整體結(jié)構(gòu)
語音信號經(jīng)過防混疊濾波后,首先以8kHz的速率采樣和16位寬量化,送給預(yù)處理模塊進行預(yù)加重、分幀和加窗處理。在控制單元的控制下,預(yù)處理模塊輸出以256點為一幀,幀移為128點的加窗信號, 在FFT單元求出能量譜;通過Mel濾波器組對FFT的輸出處理,計算出每個濾波器的功率譜;Mel濾波器組輸出的功率譜經(jīng)對數(shù)運算、與Cos表相乘和累加,計算和輸出MFCC參數(shù);
預(yù)處理模塊由預(yù)加重、分幀和一乘法器組成(還包括簡單的基于短時能量的端點檢測,這里不進行分析)。為了便于FPGA設(shè)計,將式(2)預(yù)加重傳遞函數(shù)改寫為(5)式,由式可知預(yù)加重,只需延時單位、減法器、加法器、4位移位寄存器各一個就可以完成。
信號分幀,采用一個FIFO和鎖存器完成。FIFO設(shè)為一幀語音長度(即256),當(dāng)?shù)谝淮螌憹M256個數(shù)據(jù),就將數(shù)據(jù)輸送到鎖存器鎖存,考慮到幀移為128,F(xiàn)IFO從第二次寫數(shù)據(jù)起,每寫滿128就將數(shù)據(jù)進行鎖存,實現(xiàn)數(shù)據(jù)分幀。
加海明窗,在FPGA中采用查表的方法較為簡單。把(3)式預(yù)先計算出各點值為0.08~1之間,采用Q表示法進行定標,用Q15表示[5],將浮點數(shù)轉(zhuǎn)為定點數(shù),存放到256×16大小的表單元中,用分幀后的信號乘以該表對應(yīng)點的值來計算加窗語音信號。
本文中的FFT變換,是在Simulink工具箱Altera DSP Builder Blockset庫中直接調(diào)用了Altera的fft_v9_0 IP核來實現(xiàn)的。fft_v9_0 IP核參數(shù)設(shè)置為,I/O數(shù)據(jù)流選用了Streaming結(jié)構(gòu),點數(shù)為256的16位數(shù)據(jù),如圖3所示。
圖 3 FFT變換的DSP Builder設(shè)計
Mel濾波器組由24個三角形濾波器組成,模擬人耳聽覺特性,非均勻的分布在0~4kHz范圍內(nèi),如圖4所示。濾波器組總體上覆蓋從0Hz到Nyquist頻率,即采樣率的二分之一,8kHz采樣頻率256點FFT變換,頻率分辨率為31.25(8000/256)Hz,在計算機上用MATLAB計算好三角形濾波器組的中心、上限、下限頻率點和濾波器系數(shù)m1,m2,……,該濾波器組中每個三角形濾波器的中心頻率f(m)在Mel頻率軸上等間隔分布,其跨度在Mel頻率標度上也是相等的 。進行FPGA設(shè)計時將頻率點和濾波器系數(shù)存放在ROM表中。在濾波器功率譜過程中,先將FFT單元輸出的結(jié)果(以幀為單位)鎖存,在計數(shù)器和控制器的作用下,按順序從ROM表中讀取各三角形濾波器相應(yīng)的數(shù)據(jù),分別計算出每個三角形濾波器的功率譜。
圖4 Mel濾波器組
MFCC參數(shù)的獲得,實質(zhì)就是Mel頻譜變換到時域,使用離散余弦變換 (DCT)就可將其變換到時域。對數(shù)運算采用查找表與分段線性插值相結(jié)合的方法來實現(xiàn),第k個濾波器輸出功率譜x'(k)分解為一個小數(shù)(0~1)與2冪次方的乘積,即x'(k)=m×2'',則對數(shù)運算如(6)式所示,其中n為整數(shù),m實際上也在0.5~1間變化,只要將0.5~1的對數(shù)值存放在ROM表中即可以依據(jù)(6)式完成對數(shù)運算。
由(4)式M FCC的計算公式可知,DCT變換同樣采用查找表的方法,對應(yīng)各三角形濾波器和MFCC系數(shù)序號(取1~12)的cos值存入ROM中,結(jié)合乘法器及累加和輸出單元,在控制器有序控制下完成MFCC特征參數(shù)的輸出。
為了人們能便捷使用語音產(chǎn)品,促進語音處理技術(shù)的發(fā)展,本文就語音特征參數(shù)的提取,提出了一種FPGA的實現(xiàn)方法。該方法考慮到FPGA的基于查找表結(jié)構(gòu)特點,在各個環(huán)節(jié)采用了大量的查找表方法進行運算,使信號處理速度得到很大提高,完成一次MFCC參數(shù)的提取只需幾毫秒時間。在數(shù)據(jù)處理過程中采用Q15表示法,計算精度上也得到了保障,幾乎與Matlab中計算出來結(jié)果的相等。完全可以滿足便攜式實時系統(tǒng)處理要求。
[1] DAVIES SB,MERMELSTEIN P.Comparison of Parametric Representations for Monosyllabic Word Recognition in Continuously Spoken Sentences[J].IEEE Transaction Acoustics,Speech and Signal Processing,1980,(4):375-366.
[2] Openshaw JP,Sun ZP,Mason JS.A comparison of composite features under degraded speech in speaker Recognition[C].Proceedings of the International Conference on Acoustics,Speech,and Signal Processing,Minneapolis,USA,1993,2:371–374.
[3] 李錦,何培宇.一種改進的基于小波去噪HMM非特定人語言識別算法[J].四川大學(xué)學(xué)報(自然科學(xué)版),2007,44(1):69-72.
[4] 吳朝暉,楊瑩春.說話人識別模型與方法[M].北京:清華大學(xué)出版社,2009:74-75.
[5] 張雄偉,陳亮,徐光輝.DSP芯片的原理與開發(fā)應(yīng)用(第3版)[M].北京:電子工業(yè)出版社,2003:36-52.