《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 基于語音識(shí)別的智能家居系統(tǒng)研究

基于語音識(shí)別的智能家居系統(tǒng)研究

2009-08-26
作者:劉其洪, 李仲陽, 徐孟龍

??? 摘 要:針對(duì)智能家居系統(tǒng)中信息不能隨時(shí)隨地進(jìn)行控制及其交流方式不流暢的問題,融合電話公用網(wǎng)和家庭網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)基于ARM9和語音識(shí)別技術(shù)的智能家居系統(tǒng)。該系統(tǒng)采用RASTA濾波方法去除語音信號(hào)中夾雜的卷積信道噪聲,采用改進(jìn)的動(dòng)態(tài)時(shí)間規(guī)正(DTW)算法對(duì)語音命令進(jìn)行識(shí)別。
??? 關(guān)鍵詞:智能家居;語音識(shí)別;帶通濾波器;動(dòng)態(tài)時(shí)間規(guī)正

?

??? 隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,“智能家居”越來越被人們所重視。綜觀國內(nèi)外的智能家居系統(tǒng),大部分側(cè)重于利用Internet進(jìn)行遠(yuǎn)程控制。由于受到上網(wǎng)設(shè)備的限制,這種方式給智能家居系統(tǒng)的使用帶來了不便。例如,在用戶回家途中希望能夠打開空調(diào),很可能就因?yàn)椴环奖闵暇W(wǎng)而無法實(shí)現(xiàn)。隨著電話的普及,利用電話對(duì)家電進(jìn)行遠(yuǎn)程控制可以做到隨時(shí)隨地。目前國內(nèi)外使用的控制方式主要有:利用短消息控制和用語音播放受控設(shè)備的名稱或代號(hào),再根據(jù)用戶的選擇來控制相應(yīng)的設(shè)備。這兩種方式的弊端是:交流的方式不流暢自然,而且當(dāng)受控設(shè)備的個(gè)數(shù)達(dá)到10個(gè)以上時(shí)需要考慮新出現(xiàn)的問題。
??? 本文所介紹的系統(tǒng)采用三星公司生產(chǎn)的S3C2410芯片作為微處理器,基于公用電話交換網(wǎng)設(shè)計(jì)而成。系統(tǒng)先對(duì)用戶從電話輸入的語音命令進(jìn)行語音識(shí)別,然后根據(jù)識(shí)別結(jié)果向串口發(fā)送相應(yīng)的命令,實(shí)現(xiàn)對(duì)家電的控制。
1 語音識(shí)別原理 ?
??? 語音識(shí)別的過程可歸結(jié)為模式識(shí)別和匹配。通過對(duì)語音信號(hào)進(jìn)行預(yù)處理和分析計(jì)算可抽取出所需的語音特征,并以此建立語音識(shí)別所需的模板。而當(dāng)對(duì)語音進(jìn)行識(shí)別時(shí),則需要將系統(tǒng)中存放的語音模板與輸入的語音信號(hào)的特征進(jìn)行比較,并根據(jù)一定的算法和策略,找出一系列最優(yōu)的與輸入的語音匹配的模板,最后輸出識(shí)別結(jié)果,識(shí)別流程如圖1所示[1]。

?


??? 預(yù)處理包括采樣、去除噪音、端點(diǎn)檢測、預(yù)加重、分幀、加窗等。而特征參數(shù)的提取,目前較為常用的有線性預(yù)測倒譜系數(shù)(LPCC)與Mel倒譜系數(shù)(MFCC)。本文采用的是MFCC。系統(tǒng)采用改進(jìn)的動(dòng)態(tài)時(shí)間規(guī)正DTW (Dynamic Time Warping)算法對(duì)語音進(jìn)行訓(xùn)練和識(shí)別。

2 系統(tǒng)的硬件設(shè)計(jì)
2.1 系統(tǒng)的組成

