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