費孝峰,樊嘉杰,鄧 亮,劉 健,邢 文
(1.河海大學機電工程學院,江蘇 常州 213022;2.常州星宇車燈股份有限公司,江蘇 常州 213022;3.常州市武進區半導體照明應用技術研究院,江蘇 常州 213161;4.荷蘭代爾夫特理工大學電氣工程、數學和計算機科學學院微電子系,荷蘭 代爾夫特 2628)
車載氛圍燈是一種新型的車內裝飾燈具[1],它通過顏色和亮度改變,兼具照明及氛圍調節作用。LED具有能耗低、壽命長、響應快、易控制等特點,已經逐漸成為車載氛圍燈的主流光源[2]。傳統車載氛圍燈的調節通過按鍵或者車載導航界面實現[3],在正常駕駛時,駕駛員手動操作氛圍燈會轉移視線,存在交通事故隱患。
目前,語音交互技術正在車輛上推廣使用,語音識別技術應用于車載設備上,將會提高產品的使用價值,使用戶界面更加友好。傳統的語音識別算法通常采用基于動態時間規整(dynamic time warping,DTW)[4]和基于隱馬爾科夫模型(hidden markov model,HMM)[5]等。然而,DTW算法存在無法適用非特定人、大量識別詞的問題;HMM算法存在響應速度慢、識別率偏低等問題[6]。因此,基于深度學習(deep learning,DL)的語音識別算法已經被提出[7]。目前車載智能產品實現語音識別的方法有采用專用語音識別芯片的語音庫以及傳統的語音識別算法等[6,8]。
本文提出一種基于深度學習實現語音識別與控制氛圍燈的系統,對預識別語音進行訓練得到聲學模型,移植該模型到嵌入式平臺中,利用聲學模型對在線語音的音頻特征進行分類判別。
如圖1所示,LED車載語音交互氛圍燈系統主要由i.MX6為語音處理MPU,該處理器廣泛應用工業自動控制設備、人機交互設備、航空電子設備、機器人等領域,性能良好[9]。麥克風采用USB接口麥克風,具有智能降噪、抗噪抗干擾等功能,自帶聲卡,使聲音更加清晰,傳輸時可以有效防止聲音卡頓、降低延遲。氛圍燈控制處理器采用S32K144,S32K144是應用汽車工業的32位ARM處理器,適用于通用汽車和高可靠性的工業應用[8]。具體操作原理為:首先通過PC訓練聲學模型,其次將訓練好的模型移植到i.MX6,進而與S32K144通信;然后將汽車故障碼和汽車行駛記錄通過OBD-II接口傳遞到CAN收發器,進而與S32K144通信。
圖1 LED車載語音交互氛圍燈系統總體框架
本文采用基于多層卷積神經網絡的語音識別原理,輸入為經過處理的聲紋,輸出為識別的種類(如“上下左右”等指令)。卷積神經網絡(convolutional neural network,CNN)是一類包含卷積計算且具有深度結構的前饋神經網絡,屬于一種深度學習方法[10]。該網絡可以提供在時間上和空間上的平移不變性卷積,利用卷積的不變性來克服語音信號本身的多樣性[11,12]。相比傳統聲學建模,采用該網絡搭建聲學模型,可以省去大量的特征提取工作[10]。如圖2所示,音頻信號通過語音檢測、降噪處理,采用梅爾頻率倒譜系數(mel frequency cepstral coefficient,MFCC)方法提取音頻特征[13];將提取的聲紋特征與移植的聲學模型,通過聲紋辨認的方式進行特征匹配,將識別結果輸出到S32K144,實現語音識別功能。
圖2 CNN語音識別流程圖
語音數據樣本通過麥克風采集,數據采樣率為8 000 Hz,位數為8位,時間為3 s,一共6個識別單詞,每個識別單詞樣本數為500個。數據集按照8∶2拆分為訓練集、測試集。為了模擬復雜的背景環境,提高系統的魯棒性,訓練數據增加了背景噪音[14]。
針對原始的語音數據,需要進行預加重、分幀和加窗、端點檢測等數據處理操作[15]。當整段語音進行分幀時,語音的幀長設置為1028采樣點,幀移設置為512采樣點,選用漢寧窗對每一幀語音數據進行加窗操作。如圖3所示,音頻提取聲紋特征。步驟如下:①進行快速傅里葉變換(fast fourier transform, FFT)得到相應的頻譜。設置FFT參數為2048,通過FFT運算得到每幀數據的實部和虛部,并以實部和虛部的平方和作為能量譜。②創建梅爾三角濾波器組,對每幀音頻數據進行梅爾頻率變換。首先設置梅爾三角濾波器組數為128,通過梅爾三角濾波器組將線性的自然頻譜轉化為能體現人類聽覺特性的梅爾頻譜;其次,能量值取對數;最后進行離散余弦變換。
圖3 提取聲紋特征
典型的卷積神經網絡主要由輸入層、卷積層、池化層、全連接層和輸出層組成。目前針對網絡結構方面的研究主要針對增加神經網絡的深度和優化神經網絡的結構,降低網絡的復雜度[16]。卷積層、池化層的激活函數采用“ReLU”函數,該函數成功解決了深度學習網絡的分類性能和訓練穩定性,應用于卷積神經網絡,效果明顯[17]。全連接層采用“softmax”作為激活函數,可以有效將識別結果分類[18]。本文卷積神經網絡結構圖如圖4所示。
圖4 卷積神經網絡結構圖
該離線語音訓練過程如圖5所示。在深度學習工具Keras[19]上使用分類交叉熵損失函數[18]和Adam優化器[20]去訓練聲學模型,初始學習率設置為0.0001,批量尺寸大小設置為20。
在語音識別領域,評估是一項必要的工作,評價分類器性能的常用方法有準確率和混淆矩陣。準確率是預測正確的結果占總樣本的百分比。混淆矩陣(confusion matrix,CM)本質是一個誤差矩陣,它描繪樣本數據的真實屬性與識別結果類型之間的關系[21]。本文語音識別模型訓練和測試準確率如圖6所示。本文測試數據對應的混淆矩陣如圖7所示。對于準確率、精確率、召回率和綜合評價指標F1值的計算公式如下:
(1)
(2)
(3)
(4)
其中NTP表示正類樣本被正確分類的數目,NTN表示負類樣本被正確分類的數目,NFP表示負類樣本被分為正類樣本的數目,NFN表示正類樣本被分為負類樣本的數目。
測試集的準確率達到90%,訓練集的準確率達到95%,見圖6。根據式(1)~式(4)可得,以下對6個識別詞的識別結果,每個識別詞的平均精確率為89.05%、平均召回率為89.17%和平均F1值為89.01%,見圖7。各項指標表明該分類器的識別率較高,聲學模型的性能較好,可以快速準確地識別語音[22]。
圖5 離線語音訓練過程
圖6 模型訓練和測試準確率
氛圍燈控制系統主要接受i.MX6識別的語音信號和車載CAN總線信號。氛圍燈控制程序流程如圖8所示。當系統接受到命令單詞后,語音信號首先被準確識別出,進而將信號傳遞給氛圍燈的控制MCU,MCU將信號判斷后再去控制LED驅動器,實現車載氛圍燈[23];同時當汽車行駛過程中發生故障或者出現超速行駛,故障診斷ECU和儀表顯示ECU將CAN總線數據通過OBD-II接口傳遞到CAN收發器,進而與MCU通信[24],該部分的組裝和測試需要試驗車,本文只探討理論研究的可行性。
圖8 氛圍燈控制程序流程圖
在i.MX6中搭建CNN神經網絡框架,通過PC訓練的聲學模型參數輸入到框架中,實現基于嵌入式平臺的聲學模型,即完成聲學模型的移植[25]。其次搭建語音識別測試裝置,實物裝置見圖9,包括麥克風、電源線、i.MX6、S32K144、顯示屏、RGB氛圍燈以及接插件若干。測試過程中,選取識別詞中“上”、“下”、“左”、“右”四個,每個識別詞在線測試20次,計算平均響應時間和平均準確率,并運用傳統語音識別方法與本文所用的深度學習方法進行對比,如表1所示。本文所述方法比HMM方法的響應時間平均縮短52.3%,識別準確率提升7.4%。當識別詞“上”被準確識別時,氛圍燈呈現出多色燈光流動變幻,見圖9。
本文基于深度學習算法設計了一款LED車載語音交互氛圍燈,并在嵌入式平臺上實現了語音識別與智能化控制。研究結果表明:與傳統車載氛圍燈相比,該系統可以替代氛圍燈的觸摸和機械操作,擴展了氛圍燈的操作方式;與傳統語音識別算法相比,該系統的深度學習算法解決了識別率低、響應速度慢等問題;與目前基于專用識別芯片的車載語音識別產品相比,該系統可以節約硬件或軟件成本。由此可見,該LED車載語音交互氛圍燈系統設計是一種有效的嵌入式離線語音識別方案,可以推廣至其他車載照明產品的智能設計中。