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