?

基于MatlabGUI的語音感知照明系統仿真設計

2018-06-11 11:05劉鵬輝房建東
電子設計工程 2018年11期
關鍵詞:音頻文件特征參數語音

劉鵬輝,房建東

(內蒙古工業大學內蒙古呼和浩特010080)

近年來,語音識別理論研究飛速發展,其相應的現實應用大大提高了人們的工作效率和生活質量[1]。語音技術的廣泛應用是移動互聯網條件下各種平臺的核心應用,在微信公開平臺催生的語音生態圈情況下,抓住這一機遇,以用戶需求為導向,將語音應用在更加廣闊的應用中,催生更多更好的應用場景。語音模式識別分為兩種情況,一種是實時語義轉化為文字,另一種是將語音命令識別出來,去執行指令內容,控制關聯載體。本文以語音感知識別為理論基礎,通過與模式識別相結合的方式將其應用到家居照明系統控制領域,實現對特定語音信號自動識別,并且自動關聯照明模擬圖像效果,通過仿真實驗論證了方法的可靠性及正確性。

語音識別算法有很多種,DTW是一種小詞匯量,孤立詞語音識別的相對成熟,它是把時間規整和間距量計算連接在一起的非線性動態規劃算法,相對比較簡單而且有效[2]。本文以語音感知識別為基礎,通過與模式識別相結合的方式將其應用到家居照明的模擬控制領域,實現對語音信號進行識別并自動控制照明系統,具有一定的使用價值。

1 仿真界面的設計與實現

1.1 GUI設計方法

Matlab GUI界面的設計方法有兩種,一是直接編寫.m文件來開發整個GUI;二是通過Matlab圖形用戶界面開發環境duide命令來形成相應文件。guide為用戶提供了一個方便高效的集成環境,使用guide創建GUI時,可以將設計好的GUI界面保存為一個fig資源文件,同時自動生成對應的.m文件。該.m文件包含了GUI的初始化代碼和組建界面布局的控制代碼。由于這種方法比較直觀,且在.m文件的管理和程序代碼的修改上也比較方便[3],因此本文采用第二種方式完成界面設計。

1.2 仿真界面的設計

本文以Matlab2014a作為實驗環境,設計圖形用戶界面GUI,可以實現語音信號的讀取、MFCC特征參數的提取、音頻文件的播放、模擬照明等通用功能,界面美觀,易于拓展,可以作為語音感知的照明控制系統的初始工具。

GUI設計模塊分為信號顯示模塊、操作流程控制面板模塊、識別結果輸出模塊、模擬燈光展示平臺模塊、退出模塊等,用于實現對語音信號的顯示、處理、識別、操作及說明等功能。這些操作分別通過文件、錯誤提醒的方式進行顯示,同時給出下一步該操作的提醒。通過對語音庫及特征參數的提取來建立已知知識庫(也稱為參考模板),通過選擇音頻文件和播放音頻文件來控制音頻信號的獲??;通過文本輸出和模擬燈光顯示以及播放音頻文件的操作來執行模式匹配,進而驗證其識別的準確性。

基于以上功能,設計Matlab GUI軟件界面架構圖如圖1所示。

圖1 軟件界面設計架構圖

2 語音感知識別組成

語音識別就是讓機器通過識別和理解過程把語音信號轉變為相應的文本或命令的高技術,也就是讓機器聽懂人類的語音[4]。語音識別的原理框圖如圖2所示。

圖2 語音識別原理框圖

2.1 模板庫的建立

將提取的語音特征序列經過特定訓練產生語音參考模板,形成供識別的參考模型庫;語音識別包括對聲音的起始點、結束點判斷和處理,對一些控制命令語義的理解。在整個系統開發中,語音識別是最關鍵的,需要建立模板庫。語音庫的建立是在實驗室安靜環境下,分別請2名同學在一定時間內錄制‘離家模式'、‘睡覺模式'、‘開客廳燈'、‘開臥室燈'、‘關客廳燈'、‘關臥室燈'6種語音。目前每種語音進行6次錄制,其中5次用來訓練,1次用來測試,即構成了60條的語音信號的語音庫,由于可用的語音信息只占整個語音信號的一部分,所以需要對60條語音遍歷進行預處理、MFCC特征提取、訓練,從而構成語音庫。這樣可以提高識別率和識別速率。