??? 系統(tǒng)由ARM9核微處理器構(gòu)成主控部分,接收外部的控制信號(hào),負(fù)責(zé)信息的處理,調(diào)控系統(tǒng)各部件協(xié)同進(jìn)行工作。接口電路提供微處理器與電話網(wǎng)絡(luò)的接口,包括振鈴檢測電路、模擬摘掛機(jī)電路、語音電路、雙音多頻(DTMF)信號(hào)解碼電路。系統(tǒng)的硬件框圖如圖2所示。其中振鈴檢測電路、模擬摘掛機(jī)電路可由電話接口模塊替代。

?

??? 系統(tǒng)的工作過程是:當(dāng)有電話接入時(shí),電話接口模塊中的振鈴檢測電路檢測到有振鈴信號(hào)并送微處理器;微處理器發(fā)送摘機(jī)信號(hào)到摘掛機(jī)電路,實(shí)現(xiàn)模擬摘機(jī);語音模塊立即播放語音提示,要啟動(dòng)家電控制則輸入密碼,正常通話則等待3s;當(dāng)用戶有按鍵輸入時(shí),相應(yīng)的DTMF信號(hào)經(jīng)雙音多頻信號(hào)解碼電路解碼并送微處理器對(duì)它進(jìn)行判斷;若輸入的密碼正確,則由語音模塊播放提示音,要求用戶輸入語音控制命令;語音命令的模擬信號(hào)經(jīng)A/D轉(zhuǎn)換電路轉(zhuǎn)換成數(shù)字信號(hào)后送微處理器進(jìn)行語音識(shí)別;識(shí)別結(jié)果通過串口輸出。
2.2硬件的設(shè)計(jì)
??? 系統(tǒng)以S3C2410芯片為核心,配合電話接口模塊、語音單元、存儲(chǔ)單元實(shí)現(xiàn)語音識(shí)別的訓(xùn)練及識(shí)別過程。該芯片是SAMSUNG公司生產(chǎn)的一款基于ARM920T內(nèi)核的芯片,擁有獨(dú)立的16 KB指令Cache和16 KB數(shù)據(jù)Cache,片內(nèi)資源豐富并支持MMU虛擬內(nèi)存管理單元,采用它作為程序的主控芯片可減少工作量,降低開發(fā)難度。為實(shí)現(xiàn)對(duì)語音的處理,系統(tǒng)的語音單元采用了PHILIPS公司的UDA1341TS語音編解碼芯片。語音的模擬信號(hào)從電話線經(jīng)過偏置和濾波處理后輸入到UDA1341TS中轉(zhuǎn)換為數(shù)字信號(hào)后再送到S3C2410進(jìn)行處理。本系統(tǒng)和電話公用網(wǎng)之間的接口是PH8809電話模塊,PH8809是專業(yè)設(shè)計(jì)的電話接口電路,采用標(biāo)準(zhǔn)DIP32P封裝,體積小巧,具備振鈴檢測、摘掛機(jī)檢測和控制及語音接收/輸出、DTMF輸入/輸出等功能,并帶有電話線斷線檢測端口及音量自動(dòng)增益調(diào)節(jié)電路,集成度高,性能穩(wěn)定。出于安全考慮,系統(tǒng)采用密碼驗(yàn)證的方式對(duì)用戶身份進(jìn)行識(shí)別,而密碼的輸入借助于DTMF信號(hào)。HT9170是DTMF信號(hào)接收解碼芯片,它可對(duì)接收到的DTMF信號(hào)進(jìn)行檢測和解碼,并將不同的DTMF輸入信號(hào)轉(zhuǎn)換成相應(yīng)的4位BCD碼數(shù)字信號(hào)輸出。系統(tǒng)的存儲(chǔ)部分選用32 M×8 bit Flash K9F5608U芯片,用于燒寫程序,2片8 M×32 bit大容量SDRAM芯片型號(hào)為HY57V561620。其中電話接口模塊PH8809與語音編解碼芯片UDA1341TS及DTMF解碼電路HT9170、微處理器S3C2410的連接如圖3所示。

?

?

