隨著計算機技術和信息技術的迅速發展,語音口令識別已經成為了人機交互的一個重要方式之一。語音口令識別系統將根據人發出的聲音、音節或短語給出響應,如通過語音口令控制一些執行機構、控制家用電器的運行或做出回答等。在數字信號處理芯片上已經實現了語音口令識別系統或語音口令識別系統的部分功能,然而隨著嵌入式微處理器處理能力的大幅度提高,計算量大的語音口令識別算法已經能夠通過嵌入式微處理器來完成,將語音口令識別系統與嵌入式系統相結合,發揮語音識別系統的潛力,使語音識別系統能夠廣泛應用于便攜式設備中。 采用隱馬爾克夫模型(Hidden Markov MODEL,HMM) 描述語音信號的非平穩性和局部平穩性,HMM中的狀態與語音信號的某個平穩段相對應,平穩段之間以轉移概率相聯系。由于HMM建模對語音信號長度和模型的混合度的要求都比較低,因此在現有的非特定人語音口令識別系統中,多采用狀態輸出具有連續概率分布的連續隱馬爾可夫模型(ConTInuous Density Hidden Markov MODEL,CDHMM)。 論文給出一種基于嵌入式系統的語音口令識別系統的設計方案,硬件系統的核心芯片是嵌入式微處理器,語音口令識別算法采用CDHMM。語音口令首先經過預處理,提取MFCC(Mel-Frequency Ceptral Coefficients)特征參數,然后建立此口令的CDHMM模型,把所有語音口令的模型放在模型庫中,在識別階段,通過概率輸出*分,取*分最大的一個作為識別出的口令。將語音識別系統與嵌入式系統相結合,可以使語音口令識別系統廣泛應用于便攜式設備中。 1 硬件電路的設計和工作原理 基于嵌入式系統的語音口令識別系統需要有接收語音信號的輸入芯片配合麥克風實現將模擬語音信號轉換成數字信號的功能,然后由嵌入式微處理器對輸入的語音口令信號進行處理。完成語音口令信號輸入功能的芯片采用的是PHILIPS公司的低功耗芯片UDAl341TS,供電電源電壓為3V,該音頻處理芯片由模數/數模轉換(ADC)、控制邏輯電路、可編程增益放大器(PGA)和數字自動增益控制器(DAGC)以及數字信號處理器等部分組成,能進行數字語音處理。 芯片UDAl341TS采用標準的內部集成電路聲音總線IIS(Inter IC Sound Bus),該總線是由PHILIPS等公司共同提出的數字音頻總線協議,專門用于音頻設備之間的數據傳輸,目前很多音頻芯片和微處理器都提供了對IIS總線的支持。 IIS總線有三根信號線,分別是位時鐘信號BCK(Bit Clock)、字選擇控制信號WS(Word Select)和串行數據信號Data,由主設備提供串行時鐘信號和字選擇控制信號,IIS總線的時序如圖1所示。 WS也稱為幀時鐘信號,該信號的電平為低電平時,傳輸的輸入音頻數據信號是左聲道的音頻數據信號;信號WS的電平為高電平時,傳輸的輸入音頻數據信號是右聲道的音頻數據信號。BCK對應著輸入音頻數據信號的每一位音頻數據,其頻率為2×采樣頻率×每個采樣值的位數。 與BCK同步的串行音頻數據信號采用補碼的形式傳輸,傳輸順序是高位先傳輸。IIS總線格式的信號無論有多少位有效數據,數據的最高位MSB總是出現在WS信號改變(也就是傳輸一幀數據信號開始)后的第2個串行數據信號SCLK脈沖位置。 通過上述IIS總線能夠得到輸入的音頻數據信號,而其它的信號如自動增益控制、輸入數據格式的選擇和輸入增益的控制等控制信號通過稱為“L3” 形式的接口總線傳輸。為了減少引腳數和保持連線簡單,該接口總線采用串行數據傳輸方式,接口總線由3條信號線組成:時分復用的數據通道線L3DATA、模式控制線L3MODE和時鐘信號線L3CLOCK。模式控制線L3MODE為低電平時的傳輸模式為地址傳輸模式;為高電平時的傳輸模式為數據傳輸模式。 語音口令識別系統的硬件電路的核心芯片是嵌入式微處理器Samsung S3C2440 AL,主頻為400MHz。三星公司推出的RISC微處理器S3C2440 AL具有低功耗、高性能等特點,可以廣泛應用于便攜式設備中。S3C2440AL具有一個IIS總線音頻編碼/解碼接口,語音口令識別系統的硬件電路如圖 2所示。其IIS總線控制器通過5根信號線與UDAl34lTS編解碼芯片相連。這些5根信號線分別是:系統時鐘信號CDCLK:位時鐘信號I2- SSCLK;字選擇控制信號I2SLRCK;串行數據輸入信號I2SSDI;串行數據輸出信號I2SDO。S3C2440 AL使用L3接口傳輸其他(如自動增益控制、輸入數據格式的選擇和輸入增益的控制等)控制信號。為了使系統間能夠更好地同步,S3C2440AL需要向芯片UDAl341TS提供CDCLK,該時鐘信號的頻率可以選擇采樣頻率的256倍、384倍或512倍。 2 基于CDHMM的口令識別的軟件設計 2.1 口令識別的軟件系統框圖 語音口令識別的軟件系統分別由特征參數提取、語音模型庫和概率輸出*分三大模塊組成,如圖3所示:1)語音口令特征參數的提取,輸入不同的語音口令,首先要進行特征參數提取,采用Mel頻率參數作為CDHMM的建模參數,Mel頻率參數是根據人耳的聽覺特性將語音信號的頻譜轉化為基于Mel頻率的非線性頻譜,然后轉換到倒譜域上。2)在訓練階段,對不同的語音口令建立CDHMM模型。3)在口令識別階段,通過概率輸出*分對待測語音口令做出識別。 語音口令首先經過預處理,提取MFCC特征參數,然后建立此口令的CDHMM模型,把所有語音口令的模型放在模型庫中,在識別階段,通過概率輸出*分,取*分最大的一個作為識別出的口令。 2.2 CDHMM算法 HMM是一種雙重隨機過程,用概率統計的方法描述語音信號的產生及變化過程。HMM的模型參數為λ=(N,M,π,A,B),其中,N為模型中馬爾克夫鏈的狀態數目;M為每個狀態對應的可能的觀察數目;π為初始狀態概率矢量,π=(π1,…,πN);A為狀態轉移矩陣,A=(aij)N*N;B 為觀察概率矩陣,B=(bjk)N*N。 CDHMM的B不再是一個矩陣,而是一組觀察值概率密度函數,由M個連續高斯密度函數描述: N(o,ujk,∑jk)為多維高斯概率密度函數,o是觀察矢量序列,即從語音中提取的特征矢量參數(o1,o2,…,ot),t為觀察矢量序列的時間長度。ujk,∑jk分別為高斯分布的均值和方差參數,Cjk為高斯分布的權值,滿足約束條件 CDHMM參數估計采用“分段K-平均法”。初始模型可以隨機選取,由 是改進后的模型,再將作為初始值,重新估計。 基于“分段K-平均法”的CDHMM參數估計具體過程為: (1)設置模型參數初始值λ=(π,A,B)。 (2)根據此λ用Viterbi算法將輸入的訓練語音數據劃分為最可能的狀態序列,利用狀態序列估計參數A。 (3)用分段K-平均法對B進行重新估計,即將第二步得到的每一種狀態的訓練語音數據搜集在一起并對其特征進行統計,從而得到B。 對于概率密度函數由若干正態分布函數線性相加的CDHMM系統,每個狀態θj(1≤j≤N)的概率密度函數bj(X)由K個正態分布函數線性相加而成,這樣可以把每一狀態語音幀分成K類,然后計算同一類中諸語音幀矢量X的均值矢量,方差矩陣∑jk和混合密度函數中各概率密度函數的權重系數 Cjk。 (4)由(2)和(3)估計的CDHMM參數作為初值,利用重估公式對CDHMM參數進行重估,得到參數。 (5)利用(4)所得的計算,并與p(O/λ)相比較。如果差值小于預定的閾值或迭代次數超過預定的次數,即說明模型參數已經收斂,無需進行重估計算,可將作為模型參數輸出。反之,若差值超出閾值或迭代未到預定的次數,則將計算結果作為新的初值,重復進行下一次迭代。 3 結束語 論文建立了一種基于嵌入式系統的語音口令識別系統,并且對上升、下降等14條口令進行測試,每條語音先切除靜音,預加重,然后通過 Hamming窗分幀處理,幀長和幀移分別為20ms和10ms,然后對每一幀語音信號提取16MFCC+16AMFCC共32維參數作為特征矢量。該語音口令識別系統達到了實時的要求,可以使語音口令識別系統廣泛應用于便攜式設備中。 |