摘 要: 在TI的DSK5402平臺(tái)上構(gòu)建了一個(gè)主要采用VQ方法的6個(gè)說話人識(shí)別系統(tǒng)。該系統(tǒng)采用了10階的線性預(yù)測(cè)參數(shù)、10階的線性預(yù)測(cè)倒譜參數(shù)及基音參數(shù),提出了一種改進(jìn)的LBG算法,以避免在迭代過程中產(chǎn)生空胞腔,使之能適應(yīng)多種距離測(cè)量。實(shí)驗(yàn)證明,本系統(tǒng)在指定文本的說話人閉集測(cè)試中取得了滿意的效果。
關(guān)鍵詞: 數(shù)字信號(hào)處理器;說話人識(shí)別;矢量量化;LBG算法
自動(dòng)說話人識(shí)別是一種自動(dòng)識(shí)別說話人的過程,它著眼于提取語(yǔ)音信號(hào)中的個(gè)人特征,從而達(dá)到識(shí)別說話人的目的。說話人識(shí)別按是否規(guī)定說話人所說的內(nèi)容可以分為文本有關(guān)型和文本無(wú)關(guān)型,前者要求待識(shí)別人說指定內(nèi)容的一段話來(lái)進(jìn)行識(shí)別,而后者對(duì)識(shí)別人說的內(nèi)容無(wú)任何限制[1]。就整個(gè)說話人識(shí)別的發(fā)展來(lái)說,近幾年說話人身份識(shí)別在理論和實(shí)驗(yàn)室條件下已經(jīng)達(dá)到比較高的識(shí)別精度,并開始走向?qū)嶋H應(yīng)用階段。AT&T、歐洲電信聯(lián)盟、ITT、Keyware、T-NETIX、Motorola和Visa等公司相繼開展了相關(guān)實(shí)用化研究,國(guó)內(nèi)有關(guān)這方面的研究主要在中科院聲學(xué)所、中科院自動(dòng)化所、清華大學(xué)等研究所和大學(xué)中進(jìn)行。本文采用VQ方法在TI的DSK5402平臺(tái)上構(gòu)建了一個(gè)文本有關(guān)的說話人身份識(shí)別系統(tǒng),并采用線性預(yù)測(cè)語(yǔ)音合成方法來(lái)實(shí)現(xiàn)語(yǔ)音的人機(jī)交互。該系統(tǒng)具有使用方便、識(shí)別速度快和成本低等特點(diǎn),具有廣闊的應(yīng)用前景。
1 算法的設(shè)計(jì)
本系統(tǒng)算法的流程如圖1所示。首先將輸入的經(jīng)過數(shù)字化處理的語(yǔ)音信號(hào)進(jìn)行預(yù)處理,然后提取其中與說話人有關(guān)的特征參數(shù),接著對(duì)參數(shù)進(jìn)行訓(xùn)練,為每個(gè)說話人生成一個(gè)模板。有了這組模板,在識(shí)別的時(shí)候,系統(tǒng)將提取新接收的語(yǔ)音的參數(shù),并分別與這些模板進(jìn)行比對(duì),判斷是否與某個(gè)模板匹配,最后給出判決結(jié)果。
1.1 語(yǔ)音的預(yù)處理
本系統(tǒng)首先對(duì)采集到的語(yǔ)音信號(hào)進(jìn)行預(yù)處理。這里認(rèn)為待處理的語(yǔ)音是純凈的采樣數(shù)字語(yǔ)音。預(yù)處理主要包括預(yù)加重、分幀和加窗、端點(diǎn)檢測(cè)等操作。系統(tǒng)中采用一個(gè)6 dB/倍頻的一階濾波器來(lái)進(jìn)行預(yù)加重。為進(jìn)行分幀和加窗,系統(tǒng)取幀長(zhǎng)10 ms(80個(gè)樣點(diǎn)),窗長(zhǎng)30 ms(240個(gè)樣點(diǎn)、覆蓋幀前120個(gè)樣點(diǎn)、幀后40個(gè)樣點(diǎn)),由半個(gè)漢明窗和1/4個(gè)余弦窗組合而成。為減小計(jì)算量和提高計(jì)算精度,窗函數(shù)采用制表法,用浮點(diǎn)數(shù)算出數(shù)值,再定點(diǎn)化為一張表以供調(diào)用。由于幅度門限法相對(duì)簡(jiǎn)單,計(jì)算量較小,因此系統(tǒng)采用它來(lái)進(jìn)行語(yǔ)音的端點(diǎn)檢測(cè)。通過預(yù)處理后,便可以應(yīng)用短時(shí)分析技術(shù)逐幀提取出相應(yīng)的特征參數(shù)。
1.2 語(yǔ)音特征參數(shù)的提取
本系統(tǒng)采用基音參數(shù)、LPC參數(shù)和LPCC參數(shù)作為語(yǔ)音的特征參數(shù)?;糁芷诘墓烙?jì)采用自相關(guān)法,其具體過程是先求出一幀語(yǔ)音的自相關(guān)參數(shù),然后系統(tǒng)在[20,39]、[40,79]、[80,143]3個(gè)區(qū)間內(nèi)各選一個(gè)自相關(guān)峰值點(diǎn)作為候選基音,接著對(duì)規(guī)格化的3個(gè)自相關(guān)峰值進(jìn)行比較,選擇最大的那個(gè)作為最終的基音。由于信號(hào)受聲帶共振峰特性的影響,求出的基音值會(huì)有所偏離,解決的辦法是采用中心削波法,即將信號(hào)小于門限的點(diǎn)賦值為0,大于門限的保持不變,然后將處理過的信號(hào)按以上方法求自相關(guān)。LPC參數(shù)就是在線性預(yù)測(cè)(LP)分析中求得的全極點(diǎn)濾波器的系數(shù)集{ai}pi=1,即在預(yù)測(cè)誤差最小均方誤差準(zhǔn)則下,由公式
1.5 線性預(yù)測(cè)語(yǔ)音合成
本系統(tǒng)中需要進(jìn)行人機(jī)交流,如語(yǔ)音提示輸入識(shí)別語(yǔ)句、識(shí)別結(jié)果提示等。為了節(jié)省系統(tǒng)資源,保存完整的語(yǔ)音提示信息是不現(xiàn)實(shí)的。由于線性預(yù)測(cè)語(yǔ)音合成具有占用資源少、數(shù)據(jù)率低和實(shí)現(xiàn)簡(jiǎn)單等特點(diǎn)[3],而且系統(tǒng)交互所需要的語(yǔ)音對(duì)音質(zhì)沒有特別的要求,因此考慮用它來(lái)實(shí)現(xiàn)語(yǔ)音的人機(jī)界面。具體的實(shí)現(xiàn)過程是:首先利用PARCOR分析在PC上提取輸入語(yǔ)音提示的PARCOR參數(shù)km,以普通文本形式保存,然后在DSP平臺(tái)上利用km由PARCOR分析的逆過程來(lái)實(shí)現(xiàn)語(yǔ)音提示的語(yǔ)音合成。語(yǔ)音分析的過程可以在PC上實(shí)現(xiàn),不占用系統(tǒng)資源,而語(yǔ)音分析得到的參數(shù)保存為文本后大小僅有幾KB,與原始語(yǔ)音信號(hào)幾百KB相比,占用系統(tǒng)數(shù)據(jù)區(qū)的資源少了很多,而語(yǔ)音合成的程序本身占用資源非常少,因此利用固定的參數(shù)文本和語(yǔ)音合成的辦法實(shí)現(xiàn)有限的語(yǔ)音提示很適合本系統(tǒng)。
2 算法的DSP實(shí)現(xiàn)
在TI眾多DSP產(chǎn)品中,TMS320C54X系列用于多媒體信號(hào)的處理及便攜式設(shè)備,其片上資源及工作頻率能滿足一般的音頻信號(hào)處理,而同樣適合于多媒體處理的C64X和C62X系列雖然性能更加出色,但成本過高,因此本系統(tǒng)中采用TI的DSK5402集成開發(fā)環(huán)境作為開發(fā)平臺(tái)。該平臺(tái)上提供了一個(gè)PCM3002立體聲編解碼芯片,可以實(shí)現(xiàn)語(yǔ)音的采集和播放,通過它可以讀入識(shí)別或是訓(xùn)練用的語(yǔ)音以及播放系統(tǒng)運(yùn)行時(shí)所需要的語(yǔ)音提示命令。下面給出算法的具體優(yōu)化方案。
2.1 精度保持與程序優(yōu)化
本系統(tǒng)在信號(hào)處理過程中,由于迭代運(yùn)算的大量出現(xiàn),而TMS320C5402是定點(diǎn)DSP,為了防止誤差的不斷積累,需要在迭代的運(yùn)算中做大量定點(diǎn)的高精度基本算術(shù)運(yùn)算。為了在保持精度的同時(shí)又不過分降低運(yùn)行速度,本系統(tǒng)將大量高精度的算術(shù)運(yùn)算匯編化。本文根據(jù)自相關(guān)模塊和LPC空間中求取IS距離模塊自身的特點(diǎn),著重對(duì)這兩個(gè)模塊進(jìn)行優(yōu)化。
自相關(guān)模塊中輸入的數(shù)據(jù)為加過窗的16 bit數(shù)組,輸出數(shù)據(jù)為長(zhǎng)字?jǐn)?shù)組,其中歸一化前采用32 bit,歸一化后也采用32 bit,計(jì)算歸一化數(shù)據(jù)所用除法采用Tayloer級(jí)數(shù),使除法精度有效位達(dá)到32 bit(C++下浮點(diǎn)運(yùn)算有效位為24 bit)。由于指數(shù)位對(duì)精度影響很小,因此這種方法下數(shù)據(jù)的精度已經(jīng)超過了浮點(diǎn)運(yùn)算。在匯編模塊中使用了特殊指令EXP和NORM對(duì)數(shù)據(jù)進(jìn)行位對(duì)齊,使保存未歸一化數(shù)據(jù)時(shí)利用所有位,精度得到保持,使用累加、平方累加、塊循環(huán)指令以加速程序運(yùn)行[4]。通過優(yōu)化,使得在保持精度的同時(shí),對(duì)一幀信號(hào)作自相關(guān)耗費(fèi)6 036個(gè)CLK,遠(yuǎn)遠(yuǎn)超過用C語(yǔ)言實(shí)現(xiàn)該模塊的消耗。
LPC空間中求取IS距離模塊的難點(diǎn)在于,向量本身是32 bit,中間計(jì)算都是48 bit,牽涉到32 bit×32 bit、48 bit×32 bit等高精度計(jì)算,而且該模塊在訓(xùn)練和識(shí)別程序中都要反復(fù)被調(diào)用去計(jì)算LPC向量間的距離,對(duì)程序整體性能影響很大,只能將整塊程序全部改為匯編,而在C語(yǔ)言中調(diào)用匯編的方法在速度上達(dá)不到要求。該模塊中還使用了零開銷循環(huán)、雙字操作等指令來(lái)加速程序運(yùn)行,而且利用匯編可以對(duì)存儲(chǔ)器直接操作,使多個(gè)高精度共用一些存儲(chǔ)器,避免了繁瑣的賦值,節(jié)省了空間[4]。通過優(yōu)化,計(jì)算一次IS距離只需4 211個(gè)CLK,而采用C語(yǔ)言中調(diào)用匯編需要13 054個(gè)CLK,由此可見,優(yōu)化效果很明顯。
2.2 實(shí)驗(yàn)結(jié)果與性能分析
實(shí)驗(yàn)采用長(zhǎng)度為1 s的語(yǔ)音,VQ模式匹配的碼本大小為16,對(duì)采樣頻率為8 kHz的單聲道語(yǔ)音,采用10 ms的幀長(zhǎng)逐幀提取參數(shù),包括基音、10階的LPC參數(shù)(相應(yīng)的自相關(guān)參數(shù))和10階LPCC參數(shù)。按本文提出的VQ方法對(duì)單一說話人進(jìn)行語(yǔ)音說話人識(shí)別。實(shí)驗(yàn)中首先訓(xùn)練這6個(gè)人的碼本,所用的語(yǔ)音是“語(yǔ)音身份識(shí)別”,然后又使用這6個(gè)人另外一組相同語(yǔ)音進(jìn)行鑒別,實(shí)驗(yàn)結(jié)果如表1所示。
由表2和表3可知,系統(tǒng)運(yùn)行的速度較快,基本可以達(dá)到準(zhǔn)實(shí)時(shí)的要求;整個(gè)系統(tǒng)占用近64 KB內(nèi)存空間,其中約32 KB是必需的存儲(chǔ)空間,32 KB是運(yùn)行時(shí)所需的計(jì)算空間,由此可見,對(duì)系統(tǒng)資源的占用是較少的,完全可以滿足系統(tǒng)的要求。
基于DSP的說話人身份識(shí)別系統(tǒng)具有精度高、適應(yīng)性好、功耗低、費(fèi)用低和體積小等優(yōu)勢(shì),逐漸成為安全驗(yàn)證領(lǐng)域新的研究熱點(diǎn)。本文在TI的DSK5402平臺(tái)上構(gòu)建了一個(gè)主要采用VQ方法的6個(gè)說話人識(shí)別系統(tǒng),該系統(tǒng)在指定文本的說話人閉集測(cè)試中取得了滿意的效果。與其他系統(tǒng)相比,本系統(tǒng)在實(shí)現(xiàn)算法上進(jìn)行了改進(jìn),在保證識(shí)別率的同時(shí)提高了速度,具有更大的使用價(jià)值。
本文的主要?jiǎng)?chuàng)新點(diǎn)在于:在TI的DSP平臺(tái)上實(shí)現(xiàn)了說話人身份識(shí)別算法的移植,并且在程序優(yōu)化過程中針對(duì)系統(tǒng)算法中一些模塊自身的特點(diǎn),采取一系列手段使運(yùn)算的精度得到保持、速度得到提高;系統(tǒng)還采用了線性預(yù)測(cè)語(yǔ)音合成方法來(lái)實(shí)現(xiàn)語(yǔ)音的人機(jī)交互界面,從而節(jié)省了更多系統(tǒng)內(nèi)存,使用起來(lái)更加方便快捷。
參考文獻(xiàn)
[1] 李財(cái)蓮,趙小陽(yáng),王麗娟,等.說話人識(shí)別中關(guān)鍵技術(shù)的現(xiàn)狀與發(fā)展[J].軍事通信技術(shù),2005,26(2):62.
[2] Huang H C, Pan J S, Lu Z M, et al. Vector quantization based on genetic simulated annealing[J]. Signal Processing, 2001, 81(7) :1513-1523.
[3] 賀艷平.基于線形預(yù)測(cè)下的語(yǔ)音信號(hào)合成[J].西北民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,31(80):43.
[4] Texas Instruments. TMS320C54X assembly language tools user’s guide[Z]. 1997.
[5] 錢俊,王芙蓉.C代碼在TMS320C54X上的手工匯編優(yōu)化.DSP專欄[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2004(5):71-72.