??? 摘 要:針對智能家居系統中信息不能隨時隨地進行控制及其交流方式不流暢的問題,融合電話公用網和家庭網絡設計了一個基于ARM9和語音識別技術的智能家居系統。該系統采用RASTA濾波方法去除語音信號中夾雜的卷積信道噪聲,采用改進的動態(tài)時間規(guī)正(DTW)算法對語音命令進行識別。
??? 關鍵詞:智能家居;語音識別;帶通濾波器;動態(tài)時間規(guī)正
?
??? 隨著計算機網絡技術的發(fā)展,“智能家居”越來越被人們所重視。綜觀國內外的智能家居系統,大部分側重于利用Internet進行遠程控制。由于受到上網設備的限制,這種方式給智能家居系統的使用帶來了不便。例如,在用戶回家途中希望能夠打開空調,很可能就因為不方便上網而無法實現。隨著電話的普及,利用電話對家電進行遠程控制可以做到隨時隨地。目前國內外使用的控制方式主要有:利用短消息控制和用語音播放受控設備的名稱或代號,再根據用戶的選擇來控制相應的設備。這兩種方式的弊端是:交流的方式不流暢自然,而且當受控設備的個數達到10個以上時需要考慮新出現的問題。
??? 本文所介紹的系統采用三星公司生產的S3C2410芯片作為微處理器,基于公用電話交換網設計而成。系統先對用戶從電話輸入的語音命令進行語音識別,然后根據識別結果向串口發(fā)送相應的命令,實現對家電的控制。
1 語音識別原理 ?
??? 語音識別的過程可歸結為模式識別和匹配。通過對語音信號進行預處理和分析計算可抽取出所需的語音特征,并以此建立語音識別所需的模板。而當對語音進行識別時,則需要將系統中存放的語音模板與輸入的語音信號的特征進行比較,并根據一定的算法和策略,找出一系列最優(yōu)的與輸入的語音匹配的模板,最后輸出識別結果,識別流程如圖1所示[1]。
?
??? 預處理包括采樣、去除噪音、端點檢測、預加重、分幀、加窗等。而特征參數的提取,目前較為常用的有線性預測倒譜系數(LPCC)與Mel倒譜系數(MFCC)。本文采用的是MFCC。系統采用改進的動態(tài)時間規(guī)正DTW (Dynamic Time Warping)算法對語音進行訓練和識別。
2 系統的硬件設計
2.1 系統的組成
??? 系統由ARM9核微處理器構成主控部分,接收外部的控制信號,負責信息的處理,調控系統各部件協同進行工作。接口電路提供微處理器與電話網絡的接口,包括振鈴檢測電路、模擬摘掛機電路、語音電路、雙音多頻(DTMF)信號解碼電路。系統的硬件框圖如圖2所示。其中振鈴檢測電路、模擬摘掛機電路可由電話接口模塊替代。
?
??? 系統的工作過程是:當有電話接入時,電話接口模塊中的振鈴檢測電路檢測到有振鈴信號并送微處理器;微處理器發(fā)送摘機信號到摘掛機電路,實現模擬摘機;語音模塊立即播放語音提示,要啟動家電控制則輸入密碼,正常通話則等待3s;當用戶有按鍵輸入時,相應的DTMF信號經雙音多頻信號解碼電路解碼并送微處理器對它進行判斷;若輸入的密碼正確,則由語音模塊播放提示音,要求用戶輸入語音控制命令;語音命令的模擬信號經A/D轉換電路轉換成數字信號后送微處理器進行語音識別;識別結果通過串口輸出。
2.2硬件的設計
??? 系統以S3C2410芯片為核心,配合電話接口模塊、語音單元、存儲單元實現語音識別的訓練及識別過程。該芯片是SAMSUNG公司生產的一款基于ARM920T內核的芯片,擁有獨立的16 KB指令Cache和16 KB數據Cache,片內資源豐富并支持MMU虛擬內存管理單元,采用它作為程序的主控芯片可減少工作量,降低開發(fā)難度。為實現對語音的處理,系統的語音單元采用了PHILIPS公司的UDA1341TS語音編解碼芯片。語音的模擬信號從電話線經過偏置和濾波處理后輸入到UDA1341TS中轉換為數字信號后再送到S3C2410進行處理。本系統和電話公用網之間的接口是PH8809電話模塊,PH8809是專業(yè)設計的電話接口電路,采用標準DIP32P封裝,體積小巧,具備振鈴檢測、摘掛機檢測和控制及語音接收/輸出、DTMF輸入/輸出等功能,并帶有電話線斷線檢測端口及音量自動增益調節(jié)電路,集成度高,性能穩(wěn)定。出于安全考慮,系統采用密碼驗證的方式對用戶身份進行識別,而密碼的輸入借助于DTMF信號。HT9170是DTMF信號接收解碼芯片,它可對接收到的DTMF信號進行檢測和解碼,并將不同的DTMF輸入信號轉換成相應的4位BCD碼數字信號輸出。系統的存儲部分選用32 M×8 bit Flash K9F5608U芯片,用于燒寫程序,2片8 M×32 bit大容量SDRAM芯片型號為HY57V561620。其中電話接口模塊PH8809與語音編解碼芯片UDA1341TS及DTMF解碼電路HT9170、微處理器S3C2410的連接如圖3所示。
?
?
??? 圖3中,SW是摘掛機控制開關,高電平導通,低電平斷開。RING為振鈴信號輸出,輸出高電平時無振鈴,輸出低電平則表示有振鈴。DXC是電話線斷線檢測輸出,輸出高電平表示電話線斷線,輸出低電平時電話線連接正常。
3 系統的軟件設計
??? 系統首先通過移植vivi BootLoader、Linux 操作系統建立系統的開發(fā)環(huán)境,然后再開發(fā)語音識別程序及硬件驅動程序并把它們燒寫進目標板。其中重點難點在于語音識別程序的開發(fā),本文只介紹此部分。
3.1通信信道噪聲的消除
??? 基于電話的語音識別不同于普通的桌面語音識別,要想達到較好的識別效果,噪聲的影響不能忽略。而RASTA濾波處理正是通過一個低端截止頻率很低的帶通濾波器對語音參數的時間軌跡進行濾波處理,以使頻譜中的常量或者緩慢變化的部分得到抑制。系統引入了RASTA濾波技術并把它應用到Mel對數譜上,使得變化緩慢的通道噪聲得到抑制[2]。
??? MFCC通過構造人的聽覺模型,以語音通過該模型(濾波器組)的輸出為聲學特征,經過離散傅里葉變換(DFT)后,可得MFCC為
???
??? 式(1)中,f (k)為第k個濾波器的對數輸出,n為MFCC的階數,M為濾波器的個數。
??? 設RASTA濾波器的系統函數為H(z),則
? ?
??? 又設分別代表RASTA處理前和處理后的第k個Mel頻帶對數頻譜,則有:
???
??? 再對Mel頻率對數頻譜進行離散余弦變換(DCT),可得:
????
式(5)中是經過RASTA處理后的n階MFCC。將式(4)代入式(5),可得
???
??? 從式(6)中可以看出,RASTA處理完全可以從對數頻率譜擴展到倒譜,即先求出MFCC,然后再做帶通濾波處理,從而減少計算代價。
3.2語音識別算法
??? 在對語音信號提取MFCC特征參數及RASTA濾波去噪以后,語音信號就轉化成為一組組特征向量,而語音識別算法的作用就是將待識別的語音信號的特征向量同系統中已建立起來的特征向量模板進行比較,找出最優(yōu)的匹配模板。目前,常用的語音識別算法有隱馬爾可夫模型(HMM)算法、動態(tài)時間規(guī)正(DTW)算法和人工神經網絡(ANN)算法。其中,DTW算法具有系統開銷小、運算速度快、對孤立詞和小詞匯表的識別簡單而有效等特點,非常適合嵌入式系統的研制,而改進的DTW算法進一步減小了對計算量和存儲空間的需求,因而本系統選用它作為系統的識別算法。
??? DTW算法是利用動態(tài)規(guī)劃的思想, 將一個復雜的全局最優(yōu)化問題化為許多局部最優(yōu)化問題來處理,并自動尋找一條路徑,使兩個特征矢量之間的積累失真量最小,從而避免由于時長不同而可能引入的誤差。
??? 設參考模板共有M幀矢量,待測語音模板共有N幀矢量(一般M≠N),則動態(tài)時間歸正就是尋找一個時間歸正函數m=ω(n),它將測試矢量的時間軸n非線性地映射到模板的時間軸m上并使得測試矢量和模板矢量各幀之間的距離測度的累積和最小,從而使得兩矢量之間的匹配路徑最小,這樣就保證了待測模板與參考模板之間具有最大的聲學相似特性。通常,規(guī)正函數m=ω(n)被限制在一個平行四邊形(設為ABCD)網格內,它的起點坐標是(1,1),終點坐標為(N,M ),相鄰兩邊的斜率分別為2和1/2,如圖4所示。
?
??? 即只需對位于平行四邊形ABCD內的各點對應的幀匹配距離進行計算即可,然而傳統的DTW算法卻對整個矩形區(qū)域MBND都進行了計算,增加了系統的計算量。此外,傳統的DTW算法還保存了所有的幀匹配距離矩陣和累積距離矩陣,而實際上每一列各個點上的匹配計算只用到了前一列的3個網格。改進的DTW算法對以上兩點進行了改進,把實際的動態(tài)規(guī)正拆分為(1, Xa), (Xa+1,Xb),(Xb+1,N)3段,其中,Xa和Xb為最相近的整數且滿足下式
???
??? 當不滿足以上條件時,認為兩者差別實在太大,無法進行動態(tài)規(guī)正匹配。
??? 而在X軸上的每一幀不再與Y軸上的每一幀進行比較,而只與Y軸上[ymax,ymin]間的幀進行比較,其中ymax,ymin由以下二式計算得到:
???
??? 當Xa>Xb時, DTW可拆分為(1,Xb),(Xb+1,Xa)和(Xa+1,N)3段,計算過程類似。
??? 對于X 軸上,每前進一幀,彎折特征都是一樣的,累積距離的更新用下式實現
??? D(x,y)=d(x,y)+min[D(x-1,y),D(x-1,y-1),D(x-1,y-2)]?
??? 上式中,矢量 D 用于保存前一列的累積距離,矢量 d 用于計算當前列的累積距離。根據上式,當在X軸上每前進一幀時,按上式可求出當前的累積距離,而它又可供下一列使用。如此不斷的更新,當進行到待測模板的最后一幀時,矢量 D 的最后一個元素即為兩個模板經過動態(tài)規(guī)正后的匹配距離??梢钥闯?,該算法并沒有像傳統的DTW算法一樣保存整個距離矩陣,從而節(jié)約了系統的存儲空間[3]。
??? 系統通過DTMF信號密碼驗證方式對用戶身份進行識別,采用語音命令方式對家電進行控制,具有交流方式流暢自然、可實現隨時隨地控制、較高的安全性能等特點。實驗結果表明,在一般的背景環(huán)境下,對孤立詞的語音命令識別正確率達到95%以上,具有一定的應用價值。
參考文獻
[1]?趙建光.嵌入式連續(xù)語音識別系統研究[D].河北工程大學碩士學位論文,2007.
[2]?HERMANSKY H, MORGAN N. RASTA processing of speech[J]. IEEE Trans on Speech and Audio Processing, 1994, 2(4): 578-589.
[3]?林波,呂明.基于DTW改進算法的孤立詞識別系統的仿真與分析[J].信息技術, 2006(4): 56-59.