??? 圖3中,SW是摘掛機(jī)控制開關(guān),高電平導(dǎo)通,低電平斷開。RING為振鈴信號(hào)輸出,輸出高電平時(shí)無振鈴,輸出低電平則表示有振鈴。DXC是電話線斷線檢測輸出,輸出高電平表示電話線斷線,輸出低電平時(shí)電話線連接正常。
3 系統(tǒng)的軟件設(shè)計(jì)
??? 系統(tǒng)首先通過移植vivi BootLoader、Linux 操作系統(tǒng)建立系統(tǒng)的開發(fā)環(huán)境,然后再開發(fā)語音識(shí)別程序及硬件驅(qū)動(dòng)程序并把它們燒寫進(jìn)目標(biāo)板。其中重點(diǎn)難點(diǎn)在于語音識(shí)別程序的開發(fā),本文只介紹此部分。
3.1通信信道噪聲的消除
??? 基于電話的語音識(shí)別不同于普通的桌面語音識(shí)別,要想達(dá)到較好的識(shí)別效果,噪聲的影響不能忽略。而RASTA濾波處理正是通過一個(gè)低端截止頻率很低的帶通濾波器對(duì)語音參數(shù)的時(shí)間軌跡進(jìn)行濾波處理,以使頻譜中的常量或者緩慢變化的部分得到抑制。系統(tǒng)引入了RASTA濾波技術(shù)并把它應(yīng)用到Mel對(duì)數(shù)譜上,使得變化緩慢的通道噪聲得到抑制[2]。
??? MFCC通過構(gòu)造人的聽覺模型,以語音通過該模型(濾波器組)的輸出為聲學(xué)特征,經(jīng)過離散傅里葉變換(DFT)后,可得MFCC為
???
??? 式(1)中,f (k)為第k個(gè)濾波器的對(duì)數(shù)輸出,n為MFCC的階數(shù),M為濾波器的個(gè)數(shù)。
??? 設(shè)RASTA濾波器的系統(tǒng)函數(shù)為H(z),則
? ?
??? 又設(shè)分別代表RASTA處理前和處理后的第k個(gè)Mel頻帶對(duì)數(shù)頻譜,則有:
???
??? 再對(duì)Mel頻率對(duì)數(shù)頻譜進(jìn)行離散余弦變換(DCT),可得:
????
式(5)中是經(jīng)過RASTA處理后的n階MFCC。將式(4)代入式(5),可得
???
??? 從式(6)中可以看出,RASTA處理完全可以從對(duì)數(shù)頻率譜擴(kuò)展到倒譜,即先求出MFCC,然后再做帶通濾波處理,從而減少計(jì)算代價(jià)。
3.2語音識(shí)別算法
??? 在對(duì)語音信號(hào)提取MFCC特征參數(shù)及RASTA濾波去噪以后,語音信號(hào)就轉(zhuǎn)化成為一組組特征向量,而語音識(shí)別算法的作用就是將待識(shí)別的語音信號(hào)的特征向量同系統(tǒng)中已建立起來的特征向量模板進(jìn)行比較,找出最優(yōu)的匹配模板。目前,常用的語音識(shí)別算法有隱馬爾可夫模型(HMM)算法、動(dòng)態(tài)時(shí)間規(guī)正(DTW)算法和人工神經(jīng)網(wǎng)絡(luò)(ANN)算法。其中,DTW算法具有系統(tǒng)開銷小、運(yùn)算速度快、對(duì)孤立詞和小詞匯表的識(shí)別簡單而有效等特點(diǎn),非常適合嵌入式系統(tǒng)的研制,而改進(jìn)的DTW算法進(jìn)一步減小了對(duì)計(jì)算量和存儲(chǔ)空間的需求,因而本系統(tǒng)選用它作為系統(tǒng)的識(shí)別算法。
??? DTW算法是利用動(dòng)態(tài)規(guī)劃的思想, 將一個(gè)復(fù)雜的全局最優(yōu)化問題化為許多局部最優(yōu)化問題來處理,并自動(dòng)尋找一條路徑,使兩個(gè)特征矢量之間的積累失真量最小,從而避免由于時(shí)長不同而可能引入的誤差。
??? 設(shè)參考模板共有M幀矢量,待測語音模板共有N幀矢量(一般M≠N),則動(dòng)態(tài)時(shí)間歸正就是尋找一個(gè)時(shí)間歸正函數(shù)m=ω(n),它將測試矢量的時(shí)間軸n非線性地映射到模板的時(shí)間軸m上并使得測試矢量和模板矢量各幀之間的距離測度的累積和最小,從而使得兩矢量之間的匹配路徑最小,這樣就保證了待測模板與參考模板之間具有最大的聲學(xué)相似特性。通常,規(guī)正函數(shù)m=ω(n)被限制在一個(gè)平行四邊形(設(shè)為ABCD)網(wǎng)格內(nèi),它的起點(diǎn)坐標(biāo)是(1,1),終點(diǎn)坐標(biāo)為(N,M ),相鄰兩邊的斜率分別為2和1/2,如圖4所示。