2.2 預處理

由于原始語音信號一般不能滿足實際需要,處理起來很復雜或者根本無法處理,所以在進行語音識別之前都要對原始語音信號進行預處理[5]。預處理是通過一些環節得到有用的語音信號,例如預加重、加窗分幀、端點檢測等;

1)預加重:預加重是通過提升語音的高頻部分,將其進行加重,增加語音高頻分辨率。具體是將語音信號通過一階濾波器實現,本文采用傳遞函數為H(z)=1-0.975z-1的一階FIR高通數字濾波器來實現預加重。

2)加窗分幀:語音信號可認為是短時平穩的,所以需要將其作分幀處理。本文采取漢明窗對語音信號進行分幀。

3)端點檢測:端點檢測就是找到語音信號的起點與終點,減少真實數據的處理量,縮短處理時間,提高識別效率。本文采用基于特征的雙門限檢測法,即利用語音信號的短時能量與短時過零率聯合檢測。在Matlab中對語音“離家模式”端點檢測進行繪制[6],結果如圖3所示。

圖3 截取真正的語音信號

2.3 特征參數提取

特征提取是從有用的語音信號中提取出隨時間變化的特征序列來表征語音信號。本文選擇Mel頻率倒譜系數(MFCC)作為其特征參數進行訓練與識別。因為MFCC參數比較充分的利用人耳這種特殊的感知特性提取語音信號的特征參數,并且有較高的識別率[7]。

Mel頻率倒譜系數(MFCC)考慮到了人類的聽覺特征,先將線性頻譜映射到基于聽覺感知的Mel非線性頻譜上,然后再轉換到倒譜上[8]。提取MFCC的過程[8]:

1)對原始語音信號進行預加重、分幀、加窗;

2)對每一幀短時信號,通過FFT變換得到對應的頻譜;

3)對每一幀的頻譜分別通過24階Mel濾波器組得到Mel頻譜;

4)計算每個濾波器組輸出的對數能量;

5)對Mel頻譜進行倒譜計算,具體是:取對數,做逆變換,一般是通過DCT離散余弦變換,取DCT后的第二個到第13個系數作為MFCC,獲得特征系數MFCC。具體流程圖如圖4所示。

圖4 MFCC特征向量提取流程

MFCC模仿了人耳特殊的非線性感知特性參數,它與線性頻率的轉換關系為[9]:

本文采用的是12階標準MFCC參數作為特征參數。

在構建完成語音庫后,對每一個語音提取MFCC特征參數,然后進行訓練,訓練過程中,將MFCC特征向量存入S.mat中,方便進行匹配。

2.4 模板匹配

語音識別過程實際上是一個模式匹配的過程。模式匹配是指在識別時將未知的語音特征序列同參考模板庫進行匹配和比較,計算出它們之間的匹配程度,具體算法見章節3。

3 軟件算法實現

3.1 算法思想

軟件算法主要采用動態時間規整DTW算法,實現的功能有原始語音數據的提取、預處理、特征參數提取、訓練以及語音識別,軟件算法設計架構圖如圖5所示。

圖5 軟件算法設計架構圖

為匹配之前錄制好的60條種訓練集的MFCC特征向量,我們采用DTW算法進行匹配,DTW是基于動態規劃(DP)的算法來實現的,成功解決了發音長短不一的問題[10-11]。DTW使用所有這些相似點之間的距離的和,稱之為歸整路徑距離來衡量兩個時間序列之間的相似性,DTW算法的訓練中幾乎不需要額外的計算[12]。DTW算法要求參考模板與測試模板采用相同類型的特征向量、相同的幀長、相同的窗函數和相同的幀移[13]。

3.2 模板匹配

為了將兩條語音序列匹配,需要計算兩條語音序列中各幀的匹配程度[14]。參考模板表示為{R(1),R(m),…,R(M)} ,測試模板表示為T(1),T(n),…,{T(N)}(n,m表示語音幀的時序標號,n=m=1表示起始語音幀,n=N,m=M表示終止語音幀),參考模板與測試模板均為提取的MFCC特征參數。為了比較它們的相似情況,計算它們之間的歐氏距離,即d[(T,R)],距離越小代表二者相似度越高。

