基于智能語音的智能家居系統(tǒng)設(shè)計(jì)
0 引 言
第一次工業(yè)時(shí)代后,生活方式大不同前,越來越多的機(jī)器設(shè)備開始代替手工作業(yè),而在家居行業(yè)也出現(xiàn)了類似的機(jī)器人幫人們處理家居生活中的簡單工作,不僅解放了人們的雙手,又節(jié)省了大量時(shí)間。智能家居的發(fā)展與人機(jī)交互技術(shù)有著密不可分的關(guān)聯(lián),在長期探索中,語音識別技術(shù)脫穎而出。本文詳細(xì)分析了語音識別過程,并設(shè)計(jì)了一套基于Arduino平臺(tái)的智能家居系統(tǒng)實(shí)現(xiàn)對家居燈光、環(huán)境(溫度和濕度)、光線、安防監(jiān)督的語音化控制。
1 語音識別系統(tǒng)相關(guān)理論技術(shù)
語音識別的信號處理流程如圖 1 所示。語音識別系統(tǒng)由語音前期預(yù)處理、語音信號特征參數(shù)提取、參考模型庫建模、模式匹配以及語音后處理五個(gè)部分組成 [1]。語音識別可分為如下四大階段 :
(1) 第一個(gè)階段先通過性能優(yōu)良的語音采集設(shè)備采集語音信號,然后進(jìn)行相關(guān)預(yù)加重、分幀、加窗、端點(diǎn)檢測等預(yù)處理操作。
(2) 第二階段是聲學(xué)模型訓(xùn)練階段。提取語音庫中已知語義的語音信號特征參數(shù),將其作為模板存入?yún)⒖寄P蛶熘?。使用?xùn)練算法建立聲學(xué)模型,而聲學(xué)模型的訓(xùn)練過程也是建模過程,通過訓(xùn)練語音庫的特征參數(shù)訓(xùn)練聲學(xué)模型參數(shù) [2], 因此要設(shè)置合理的模型初始值。
(3) 第三階段是識別階段,將輸入語音的特征參數(shù)經(jīng)過一定的識別算法與訓(xùn)練好的參考模型庫中的特征參數(shù)進(jìn)行相似度對比,匹配相似度概率最高的即為輸入語音最終識別結(jié)果 [3]。
(4) 第四階段是語音后處理階段,確定當(dāng)前哪個(gè)詞語可以跟隨上一個(gè)已經(jīng)識別的詞,排除不可能的單詞,將最佳匹配結(jié)果語音信號進(jìn)行語言建模,匹配出文本語義。
2 語音信號的時(shí)域處理
在對語音信號分析前,要先對語音信號進(jìn)行預(yù)處理,包括端點(diǎn)檢測、預(yù)加重、加窗和分幀等技術(shù) [4]。
預(yù)加重采用一個(gè) 6 dB/ 倍頻的一階高通數(shù)字濾波器實(shí)現(xiàn), 其傳遞函數(shù)為 H(z)=1-μz-1,加窗可以讓一幀信號的幅度在兩端平滑的衰減漸變到零,以避免短時(shí)語音段邊緣的影響。但由于加窗削弱了語音邊緣的信號,為了使相鄰幀連續(xù)不中斷,一般采用重疊分幀方法 [5]。
端點(diǎn)檢測技術(shù)的目的是檢測出有效語音信號的起始點(diǎn)和終止點(diǎn) [6],從而減少需要處理的數(shù)據(jù)量和運(yùn)算量,同時(shí)還能降低噪聲對語音識別系統(tǒng)的影響,一般采用雙門限端點(diǎn)檢測法。
3 語音信號的特征提取
語音信號提取的特征值應(yīng)該準(zhǔn)確、完全地包含語音信號的全部信息。同時(shí)提取能有效反映語音特性、減少語音信號中與識別無關(guān)的信息,減少識別數(shù)據(jù)量。本文分析了語音信號的三種特征參數(shù),即線性預(yù)測系數(shù)(LPC)、線性預(yù)測倒譜系數(shù)(LPCC)、梅爾頻率倒譜系數(shù)(MFCC)[7]。
3.1 線性預(yù)測系數(shù)(LPC)
線性預(yù)測的原理 :語音信號 S(n)的值可由過去若干時(shí)刻的采樣值或其線性組合來逼近 [8]。在逼近過程中,逼近值與原始值之間的差值稱為預(yù)測誤差,當(dāng)預(yù)測誤差達(dá)到最小時(shí), 即預(yù)測效果最接近,也是模型建立最完美的值。可以推得, 線性預(yù)測系數(shù) ai 的值達(dá)到了收斂。線性預(yù)測方法得到的參數(shù)可以很好地反映語音信號的頻譜幅度。
3.2 線性預(yù)測倒譜系數(shù)(LPCC)
LPCC 可以將語音模型中的聲門激勵(lì)信號與聲道沖激響應(yīng)信號進(jìn)行分離,計(jì)算量小,實(shí)現(xiàn)相對簡單,提高了特征參數(shù)的穩(wěn)定性 [9]。該值是對語音信號進(jìn)行 FFT 后再取對數(shù),求IFFT 后得到的。
3.3 梅爾頻率倒譜系數(shù)(MFCC)
Mel 頻率倒譜系數(shù)(MFCC)充分考慮了人耳聽覺的感知特性后進(jìn)行語音信號處理。MFCC 具有更好的識別性能[10], 語音信號中的能量主要集中在低頻部分,對人耳的聽覺特性模擬地更好,而人耳對低頻分量也更敏感。語音信號低頻部分的一個(gè)參數(shù)淡化了易受環(huán)境噪聲干擾的高頻部分,提高了語音識別系統(tǒng)的抗噪聲能力。
4 隱馬爾科夫模型 HMM
隱馬爾科夫過程是一個(gè)雙重隨機(jī)過程 :其一用于描述每幀語音信號的統(tǒng)計(jì)特性(可直接觀測到);其二用于描述每幀語音信號如何轉(zhuǎn)變到寫一個(gè)語音幀信號(隱含在觀察序列中)。隱馬爾可夫模型就像一個(gè)黑箱子,內(nèi)部狀態(tài)外部不可見,外界只能看到各個(gè)時(shí)刻的輸出值 [11]??捎^測部分是人的語音,而隱含部分則是人組織語言的大腦激勵(lì)信號。隱馬爾可夫模型可用 λ=(π,A,B)表示 [12]。
本文詳細(xì)分析了 HMM 模型三個(gè)基本問題的解決算法。假設(shè)已知可觀察狀態(tài)值序列 O=(O1,O2,…,OT)(T是語音信號的幀數(shù))和馬爾科夫模型參數(shù) λ=(π,A,B),計(jì)算可觀察序列的概率 P(O|λ)時(shí)一般使用向前 - 向后算法 [13]。
已知可觀察狀態(tài)值序列 O=(O1,O2,…,OT) 和模型 λ=(π, A,B),計(jì)算最有可能生成該可觀察序列的隱含狀態(tài)序列,通常使用 Viterbi 算法 [14]。
在已知可觀察狀態(tài)的序列 O=(O1,O2,…,OT) 的前提下,確定 HMM 的模型參數(shù) λ=(π,A,B),使得可觀察序列的概率 P(O|λ)最大,通常使用 Baum-Welch 算法 [15]。
5 智能家居系統(tǒng)實(shí)現(xiàn)
結(jié)合 Arduino 開發(fā)平臺(tái)實(shí)現(xiàn)智能家居模塊的交互系統(tǒng),對家居系統(tǒng)整體以及軟硬件需求進(jìn)行分析與總體設(shè)計(jì),實(shí)現(xiàn)通過語音控制家居設(shè)備的目標(biāo)。該系統(tǒng)具有燈光控制,光線以及溫度濕度檢測和危險(xiǎn)氣體警報(bào)功能。為了擁有更好的人機(jī)交互環(huán)境,本文系統(tǒng)還添加了語音播報(bào)功能。
調(diào)試并連接智能家居的軟硬件系統(tǒng),分別測試智能家居系統(tǒng)的語音識別率,以及相應(yīng)的語音命令能否實(shí)現(xiàn)對應(yīng)功能。在安靜的環(huán)境下,系統(tǒng)功能能夠全部實(shí)現(xiàn),測試非特定人 100 次的語音識別率均在 90% 以上。在有噪聲的環(huán)境下,系統(tǒng)功能均未實(shí)現(xiàn),測試非特定人 100 次的語音識別率均在50% 以下甚至更低。由實(shí)驗(yàn)結(jié)果可知,與安靜環(huán)境對比,噪聲環(huán)境下的語音識別效果大大降低,且長語音命令的識別率同之前一樣低于安靜環(huán)境下的語音識別率。
智能家居系統(tǒng)框圖如圖 2 所示,系統(tǒng)測試實(shí)驗(yàn)見表 1所列。
6 結(jié) 語
本文主要對語音識別技術(shù)做了大致分析,比較了特征提取線性預(yù)測技術(shù)、線性預(yù)測倒譜系數(shù)以及梅爾頻率倒譜系數(shù)之間的優(yōu)缺點(diǎn)。詳細(xì)分析了隱馬爾科夫的建模過程以及相應(yīng)算法,結(jié)合 Arduino 開發(fā)平臺(tái),對智能家居系統(tǒng)做出簡單設(shè)計(jì),實(shí)現(xiàn)了語音命令“開燈”“關(guān)燈”“溫度濕度檢測”“環(huán)境光線檢測”等操作,同時(shí)還采用危險(xiǎn)氣體警報(bào)對家居安防進(jìn)行布施。語音播報(bào)提供了良好的人機(jī)交互環(huán)境,通過智能家居各模塊功能語音識別測試可知,提高語音識別率不僅需要安靜的環(huán)境,還需要說標(biāo)準(zhǔn)的普通話。語音識別如何在有較大噪音的環(huán)境中進(jìn)行準(zhǔn)確識別是一道難關(guān),也是未來科研人的努力方向。