摘 要: 針對(duì)當(dāng)前基于DSP、ARM等硬核處理器設(shè)計(jì)的嵌入式說(shuō)話人識(shí)別系統(tǒng)訓(xùn)練和辨認(rèn)時(shí)間長(zhǎng)等缺陷,根據(jù)MFCC提取過(guò)程的特點(diǎn)與遺傳聚類算法中適應(yīng)度計(jì)算的原理,提出一種基于SoPC平臺(tái)與矢量量化原理的說(shuō)話人識(shí)別系統(tǒng)實(shí)現(xiàn)方案。經(jīng)測(cè)試,該實(shí)現(xiàn)方案在保證識(shí)別率前提下,可有效提高訓(xùn)練與識(shí)別速度。
關(guān)鍵詞: 說(shuō)話人識(shí)別 矢量量化 遺傳算法 適應(yīng)度 SOPC
說(shuō)話人識(shí)別(Speaker Recognition)又稱話者識(shí)別,是指根據(jù)特定說(shuō)話人語(yǔ)音波形中反映生理和行為等特征的語(yǔ)音參數(shù)來(lái)對(duì)說(shuō)話人身份進(jìn)行識(shí)別[1]。說(shuō)話人識(shí)別技術(shù)作為一種非接觸性識(shí)別技術(shù),在保安、司法、軍事和信息服務(wù)等領(lǐng)域都有廣泛的應(yīng)用前景。
文本無(wú)關(guān)的說(shuō)話人識(shí)別方法是當(dāng)前說(shuō)話人識(shí)別技術(shù)的研究重點(diǎn)。常用的識(shí)別算法有:基于矢量量化VQ(Vector Quantization)的方法[2]、基于HMM的方法、基于ANN的方法等。其中,基于VQ的說(shuō)話人識(shí)別方法無(wú)需考慮復(fù)雜的統(tǒng)計(jì)模型和時(shí)間歸整問(wèn)題,運(yùn)算過(guò)程簡(jiǎn)單,在說(shuō)話人識(shí)別領(lǐng)域被廣泛應(yīng)用。
基于VQ的說(shuō)話人識(shí)別通常采用MFCC參數(shù),因?yàn)镸FCC是一種基于人耳對(duì)語(yǔ)音頻率的非線形感知特征的描述參數(shù)[3],在說(shuō)話人識(shí)別中,其性能優(yōu)于LPC、LPCC等參數(shù)。
SoPC技術(shù)是一種基于FPGA解決方案的SoC,由美國(guó)ALTERA公司于2000年提出[4];赟oPC平臺(tái)的開發(fā)結(jié)合了FPGA靈活可編程與片上NiosII軟核處理器的用戶可配置等特點(diǎn)。在實(shí)現(xiàn)某功能時(shí),可編寫C/C++程序運(yùn)行于NiosII處理器實(shí)現(xiàn),也可設(shè)計(jì)硬件模塊實(shí)現(xiàn),不占用CPU,起到了硬件加速效果。本系統(tǒng)綜合兩種實(shí)現(xiàn)思路,采用高性價(jià)比的Cyclone II 2C35系列FPGA實(shí)現(xiàn)。經(jīng)驗(yàn)證,該說(shuō)話人識(shí)別系統(tǒng)識(shí)別率高,實(shí)時(shí)性優(yōu)于硬核處理器系統(tǒng),應(yīng)用前景良好。
1 基于矢量量化的說(shuō)話人識(shí)別算法
說(shuō)話人識(shí)別中,先需要建立表征用戶語(yǔ)音特征的碼書,碼書由從用戶的訓(xùn)練語(yǔ)音中提取的MFCC聚類而成。識(shí)別階段,系統(tǒng)先采集一段測(cè)試者的語(yǔ)音,提取出MFCC,再與用戶VQ碼書匹配,如果失真測(cè)度達(dá)到一定范圍,則可認(rèn)為測(cè)試者即為碼書表征的用戶。
建立碼書時(shí),先由系統(tǒng)采集一段用戶語(yǔ)音,經(jīng)分幀與MFCC提取后可得到N 個(gè)M 維原始矢量On={o1,o2,
oM}(n=1,2,3…,N ),其中每一矢量相當(dāng)于M維空間中的一點(diǎn)。然后將N 個(gè)原始矢量在M 維空間作K聚類,得到的聚類結(jié)果即是表征說(shuō)話人語(yǔ)音特征的K容量碼書。其中,用于構(gòu)建碼書的N幀M維MFCC稱為訓(xùn)練序列。
根據(jù)實(shí)驗(yàn)驗(yàn)證并綜合考慮系統(tǒng)資源與識(shí)別性能,參數(shù)設(shè)定總幀數(shù)M一般取256或512,碼書大小K取64,M取12或16(若加上差分參數(shù)可擴(kuò)至24、36等)。由于是在高維空間聚類,普通聚類方法易導(dǎo)致結(jié)果陷入局部最優(yōu)點(diǎn),因而選擇具有全局搜索性能的遺傳算法進(jìn)行聚類,可得到最優(yōu)碼書。針對(duì)說(shuō)話人識(shí)別設(shè)計(jì)的算法,具體細(xì)節(jié)如下:
群體規(guī)模:30
編碼方式:二進(jìn)制編碼
交叉變異:無(wú)回放隨機(jī)選擇策略選擇單點(diǎn)交叉,交叉概率PC =90%,變異概率PM =10%
遷移間隔:每運(yùn)行2代遷移一次
選擇(替換) 輪盤賭方式+10%最優(yōu)個(gè)體保存
個(gè)體適應(yīng)度計(jì)算公式為:

