引言
說話人識別又稱聲紋識別,是通過說話人的聲音特征進行身份認證的一種生物特征識別技術。說話人識別經過60多年的研究,已經逐步應用到法律、銀行等各個領域。說話人識別通過對語音信號進行處理,提取說話人語音當中的生物學個性特征,在特征空間建立不同個體的特征模型,從而實現說話人的識別。識別的關鍵算法包括特征提取和建立模型兩個方面,參考文獻從基本概念到特征提取,再到模型建立,對說話人識別中涉及的主要算法進行了詳細的綜述,并比較了各種算法的優劣。
實現基于嵌入式的實時說話人識別系統是說話人識別走向應用的關鍵步驟。隨著DSP技術的發展,DSP作為數字處理專用芯片在復雜數學算法的實現上起著越來越重要的作用。參考文獻在DSP上實現了說話人確認,并應用于汽車聲紋鎖。本文以TI公司的TDSDM642EVM為平臺,實現了實時的說話人身份識別系統。
1 系統組成
說話人識別系統是一個模式識別的過程,總體上分為兩個步驟:第一個步驟是訓練說話人模型,第二個步驟是通過比對模型庫對輸入的信號進行說話人識別。其識別過程如圖1所示。
在訓練注冊階段,系統主要完成說話人的特征提取以及模型特征庫的建立。在識別階段,系統根據輸入的語言信號提取相應的特征,然后再與模型庫中的模型進行匹配判決,最后給出識別結果。
說話人識別在嵌入式系統中實現時主要完成語音采集、模型訓練、匹配識別3個任務。本文采用TDSDM642EVM平臺實現說話人識別系統,其結構框圖如圖2所示。該系統通過AIC23實現語音信號采集和播放的功能,輸入的語音信號經過TDSDM642處理后,通過LED顯示識別結果。 ROM中包含說話人識別程序和訓練出的模型數據,并可以實時更新。SDRAM則提供了系統運行時所需的內存。
2 系統算法描述
說話人識別的算法主要包括特征提取和模式識別兩個方面。MFCC特征參數是從頻率域提取語音信號的特征參數,并根據人耳的聽覺特性進行降維,既可減小計算復雜度,又能獲得良好的識別效果。MFCC特征提取過程如圖3所示。
說話人識別建模的方法主要有矢量量化(VQ)、高斯混合模型(GMM)、支持向量基(SVM)、人工神經網絡(ANN),以及動態時間規整(DTW)等。綜合考慮嵌入式系統上算法的識別率和計算量,本文采用DTW方法實現文本相關的說話人識別。
3 定點算法實現和優化
TDSDM642是TI公司推出的定點DSP芯片,具有性價比高、運算速度快的優點,但是定點DSP對于浮點運算比較困難,因此在系統實現時需要對算法進行浮點到定點的移植。同時,為了使DSP上的代碼獲得最好的性能,還應該根據TDSDM642芯片片內資源的特征進行優化。優化的方法有編譯優化、軟件流水、內聯函數等。通過優化可以明顯提高代碼執行速度,并減小代碼尺寸。
說話人識別當中,計算耗時最長的是MFCC參數的提取和參數模型的訓練,本文采用以下優化方法。
3.1 編譯器優化
TI公司的CCS編譯器可以對C代碼進行不同級別的優化,通過打開不同的優化選項,可以針對具體的硬件平臺進行不同程度的優化,包括代碼的大小、運行的速度等。通常經過CCS優化的程序,運行速度已經相當快,結構設計良好的程序能實現90%的優化。如果還沒有達到系統設計的要求,則需要對代碼進行手工優化。
3.2 軟件流水優化
TDSDM642處理器采用C64x系列芯片,其內部共有8條軟件流水線,可以8條指令并行執行,能夠大大提高系統性能。恰當地設計軟件結構,并配合合適的編譯優化選項,可以充分利用芯片內的軟件流水優化提高系統性能。CCS的編譯優化一般只針對最內層的循環進行流水
優化,并且在循環中代碼應該盡量簡單,如果循環中含有大量判斷、跳轉等指令,那么編譯出來的軟件流水會大打折扣,有時甚至無法進行流水執行指令,這樣處理器的性能就不能充分地發揮出來。
3.3 循環展開優化
循環展開是另一種優化程序的方法。為了充分利用芯片內的硬件資源,使盡可能多的指令同時并行執行,可以采用將小循環展開的方式,使片內資源的性能得到最大的發揮。CCS優化編譯器通常情況下會根據程序的情況自動展開循環,編程人員也可以采用編譯指令或手工方式展開循環優化程序。
3.4 采用內聯函數
TI公司的C6000編譯器含有大量的內聯函數,支持從C語言里直接調用匯編程序,從而大大提高程序的執行速度。系統提供的內聯函數還可以支持C64x系列DSP特有指令的執行,例如數據打包相乘等操作,可以進一步提高系統數據處理能力。
4 實驗結果
本文在TDSDM642 EVM平臺上實現了實時的說話人識別系統。經過對10個人的語音數據進行識別實驗,正確率達到90%,可以達到實用水平。通過改進算法和調整參數,可以進一步提高系統識別率,以滿足安全系統的更高要求。
責任編輯:gt
評論