<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP嵌入式說話人識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          基于DSP嵌入式說話人識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2012-03-01 來源:網(wǎng)絡(luò) 收藏

          0 引 言

          本文引用地址:http://www.ex-cimer.com/article/257666.htm

          說話人屬于生物認(rèn)證技術(shù)的一種,是一項(xiàng)根據(jù)語音中反映說話人生理和行為特征的語音參數(shù)來自動(dòng)識(shí)別說話人身份的技術(shù)。近年來,說話人以其獨(dú)特的方便性、經(jīng)濟(jì)性和準(zhǔn)確性等優(yōu)勢受到矚目,在信息安全等領(lǐng)域的應(yīng)用逐漸增大,并成為人們?nèi)粘I詈凸ぷ髦兄匾移占暗陌踩?yàn)證方式。目前,說話人在理論上和實(shí)驗(yàn)室條件下已經(jīng)達(dá)到了比較高的識(shí)別精度,并開始走向?qū)嶋H應(yīng)用階段。ATT、歐洲電信聯(lián)盟、ITT、Keyware、T-NETIX,Motorola和Vi-sa等公司相繼開展了相關(guān)實(shí)用化研究,國內(nèi)這方面研究主要在中科聲學(xué)所,中科院自動(dòng)化所,清華大學(xué)等研究所和大學(xué)中進(jìn)行。

          基于嵌入式的說話人身份識(shí)別系統(tǒng)具有高精度,適時(shí)性好,低功耗,低費(fèi)用,體積小等優(yōu)勢,逐漸成為說話人身份識(shí)別面向?qū)嶋H應(yīng)用的新熱點(diǎn)。而隨著新技術(shù)的發(fā)展,芯片無論在處理速度、精度、功耗或者體積等方面都取得了突破性的進(jìn)展。也越來越多的應(yīng)用于說話人身份識(shí)別。但目前這方面研究主要局限于小數(shù)據(jù)量、與PC機(jī)配套使用上,沒有太大的實(shí)用價(jià)值。在此介紹一種基于TMS320C6713 DSP芯片設(shè)計(jì)的嵌入式,10個(gè)人范圍的說話人身份識(shí)別系統(tǒng)。該系統(tǒng)可以自舉運(yùn)行,并可靈活的選擇訓(xùn)練、識(shí)別或者更換訓(xùn)練者、識(shí)別者,識(shí)別率達(dá)98%以上。

          1 系統(tǒng)的架構(gòu)及硬件構(gòu)成

          系統(tǒng)總體實(shí)現(xiàn)流程如圖1所示。系統(tǒng)主要分為訓(xùn)練和識(shí)別兩部分,系統(tǒng)初始化后由操作者控制訓(xùn)練或識(shí)別。訓(xùn)練目的是提取說話人模型參數(shù)并將其存儲(chǔ)在FLASH ROM中。識(shí)別目的是讀取待識(shí)別者語音信息并將獲得的模型參數(shù)與訓(xùn)練的模型參數(shù)比較,從而獲得識(shí)別結(jié)果。

          1.1 系統(tǒng)的主要硬件構(gòu)成

          系統(tǒng)硬件構(gòu)成如圖2所示,主要包含語音采集模塊、數(shù)據(jù)處理模塊(DSP)、程序數(shù)據(jù)存儲(chǔ)及自舉FLASH模塊、數(shù)據(jù)存儲(chǔ)器RAM模塊、系統(tǒng)時(shí)序邏輯控制CPLD模塊、JTAG接口模塊。

          語音采集模塊主要由TLV320AIC23音頻編解碼器來完成,該芯片是TI公司的一款高性能的立體聲音頻Codec芯片,內(nèi)置放大器,輸入/輸出增益可編程設(shè)置。模數(shù),數(shù)/模轉(zhuǎn)換集成在一塊芯片中。采樣率8~96 kHz可編程實(shí)現(xiàn)。另外還具有低功耗,連接電路簡單,性價(jià)比高的特點(diǎn)。

          語音處理DSP采用TI公司的TMS320C6713芯片,該芯片實(shí)現(xiàn)浮點(diǎn)運(yùn)算,最高時(shí)鐘頻率225 MHz,使用該芯片外部存儲(chǔ)器接口可實(shí)現(xiàn)對外部存儲(chǔ)器(SDRAM)數(shù)據(jù)傳輸和程序存儲(chǔ)器(FLASH ROM)進(jìn)行程序讀寫;依靠JTAG接口電路通過仿真器進(jìn)行仿真調(diào)試,實(shí)現(xiàn)與主機(jī)數(shù)據(jù)交換;通過片內(nèi)外設(shè)McBSP完成串行數(shù)據(jù)的接收和發(fā)送,實(shí)現(xiàn)對音頻處理模塊的控制等工作。

          FLASH ROM最大可提供512 KB空間,通常為前256 KB可用。SDRAM最大容量為16 MB,為該系統(tǒng)提供較大的數(shù)據(jù)存儲(chǔ)空間。CPLD為存儲(chǔ)器的擴(kuò)展實(shí)現(xiàn)邏輯編碼。電源為TPS54310芯片,可為系統(tǒng)提供3.3 V和1.26 V兩種電壓。

          1.2 選擇說話人

          該系統(tǒng)要訓(xùn)練10個(gè)人的語音,每個(gè)人的語音存放在FLASH ROM的不同位置。在訓(xùn)練的開始階段,系統(tǒng)需確定當(dāng)前訓(xùn)練者的身份,以便對訓(xùn)練完成后說話者模型參數(shù)存儲(chǔ)位置有準(zhǔn)確的判斷。對當(dāng)前訓(xùn)練者身份的選擇由系統(tǒng)中的4個(gè)Switch實(shí)現(xiàn)。若把每個(gè)Switch的開關(guān)兩種狀態(tài)看成是二進(jìn)制數(shù)的0,1,則最終可形成16種組合,代表16個(gè)人。該系統(tǒng)選取前10個(gè)組合。

          1.3 AIC23語音采集

          考慮到系統(tǒng)的實(shí)用性,語音的輸入由mic in接口輸入。語音采集若設(shè)為雙聲道,則采集的左右聲道數(shù)據(jù)差別不大,對識(shí)別沒有太大的幫助,而且采集到的語音會(huì)占用太大存儲(chǔ)器空間,故采用單聲道采樣;對于采樣精度要求,TLV320AIC23可實(shí)現(xiàn)8~96 kHz,16 b,20 b,24 b,32 b,的不同采樣,隨著采樣頻率的提高,采樣間隔將相應(yīng)的縮短,要求更大的內(nèi)存空間和更長的處理時(shí)間,實(shí)驗(yàn)表明,采樣率由16 kHz下降到8 kHz,所造成的識(shí)別率的微乎其微,但是可以節(jié)省50%的動(dòng)態(tài)存儲(chǔ)空間,并可減少大量的運(yùn)算。對于采樣位數(shù),16 b精度已能滿足該系統(tǒng)要求,故采樣精度設(shè)為8 kHz,16 b采樣。

          1.4 數(shù)據(jù)的存儲(chǔ)

          由TLV320AIC23獲得的語音信號的數(shù)據(jù),只有賦值給相應(yīng)的數(shù)組,才能在接下來的算法中有所應(yīng)用。為此在SDRAM中定義一片數(shù)組存儲(chǔ)區(qū)域。對于數(shù)組大小及類型的選擇基于以下兩點(diǎn):

          (1)數(shù)組大小選擇。該系統(tǒng)算法中包含訓(xùn)練和識(shí)別兩個(gè)內(nèi)容。語音信號的訓(xùn)練需要大量的數(shù)據(jù)才能準(zhǔn)確的提取語音的特征參量。該系統(tǒng)采用8 kHz采樣率的10 s的語音信號,所需的數(shù)組空間大小為80 000個(gè)數(shù)據(jù)單位;語音信號的識(shí)別要求快速性,該系統(tǒng)采用時(shí)間較短的8 kHz 3 s語音信號,所需數(shù)組空間大小為30 000個(gè)數(shù)據(jù)單位,為了減少數(shù)據(jù)空間,系統(tǒng)設(shè)定為與訓(xùn)練數(shù)組共用前30 000個(gè)數(shù)據(jù)單位的空間。

          (2)數(shù)組類型為浮點(diǎn)型,由于設(shè)定的采樣格式是16 b采樣,而采樣后數(shù)據(jù)類型是Uint32,語音數(shù)據(jù)位于低16位,所以賦值過程中取低16位數(shù)據(jù)賦值給數(shù)組。

          1.5 模型參數(shù)存入與參數(shù)調(diào)出

          將模型參數(shù)存入FLASH ROM的目的是保存訓(xùn)練所得的參數(shù),以供識(shí)別時(shí)調(diào)用。訓(xùn)練可能用于多次識(shí)別,或者訓(xùn)練和識(shí)別可能處于不同的時(shí)間地點(diǎn),所以,保存參數(shù)的存儲(chǔ)器選定為具有掉電時(shí)數(shù)據(jù)不丟失特點(diǎn)的FLASH ROM。每個(gè)說話者語音參數(shù)代表一個(gè)說話者身份,所以每個(gè)說話者模型參數(shù)應(yīng)存儲(chǔ)在FLASHROM中一個(gè)確定的位置。為此,該系統(tǒng)在FLASHROM中分配了10塊的區(qū)域,每個(gè)說話者模型參數(shù)占有一塊特定的區(qū)域。

          在FLASH ROM中存人數(shù)據(jù)格式為32 b無符號整數(shù)。而訓(xùn)練得到的是浮點(diǎn)型的數(shù)據(jù)。這就要求在數(shù)據(jù)存入之前將浮點(diǎn)數(shù)轉(zhuǎn)換為32 b無符號類型的整數(shù),假設(shè)要轉(zhuǎn)換的數(shù)據(jù)為float x[M][N]則轉(zhuǎn)換方法如下:

          (1)x[M][N]歸一化;

          (2)對x[M][N]乘以一常數(shù)K得到有符號整型的數(shù)組y[M][N],即:
          y[M][N]=x[M][N]×K (1)

          (3)屏蔽第32位符號位,得到32 b無符號類型的整數(shù)數(shù)組。方法如下:
          z[i][j]=y[i][j]0x7FFFFFFF (2)

          (4)將z[i][j]存入FLASH ROM。

          通過統(tǒng)計(jì)實(shí)驗(yàn)數(shù)據(jù)發(fā)現(xiàn)歸一化后數(shù)據(jù)的范圍為10-5~1,故K選擇為108,既可以實(shí)現(xiàn)較大精度的轉(zhuǎn)化,又不會(huì)影響第31位的數(shù)值。轉(zhuǎn)換得到的有符號整型數(shù)組y[M][N]范圍為-108~108,在存儲(chǔ)器中正數(shù)為原碼表示,負(fù)數(shù)為補(bǔ)碼表示,通過計(jì)算發(fā)現(xiàn),該范圍的正數(shù)第31位為0,負(fù)數(shù)第31位為1,所以,上述第(3)步,將有符號數(shù)轉(zhuǎn)換為無符號數(shù)后,數(shù)值的正負(fù)改為使用第31位標(biāo)識(shí)。在識(shí)別階段,要將說話者的GMM參數(shù)依次從FLASH ROM中讀出,逐個(gè)與待識(shí)別者語音的MFCC參數(shù)比較,求最大似然值。參數(shù)調(diào)出過程與以上存入過程相反。

          1.6 說話人身份識(shí)別的結(jié)果顯示

          說話人的身份顯示通過LED的組合顯示確定。在DSK上有4只LED燈,將每個(gè)LED燈看成是一位二進(jìn)制數(shù)。則4個(gè)LED燈最大可表示16個(gè)人的身份。該系統(tǒng)取前10個(gè)組合來表示所識(shí)別的說話人的身份。

          1.7 自舉的實(shí)現(xiàn)

          以上程序都是通過PC機(jī)與DSP組合實(shí)現(xiàn),要想使系統(tǒng)在DSP上單獨(dú)完成,還必須實(shí)現(xiàn)自舉。該系統(tǒng)采用ROM方式自舉。在自舉實(shí)現(xiàn)過程中,程序的燒寫可以通過CCS自帶的FLASHBorn工具實(shí)現(xiàn)。在燒寫過程中應(yīng)正確的分配FLAH ROM的空間。FLASHROM空間總體分為程序存儲(chǔ)區(qū)和數(shù)據(jù)存儲(chǔ)區(qū),經(jīng)計(jì)算,程序代碼段大小為0x162C0,故在FLASH ROM中劃分127 KB的空間供程序代碼使用,空間中未使用的部分供程序擴(kuò)展使用。數(shù)據(jù)存儲(chǔ)區(qū)劃分的大小為64 KB的空間,每個(gè)說話者模型參數(shù)占用空間為4.2 KB左右,最多可存放15個(gè)說話人GMM模型參數(shù)。該系統(tǒng)訓(xùn)練者數(shù)目為10個(gè),占用空間為42 KB左右。剩余的空間可用來擴(kuò)展訓(xùn)練人數(shù),也可用于后期系統(tǒng)的改進(jìn)。如可以利用語音提示來顯示說話人身份,而提示語音的數(shù)據(jù)可以存放于此區(qū)域。具體的存儲(chǔ)的安排如表1所示。

          2 系統(tǒng)的算法與軟件設(shè)計(jì)

          說話人識(shí)別系統(tǒng)的實(shí)現(xiàn)方案如圖3所示。

          輸入的模擬語音先通過預(yù)處理,包括預(yù)濾波、采樣、量化、加窗、端點(diǎn)檢測、預(yù)加重等。語音經(jīng)過預(yù)處理后進(jìn)行特征提取。在訓(xùn)練階段,對提取的特征進(jìn)行相應(yīng)的處理后就可以獲得參考模型。識(shí)別階段,語音通過同樣的通道獲得特征參數(shù),生成測試摸型,之后將測試摸型與參考摸型進(jìn)行匹配,從而根據(jù)判決邏輯獲得判決結(jié)果。

          2.1 語音信號的端點(diǎn)檢測

          語音信號的端點(diǎn)檢測目的是去除語音信號中的噪聲段。端點(diǎn)檢測從很大程度上影響到識(shí)別率。常用方法有短時(shí)能量法,短時(shí)過零率法和雙門限法等。本系統(tǒng)選用雙門限法,實(shí)驗(yàn)表明,效果優(yōu)于前兩種方法。在雙門限方法端點(diǎn)檢測中,閾值的選擇尤為關(guān)鍵,該系統(tǒng)的語音采樣頻率設(shè)為8 kHz,語音分幀為每幀80個(gè)點(diǎn)。經(jīng)過多次實(shí)驗(yàn),這里短時(shí)能量低閾值通過式(3)的動(dòng)態(tài)方式得到,高閾值設(shè)為低閾值的5倍。而過零率的閾值選取應(yīng)充分考慮到噪聲的影響,通過大量實(shí)驗(yàn)發(fā)現(xiàn)系統(tǒng)中噪聲的過零率一般不超過5,所以對過零率的閾值選取為25,取得了很好的效果,準(zhǔn)確率達(dá)到95%以上。

          ITU=0.03(amp_max-amp_min)+amp_min (3)

          在端點(diǎn)檢測過程中有時(shí)會(huì)遇到突發(fā)性的干擾噪聲,這種噪聲持續(xù)時(shí)間很短,一般小于5 ms。為了消除這種干擾,這里用檢測后的起止長度判斷它是不是語音。如果所檢測到的語音長度足夠的短,則可以把它當(dāng)成是噪聲。

          2.2 特征參數(shù)的提取

          語音信號的特征提取是說話人身份識(shí)別的難點(diǎn)。能否用相對簡單的方法提取出一種最能體現(xiàn)說話人個(gè)性信息的特征將成為以后研究的方向。該系統(tǒng)中用的是能體現(xiàn)人耳聽覺特性的Mel倒譜系數(shù)(MFCC)。

          MFCC著眼于人耳的聽覺機(jī)理,依據(jù)聽覺的結(jié)果來分析語音的頻譜,獲得了很好的識(shí)別率和很好的噪聲魯棒性,它利用了聽覺系統(tǒng)的臨界效應(yīng),描述人耳對感知的非線性特性。在DSP硬件資源配置中,MFCC在識(shí)別性能和DSP內(nèi)部空間占用方面也取得了很好的平衡。在該系統(tǒng)中使用16個(gè)濾波器(M=16)構(gòu)成的濾波器組。圖4所示是MFCC的提取過程。

          2.3 識(shí)別方法選擇與實(shí)現(xiàn)

          基于該系統(tǒng)對速度、識(shí)別效率、存儲(chǔ)空間的要求,這里的識(shí)別方法選為高斯混合模型。高斯混合模型(GMM)可以看成是狀態(tài)數(shù)為1的連續(xù)分布隱馬可夫模型CDHMM。一個(gè)M階混合高斯模型的概率密度函數(shù)是由M個(gè)高斯概率密度函數(shù)加權(quán)求和得到,所示如下:



          式中:X是一個(gè)D維隨機(jī)向量;bi(Xi)是子分布,i=1,2,…,M是子分布;ωi是混合權(quán)重,i=1,2,…,M。對GMM模型參數(shù)的估計(jì)方法該系統(tǒng)采用最大似然估計(jì)。對于一組長度為T的訓(xùn)練矢量序列X={X1,X2,…,XT},GMM的似然度可表示為:



          由于式(5)是參數(shù)λ的非線性函數(shù),很難直接求出其最大值。因此,該系統(tǒng)采用EM算法估計(jì)參數(shù)λ。

          2.4 算法實(shí)現(xiàn)過程中的具體考慮.

          (1)FFT變換點(diǎn)數(shù)的選擇。FFT變換點(diǎn)數(shù)選擇很重要,如果選擇太大,則運(yùn)算復(fù)雜度變大,使系統(tǒng)響應(yīng)時(shí)間變長,如果選擇太小則可能造成頻率分辨率過低,提取參數(shù)誤差過大。該系統(tǒng)中選取的點(diǎn)數(shù)為240點(diǎn)。

          (2)模型參數(shù)的選擇。首先模型階數(shù)M必須適中,必須足夠大,可以充分表示出空間的分布。然而,階數(shù)也不能太大,否則數(shù)據(jù)數(shù)量不足,也無法準(zhǔn)確描述特征空間分布??紤]該系統(tǒng)對參數(shù)的存儲(chǔ)空間要求,并綜合以上考慮,該系統(tǒng)選用的階數(shù)為32階。

          (3)協(xié)方差矩陣類型。考慮到減少計(jì)算量,這里采用對角陣。在高維特征空間中,對角陣比全矩陣優(yōu)勢更為明顯。

          (4)方差限定。當(dāng)訓(xùn)練數(shù)據(jù)不足或者是存在噪聲干擾時(shí),方差幅度會(huì)很小,這樣會(huì)導(dǎo)致模型概率函數(shù)的奇異性,所以每次EM迭代時(shí),都需要對方差進(jìn)行限定。即:



          根據(jù)實(shí)驗(yàn)結(jié)果,該系統(tǒng)選取S2 min為0.025

          (4)模型初值的設(shè)定:EM算法是尋找局部最大概率的模型。不同的初值會(huì)導(dǎo)致不同的局部極值。該系統(tǒng)中采用的是K均值法。

          2.5 K均值法應(yīng)注意的幾個(gè)問題

          (1)聚類中心的初始化。對于聚類中心數(shù)目由GMM模型決定,假設(shè)是N。對于聚類中心的初始化,一般取前N個(gè)矢量作為聚類中心,但在實(shí)驗(yàn)過程中發(fā)現(xiàn),這種方法不具有針對性,往往設(shè)立的初始的聚類中心不具有很好的聚類效果。所以這里采用取質(zhì)心法。具體方法為:

          第一步先求出訓(xùn)練集S中全體矢量X的質(zhì)心,然后在S中找出一個(gè)與此質(zhì)心的畸變量最大的矢量Xj,再在S中找到一個(gè)與Xj的畸變量最大的矢量Xk。以Xj和Xk為基準(zhǔn)進(jìn)行胞腔劃分,得到Sk和Sj兩個(gè)子集。對這兩個(gè)子集分別按照同樣的方法劃分得到4個(gè)子集。依次類推,得到N個(gè)子集。這N個(gè)子集的質(zhì)心即為初始的聚類中心。

          (2)聚類中心改進(jìn)量δ的選擇。對于聚類中心改進(jìn)量δ的選擇,若選擇太大,則聚類不充分,影響訓(xùn)練效果;若太小,則會(huì)導(dǎo)致訓(xùn)練無法完成,該系統(tǒng)通過試驗(yàn),取比較適中的數(shù)0.01。

          (3)最大迭代次數(shù)的選擇。對于最大迭代次數(shù)的選擇,太小會(huì)導(dǎo)致誤判,太大導(dǎo)致訓(xùn)練不成功時(shí)過多的占用系統(tǒng)時(shí)間。該系統(tǒng)迭代次數(shù)設(shè)為100,比較適中。

          3 實(shí)驗(yàn)結(jié)果及改進(jìn)點(diǎn)

          通過系統(tǒng)調(diào)試及改進(jìn),該系統(tǒng)最終實(shí)現(xiàn)10個(gè)說話人的身份識(shí)別,并自舉運(yùn)行。運(yùn)行時(shí)通過Switch組合可方便的選擇訓(xùn)練或識(shí)別的功能,并可更新說話人。訓(xùn)練,識(shí)別的進(jìn)度及結(jié)果通過LED組合顯示。利用該系統(tǒng)對5男5女10個(gè)人進(jìn)行訓(xùn)練,每人500次測試,結(jié)果正確識(shí)別率為98%,識(shí)別時(shí)間為3 s左右。說明該系統(tǒng)可以有效的識(shí)別說話人的身份。對于該系統(tǒng),識(shí)別時(shí)間及識(shí)別率上還有改進(jìn)空間,以后工作可圍繞識(shí)別時(shí)間上改進(jìn)。




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();