X 為訓(xùn)練序列,Y 為個(gè)體,d(Xj,Yi)是訓(xùn)練序列中某點(diǎn)Xj與個(gè)體中某點(diǎn)Yi之間的歐氏距離。
停止條件為當(dāng)遺傳代數(shù)達(dá)到規(guī)定閾值或最近三代最優(yōu)個(gè)體適應(yīng)度比值達(dá)一定閾值。
同時(shí),在遺傳過(guò)程中可每隔若干代執(zhí)行一次K-means聚類以加快收斂速度。遺傳結(jié)束后,最末代得到的最優(yōu)適應(yīng)度個(gè)體即為用戶的VQ語(yǔ)音碼書。
識(shí)別階段,系統(tǒng)先采集一段測(cè)試者的語(yǔ)音,提取出MFCC,稱為測(cè)試序列,然后與用戶VQ碼書比較。如果匹配度達(dá)到一定范圍,則可認(rèn)為測(cè)試者即為碼書表征的用戶。
2 系統(tǒng)方案與實(shí)現(xiàn)
說(shuō)話人識(shí)別系統(tǒng)主要有四項(xiàng)任務(wù):(1)說(shuō)話人語(yǔ)音采集與有效語(yǔ)音提。(2)語(yǔ)音幀MFCC提。(3)通過(guò)遺傳算法計(jì)算得到說(shuō)話人語(yǔ)音VQ碼書;(4)在說(shuō)話人識(shí)別時(shí)實(shí)時(shí)采集測(cè)試者語(yǔ)音并提取MFCC,然后與已有碼書進(jìn)行匹配并作出決策。
SoPC設(shè)計(jì)中,根據(jù)需要可在單FPGA內(nèi)配置多CPU。本系統(tǒng)配置了雙CPU,兩塊CPU均以同一片SDRAM為運(yùn)行內(nèi)存,由Avalon總線模塊提供仲裁機(jī)制實(shí)現(xiàn)雙CPU對(duì)SDRAM的分時(shí)訪問(wèn)。系統(tǒng)除含有必要的儲(chǔ)存器與語(yǔ)音輸入接口外,還外接PS2鍵盤與LCD、VGA顯示器等人機(jī)交互設(shè)備,整體設(shè)計(jì)框圖如圖1所示。