為了得到最小匹配路徑,通常采用動態規劃方法[15]。在傳統的DTW算法中,需將測試模板中的每一幀與參考模板中的每一幀作相似度比較[16]。這有一定的局限性,需要對其加以限制,將其路徑范圍彎折率的變化區間設定在[0.5,2]。

即如果路徑已經通過了格點(ni,mi),那么下一個通過的格點(ni+1,mi+1)可能是下列3種情況:

即搜索路徑的方法如下:搜索從(ni,mi)點出發到(N,M)結束,可以展開若干條滿足公式(2)的路徑,假設可計算每條路徑達到(N,M)點時的總的累積距離,具有最小累積距離者即為最佳路徑。最佳路徑對應的模板記為識別結果。累計距離計算公式為:

經過對路徑進行約束后,匹配范圍進行了縮小,減少了一些不必要的計算量,提高了識別效率與縮短了識別時間。

4 實驗結果分析與模擬實現

本文基于2名同學、6種不同語義內容作了識別實驗。在語音庫的建立一節中已經表明:實驗所需樣本共72個,其中60個為參考模板存入模板庫,12個樣本作為測試用。實驗結果顯示可以正確識別語音信號,并且有正確的關聯輸出。

對于不同的語音信號可以控制不同的模擬燈光狀態,可以通過點擊輸出識別結果命令按鈕可以獲取識別結果,并執行指定的控制模擬操作。

本文使用的模擬燈光具體操作表現為:睡覺模式時,客廳燈、臥室燈都成紅色;離家模式時,客廳燈、臥室都成黑色;開客廳燈,表現為藍色;關客廳燈,表現為白色;開臥室燈,表現為綠色;關臥室燈,表現為黃色。語音識別完成后,需要對模擬燈光進行關聯輸出,通過對語音信號類別進行對應來得到相應的已知語義,進而對應相應的模擬燈。

在打開該程序所在的Matlab程序后,打開EmotionRec.m文件,在此.m文件下點擊運行,會出現如圖1顯示的界面。然后就可以在這個界面上完成所有用戶想要完成的動作了。首先訓練庫文件,點擊載入語音庫按鈕后,選擇語音庫所在的文件路徑;點擊訓練語音按鈕,系統將會遍歷庫中所有的.wav文件,并從每一個語音的起始到結束提取特征向量,訓練完成后構建成語音庫;用戶可以點擊待測音頻文件選擇需要識別的語音文件,點擊完成后,界面中會出現對應的音頻原始信號圖;點擊識別結果,模擬燈光會執行相應的動作,同時輸出文本框顯示識別出來的對應文字。點擊播放音頻文件,會播放對應的音頻。點擊退出系統做出判斷后會關閉界面。

圖6與圖7是訓練過程界面顯示圖與識別完成結果顯示圖。

圖6 訓練過程界面顯示圖

圖7 識別完成結果顯示圖

5 結論

本文主要介紹了處理語音信號的前期步驟,并且利用MatlabGUI開發平臺,設計開發了語音識別控制照明系統一體化平臺,實現了語音識別的集成化、可視化、交互式的功能,同時實現了DTW算法的改進。目前平臺上已經集成了Matlab語音處理工具包中的部分算法以及模擬燈光顯示,結果可以直觀地幫助用戶方便快捷的實現語音識別的操作,同時使用文字輸出、模擬燈光的輸出、語音播放待識別語音的方法高效地判斷語音識別的正確性。

猜你喜歡
音頻文件特征參數語音
故障診斷中信號特征參數擇取方法
基于特征參數化的木工CAD/CAM系統
魔力語音
基于MATLAB的語音信號處理
基于MQ3與MP3的價廉物美的酒駕語音提醒器
對方正在輸入……
基于PSO-VMD的齒輪特征參數提取方法研究
基于Android手機的音頻文件取證技術研究
提取APP中的音頻文件
統計特征參數及多分類SVM的局部放電類型識別
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合