李青 鄧月明 王赟 莫崇晟 劉斌 賀洪平 李慧玲
1湖南師范大學(xué)物理與信息科學(xué)學(xué)院 湖南 410081 2化工部長(zhǎng)沙設(shè)計(jì)研究院 湖南 410116
語(yǔ)音識(shí)別(Voice Recognition)技術(shù)研究如何使機(jī)器能準(zhǔn)確的辨認(rèn)語(yǔ)音的發(fā)出者或其內(nèi)容,以便控制其它設(shè)備來滿足人類的各種需要。
聲紋識(shí)別的主要任務(wù)包括:語(yǔ)音信號(hào)處理、聲紋特征提取、聲紋建模、聲紋比對(duì)、判別決策等。小區(qū)聲紋身份認(rèn)證,分為兩個(gè)階段。一是聲紋注冊(cè)階段:在小區(qū)工作人員的現(xiàn)場(chǎng)監(jiān)督下,小區(qū)住戶利用麥克風(fēng)向系統(tǒng)注冊(cè)語(yǔ)音樣本,系統(tǒng)利用從語(yǔ)音樣本中提取的聲紋特征序列為用戶構(gòu)建聲紋模型;二是聲紋認(rèn)證階段:小區(qū)住戶向麥克風(fēng)輸入語(yǔ)音,語(yǔ)音識(shí)別庫(kù)將輸入的語(yǔ)音與語(yǔ)音樣本對(duì)比,如果輸入語(yǔ)音的聲紋能在聲紋特征序列找到匹配的聲紋,則證實(shí)他是小區(qū)住戶。
設(shè)計(jì)小區(qū)認(rèn)證系統(tǒng)是為了滿足現(xiàn)代人們對(duì)智能安防的需求,為了對(duì)本系統(tǒng)有一個(gè)較為全面的介紹,本系統(tǒng)的總體框架圖(如圖1)。
圖1 基于聲紋識(shí)別的小區(qū)認(rèn)證系統(tǒng)結(jié)構(gòu)圖
該系統(tǒng)可簡(jiǎn)便實(shí)現(xiàn)小區(qū)的安全保證,另外該系統(tǒng)的用戶可根據(jù)需要,自由選擇外圍模塊和擴(kuò)展應(yīng)用,同時(shí)也易于產(chǎn)品后期維護(hù)和升級(jí)更新。
隱馬爾可夫模型是一個(gè)雙重隨機(jī)過程,具有一定狀態(tài)數(shù)的隱馬爾可夫鏈和顯示隨機(jī)函數(shù)集。一個(gè)HMM可以記為λ= (N, M, π, A, B)。式中:N為模型中隱馬爾科夫鏈的狀態(tài)數(shù),M為各狀態(tài)對(duì)應(yīng)的觀測(cè)值的數(shù)目,π為起始狀態(tài)概率分布矢量,A為狀態(tài)轉(zhuǎn)移概率矩陣,B為觀測(cè)值概率矩陣。
Viterbi譯碼算法是由Viterbi于1967年提出的一種最大似然譯碼辦法,譯碼器根據(jù)接收序列R按最大似然準(zhǔn)則力圖找出正確的原始碼序列,用于解決隱馬爾科夫模型解碼。
系統(tǒng)訓(xùn)練中,先對(duì)語(yǔ)音信號(hào)特征矢量進(jìn)行狀態(tài)分割,動(dòng)態(tài)聚類,再運(yùn)用模糊統(tǒng)計(jì)的方法尋找出B參數(shù),然后進(jìn)行迭代重估,避免了模型發(fā)散,使參數(shù)收斂到全局最優(yōu)點(diǎn)(如圖2)。具體訓(xùn)練方法如下:
圖2 基于Baum-Welch迭代的聲紋識(shí)別算法
本文由國(guó)家大學(xué)生創(chuàng)新性實(shí)驗(yàn)計(jì)劃項(xiàng)目,湖南師范大學(xué)科研基金資助項(xiàng)目(青年基金,項(xiàng)目編號(hào):71003)資助。
(1)提取MFCC參數(shù),選擇模型參數(shù)初始值,初始值應(yīng)滿足隱馬爾科夫模型的要求,即:
(2)語(yǔ)音特征的變化表現(xiàn)為狀態(tài)的轉(zhuǎn)移,利用韋特比算法對(duì)每個(gè)特征序列做狀態(tài)切割,每種狀態(tài)都用若干個(gè)概率密度函數(shù)(probability density function, PDF)的線性組合來表示。
(3)通過動(dòng)態(tài)聚類算法,將同一狀態(tài)特征的訓(xùn)練語(yǔ)音幀分為N類,得到的bjk(X)中最大的X歸第K類,并計(jì)算每個(gè)類中的均值及協(xié)方差陣,轉(zhuǎn)化為各概率密度函數(shù)的權(quán)重。
(4)更新模型參數(shù),并判斷是否收斂,若不收斂,轉(zhuǎn)(2)。
(5)運(yùn)用Baum-Welch算法反復(fù)迭代,直到收斂,在應(yīng)用中一般迭代三次即可。
改進(jìn)后的算法降低了運(yùn)算量,從而加快了識(shí)別速率,可滿足較大規(guī)模人群的集中辨識(shí),減小了數(shù)據(jù)的存儲(chǔ)空間,提高了系統(tǒng)的整體性能。
目前,常用的32位嵌入式處理器主要有:Motorola公司的PowerPC系列、MIPS公司的MIPS系列、ARM公司的ARM系列和其他DSP系列處理器芯片等幾種。其中PowerPC系列多用于高端應(yīng)用,MIPS系列的開發(fā)資源不是很豐富,DSP則多用于專用信號(hào)處理,而ARM系列處理器芯片以其低功耗、低成本、高集成度等優(yōu)點(diǎn)在處理器市場(chǎng)已占有很大份額。因此,本系統(tǒng)選用OMAP3530微處理器芯片作為本系統(tǒng)的嵌入式CPU,這是一款高性價(jià)比、低功耗、高性能、高集成度的CPU。
CPU部分是系統(tǒng)硬件的核心部件,主要由 OMAP3530以及其輔助電路組成;存儲(chǔ)系統(tǒng)負(fù)責(zé)程序存儲(chǔ)并提供程序運(yùn)行空間和臨時(shí)數(shù)據(jù)的存儲(chǔ),主要包括Flash和SDRAM等部件;通信模塊包括了串口、以太網(wǎng)接口等部件;調(diào)試接口在系統(tǒng)調(diào)試過程中發(fā)揮作用。
OMAP3530架構(gòu)包含外部存儲(chǔ)器接口、單個(gè)內(nèi)存端口、USB接口、JTAG接口、串口、音頻處理接口等。串口通常用作控制臺(tái)接口,實(shí)現(xiàn)人機(jī)交互。在保證引導(dǎo)程序工作的基礎(chǔ)上,也可以用來下載內(nèi)核。JTAG接口用來調(diào)試裸板,可以將JTAG調(diào)試器接在開發(fā)板的JTAG口上,通過JTAG口與目標(biāo)機(jī)處理器核進(jìn)行通信,該方式是目前采用最多的一種調(diào)試方式。以下是認(rèn)證終端結(jié)構(gòu)圖(如圖3)。
圖3 認(rèn)證識(shí)別終端硬件功能模塊圖
隨著微電子技術(shù)的快速發(fā)展,嵌入式CPU的處理能力不斷加強(qiáng),而價(jià)格不斷下降,性價(jià)比已遠(yuǎn)超過了傳統(tǒng)的單片機(jī)CPU,尤其DSP+ARM的雙內(nèi)核控制器已成發(fā)展趨勢(shì)。ARM內(nèi)核完成多任務(wù)調(diào)度和設(shè)備資源管理,用于數(shù)據(jù)采集和傳輸;DSP內(nèi)核完成FIR/IIR數(shù)字濾波、音頻數(shù)據(jù)的處理。兩者通過雙端口RAM通信,分工協(xié)作,使得終端的整體性能和效率將大為提升。
OMAP3530是TI公司2009年最新推出的一款高度集成的嵌入式雙核處理器,為實(shí)現(xiàn)下一代嵌入式設(shè)備的應(yīng)用而設(shè)計(jì)的。它具有獨(dú)特的雙核結(jié)構(gòu),一個(gè)實(shí)現(xiàn)控制功能的帶 TI增強(qiáng)型ARM Cortex內(nèi)核的RISC處理器和一個(gè)實(shí)現(xiàn)數(shù)據(jù)處理功能的高性能、低功耗的TMS320C64x+ DSP核,帶有片上64KB SRAM和112KB ROM存儲(chǔ),提供1個(gè)高速USB2.0 OTG接口、2個(gè)RS232異步串口。雙核之間利用Mailbox消息中斷機(jī)制來進(jìn)行數(shù)據(jù)共享,即ARM核控制各路數(shù)據(jù)采集模塊以及音頻模塊將數(shù)據(jù)保持在SDRAM內(nèi)存中的一塊高速緩存區(qū),當(dāng)一段數(shù)據(jù)準(zhǔn)備完畢后,ARM 核將利用郵箱喚醒DSP開始處理這些數(shù)據(jù)。如果為了提高數(shù)據(jù)處理速度的話,可以用DMA功能將SDRAM中的數(shù)據(jù)搬移到DSP的內(nèi)部存儲(chǔ)空間進(jìn)行處理。
本系統(tǒng)以PC機(jī)為平臺(tái),語(yǔ)音庫(kù)在訓(xùn)練的過程中動(dòng)態(tài)建立。實(shí)驗(yàn)?zāi)K(如圖4)。
圖4 聲紋識(shí)別流程
語(yǔ)音數(shù)據(jù)采集模塊是由話筒、聲卡及語(yǔ)音采集軟件構(gòu)成,主要是采集語(yǔ)音信號(hào)并轉(zhuǎn)化為數(shù)字信號(hào)數(shù)據(jù)。聲紋特征提取模塊從已采集好的語(yǔ)音數(shù)據(jù)中提取聲紋特征數(shù)據(jù),在學(xué)習(xí)流程中將聲紋特征數(shù)據(jù)傳送給數(shù)據(jù)庫(kù)管理模塊。聲紋特征分析比較模塊通過數(shù)據(jù)庫(kù)管理模塊獲取庫(kù)中已有的聲紋特征模型,接受匹配未成功的聲紋特征數(shù)據(jù)并存入數(shù)據(jù)庫(kù)。在學(xué)習(xí)流程中直接將聲紋特征提取模塊傳送來的數(shù)據(jù)作為說話人模型存入數(shù)據(jù)庫(kù)。音頻輸出模塊輸出匹配結(jié)果。
系統(tǒng)軟件由ARM啟動(dòng)引導(dǎo)程序U-boot、嵌入式Linux操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、glibc函數(shù)庫(kù)以及 DSP端采用的TI公司提供的DSP/BIOS軟件等組成。其中,設(shè)備驅(qū)動(dòng)程序按照嵌入式Linux驅(qū)動(dòng)程序的開發(fā)原理,根據(jù)硬件原理圖引腳接口電路設(shè)計(jì)。應(yīng)用程序則包括外圍接口初始化、命令解析與執(zhí)行模塊等幾大部分,在系統(tǒng)引導(dǎo)啟動(dòng)后,采用多進(jìn)程、多任務(wù)的方式在內(nèi)存中運(yùn)行(如圖5)。
圖5 軟件功能模塊
整個(gè)系統(tǒng)的軟件是首先完成對(duì)終端CPU的初始化工作,如看門狗定時(shí)器、存儲(chǔ)控制器、Cache啟用設(shè)置等;然后,外圍設(shè)備初始化包括控制接口初始化、音頻接口初始化、USB主機(jī)接口初始化等;接下來是對(duì)DSP系統(tǒng)程序的引導(dǎo)、釋放DSP復(fù)位狀態(tài)及喚醒DSP工作;最后啟動(dòng)多任務(wù)調(diào)度程序(如圖6)。
圖6 聲紋識(shí)別軟件流程
聲紋識(shí)別嵌入式系統(tǒng)設(shè)計(jì)的重點(diǎn)是保證高準(zhǔn)確率的基礎(chǔ)上,處理大量語(yǔ)音數(shù)據(jù)。一方面要考慮聲音特征的處理,另一方面要對(duì)硬件的各個(gè)接口進(jìn)行匹配和編寫驅(qū)動(dòng)程序。最后考慮 Linux操作系統(tǒng)在處理聲音的缺陷及可能遇到的問題。從總體來看,本系統(tǒng)基本實(shí)現(xiàn)了智能安防的功能。聲紋識(shí)別具有識(shí)別時(shí)間短及無需接觸的特點(diǎn),隨著硬件性能和算法的改進(jìn),該系統(tǒng)會(huì)有廣闊的前景。
[1]袁里馳.基于改進(jìn)的隱馬爾科夫模型的語(yǔ)音識(shí)別方法[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版).2008.
[2]劉輝,楊俊安,許學(xué)忠.隱馬爾科夫模型和支持向量機(jī)混合模型聲紋識(shí)別[J].探測(cè)與控制學(xué)報(bào).2009.
[3]朱東華,王仁華,凌震華,李威.基于隱馬爾科夫模型的漢語(yǔ)韻律詞基頻模型[J].聲學(xué)學(xué)報(bào).2002.