?


??? 即只需對(duì)位于平行四邊形ABCD內(nèi)的各點(diǎn)對(duì)應(yīng)的幀匹配距離進(jìn)行計(jì)算即可,然而傳統(tǒng)的DTW算法卻對(duì)整個(gè)矩形區(qū)域MBND都進(jìn)行了計(jì)算,增加了系統(tǒng)的計(jì)算量。此外,傳統(tǒng)的DTW算法還保存了所有的幀匹配距離矩陣和累積距離矩陣,而實(shí)際上每一列各個(gè)點(diǎn)上的匹配計(jì)算只用到了前一列的3個(gè)網(wǎng)格。改進(jìn)的DTW算法對(duì)以上兩點(diǎn)進(jìn)行了改進(jìn),把實(shí)際的動(dòng)態(tài)規(guī)正拆分為(1, Xa), (Xa+1,Xb),(Xb+1,N)3段,其中,Xa和Xb為最相近的整數(shù)且滿足下式
???
??? 當(dāng)不滿足以上條件時(shí),認(rèn)為兩者差別實(shí)在太大,無法進(jìn)行動(dòng)態(tài)規(guī)正匹配。
??? 而在X軸上的每一幀不再與Y軸上的每一幀進(jìn)行比較,而只與Y軸上[ymax,ymin]間的幀進(jìn)行比較,其中ymax,ymin由以下二式計(jì)算得到:

???
??? 當(dāng)Xa>Xb時(shí), DTW可拆分為(1,Xb),(Xb+1,Xa)和(Xa+1,N)3段,計(jì)算過程類似。
??? 對(duì)于X 軸上,每前進(jìn)一幀,彎折特征都是一樣的,累積距離的更新用下式實(shí)現(xiàn)
??? D(x,y)=d(x,y)+min[D(x-1,y),D(x-1,y-1),D(x-1,y-2)]?
??? 上式中,矢量 D 用于保存前一列的累積距離,矢量 d 用于計(jì)算當(dāng)前列的累積距離。根據(jù)上式,當(dāng)在X軸上每前進(jìn)一幀時(shí),按上式可求出當(dāng)前的累積距離,而它又可供下一列使用。如此不斷的更新,當(dāng)進(jìn)行到待測模板的最后一幀時(shí),矢量 D 的最后一個(gè)元素即為兩個(gè)模板經(jīng)過動(dòng)態(tài)規(guī)正后的匹配距離??梢钥闯?,該算法并沒有像傳統(tǒng)的DTW算法一樣保存整個(gè)距離矩陣,從而節(jié)約了系統(tǒng)的存儲(chǔ)空間[3]。
??? 系統(tǒng)通過DTMF信號(hào)密碼驗(yàn)證方式對(duì)用戶身份進(jìn)行識(shí)別,采用語音命令方式對(duì)家電進(jìn)行控制,具有交流方式流暢自然、可實(shí)現(xiàn)隨時(shí)隨地控制、較高的安全性能等特點(diǎn)。實(shí)驗(yàn)結(jié)果表明,在一般的背景環(huán)境下,對(duì)孤立詞的語音命令識(shí)別正確率達(dá)到95%以上,具有一定的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]?趙建光.嵌入式連續(xù)語音識(shí)別系統(tǒng)研究[D].河北工程大學(xué)碩士學(xué)位論文,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ìn)算法的孤立詞識(shí)別系統(tǒng)的仿真與分析[J].信息技術(shù), 2006(4): 56-59.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。