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