谷志偉 李漢峰
(廣西電網公司欽州供電局,廣西 欽州535000)
語音識別起始于20世紀50年代。隨著研究的深入和相關學科的發展,語音識別技術逐步從實驗室走向了現實應用。語言是人類交流的主要方式,而使機器能夠聽懂人類的語音,是當前的研究熱點和難點。語音識別是通過一定的技術將語音信號轉化為相應文本的技術[1-2]。語音識別主要包含3個主要部分:特征提取、算法匹配和模型訓練。圖1為語音識別的實現過程。
圖1 語音識別過程
變電站巡檢機器人目前已經在國內推廣和應用,為維護變電站的安全穩定運行做出了卓越貢獻。但是當前機器人的控制指令由主控室的后臺程序下達,工作人員無法在設備區直接操作機器人或者查詢狀態信息,并且后臺程序的專業性較強,操作人員需經嚴格的培訓來熟悉后臺程序,操作路徑相對復雜。語言作為人類特有的功能,不但是相互傳遞信息的主要手段,也是人們最理想的人機交互方式之一[3]。使用語音控制巡檢機器人進行常規操作、查詢相關信息,相對于后臺操作更加簡便,操作人員只要掌握相關指令,就能進行常規操作,方便機器人的日常應用和維護。變電站巡檢機器人平臺上搭建語音識別功能后,利用語音識別技術還可以協助變電站的無人值守,實現變電站的智能化和自動化管理。
本文的變電站機器人語音識別是基于改進的DTW算法,主要應用語音識別算法來進行人機交流,使機器人能夠聽懂經過訓練的口頭命令,并能夠按照命令進行相應的動作。主要實現過程是:外部語音命令通過巡檢機器人攜帶的拾音器或無線話筒進行聲音采集并傳送到系統內部,采集到的語音信號經過語音識別算法得到特征參數,進而識別出語音命令。
人耳對不同頻率的語音具有不同的感知能力,這是一種非線性的關系[4]。結合人耳的生理結構,運用對數關系來模擬人耳對不同頻率語音的感知特性,Davies和Mermelstein于1980年提出了Mel頻率(MFCC)的概念。Mel頻率與實際頻率的具體關系如式(1)所示。人耳的聽覺特性與 Mel頻率的增長一致。與實際頻率在1000Hz以下呈現線性分布,1000Hz以上呈現對數增長[5]。
MFCC是利用上述這種關系,計算出Hz頻率的頻譜特征。目前,MFCC已經成為語音識別的主流算法,并且Mel頻率與Hz頻率之間存在著非線性的對應關系,使得在頻率提高時MFCC計算精度下降。這就是現實中僅適用低頻的MFCC而舍棄高頻MFCC的原因。MFCC處理過程流程圖如圖2所示,計算MFCC參數主要有以下步驟:
(1)預加重:使信號的頻譜變得平坦;
(2)分幀:根據語音的短時平穩特性,語音以幀為單位進行處理;
(3)加窗:窗函數處理后可以減小吉布斯效應的影響;
(4)快速傅立葉變換(Fast Fourier Transformation,FFT):將時域信號轉化為頻域的頻譜;
(5)加三角窗濾波:濾波處理進而來模擬人耳的掩蔽效應;
(6)對數處理;
(7)離 散 余 弦 變 換 (Discrete Cosine Transformation,DCT):去除信號的相關性并進行降維處理;
(8)參數差分:提高系統識別性能。
圖2 MFCC過程圖(傅立葉變換)
采集到語音信號后,在進行分析時還需進行相關的預處理操作,目的是為了得到真實的語音信號。分析真實有效的語音信號才能使識別結果的可信度增強,否則識別結果的可信度會受到質疑。由于種種原因,采集到的待處理語音信號往往夾雜著噪聲,這些噪聲會扭曲語音的原本特征。因此,要進行語音信號的端點檢測。
如今比較常見的端點檢測有短時能量和短時過零率。單純的短時能量或短時過零率不能夠準確地檢測出語音信號。因此,本文采用短時能量和短時過零率相結合的方法進行端點檢測,來提取有效的語音信號,稱為雙門限端點檢測。
1.2.1 短時能量
某一語音時域信號為x,分幀后,第n幀信號為xn(m),則xn(m)的短時能量用En表示,計算公式如式(2)所示:
式中,N為幀長。
由此可見,En可以衡量信號幅度值的變化。然而,對于高電平來說,En比較敏感。為了減少敏感度,采用短時平均幅度函數 Mn,如式(3)所示:
其中,Mn也能表示語音信號能量大小,并且不會由于En的二次方造成較大反差[6-7]。
1.2.2 短時過零率
短時過零率是每幀語音信號穿過橫軸(零電平)的次數。對連續信號來說,“過零”即信號通過時間軸;而對于離散信號來說,若相鄰的采樣值符號改變則可認為信號穿過了橫軸,即“過零”。短時過零率就是樣本改變符號的次數。第n幀語音信號xn(m)(m∈[0,N-1],N 為幀長)的過零率如式(4)所示:
本文在使用短時過零率時,需要判斷前后2個采樣值的符號和2個采樣值的差值,如果前后2個采樣值符號不同并且差值大于設定的閾值,則認為短時過零率有意義。
判斷信號是有效的語音段還是靜音段時,首先要對數據的短時能量和過零率進行分析。首先為短時能量和過零率分別設定一個閾值,若當前數據的短時能量和過零率2個參數中,有一個超過相應閾值,則認為進入了語音段,并從這一段數據開始記錄;在對之后的采樣數據的檢測過程中,當發現2個參數的數值都回落到閾值以下之后,則認為當前語音段結束,并停止記錄數據。
動態時間規整(Dynamic Time Warping,DTW)是語音識別中經典的算法之一[8]。在小詞匯表孤立詞識別時與HMM算法性能相同[9]。由于HMM算法復雜、訓練過程繁瑣,而DTW算法簡單又有效,使得DTW算法在特定場合下的應用范圍超過了HMM算法。
端點檢測即確定語音的起始點和終結點貫穿于DTW算法始終。模板庫中的各個語音信號稱為參考模板,表示為R={R(1),R(2),…,R(m),…,R(M)},其中,m為參考模板語音信號的第m幀,m=1時表示語音幀開始,m=M時表示語音幀結束,即M模板語音的幀數,并且R(m)為第m幀的特征向量。待識別的語音信號稱為測試模板,表示為T={T(1),T(2),…,T(n),…,T(N)},n表示測試語音信號的第n幀,n=1時表示語音信號第一幀,n=N時表示語音最后一幀,即N為待識別語音的幀數,T(n)為第n幀的語音特征向量。為了比較它們之間的相似情況,可以計算它們之間的歐式距離,即D[T,R],距離越小代表2個信號的相似度越高。
傳統的DTW算法對路徑有一定的局限性,即在匹配過程中限定彎折率的變化區間為[0.5,2],因此很多點是達不到的。為了防止搜索范圍的擴大,可以對搜索范圍再加以限制[10]。在傳統的DTW算法中,需將測試模板中的每一幀與參考模板中的每一幀做相似度比較。即使將搜索路徑的彎折率進行了限定,運算量仍然很大,從而導致識別時間增加。
本文中,改進的算法搜索區域如圖3所示。某個待識別的語音,在樣本庫中匹配成功時的最佳路徑應該靠近圖3中矩形MBNE的對角線BE。因此,可以在對角線附近做上下限的限制,即在多邊形ABCDEF中計算測試幀與參考幀之間的相似度。其中,直線AF和直線CD方程如式(6)(7)所示,C為直線偏移對角線BE的程度,可以利用實驗樣本來確定C的取值。
圖3 DTW算法搜索區域
為了驗證算法的性能,本文設計了語音識別實驗。在matlab7.0下對改進的算法進行測試,設計了仿真實驗。在實驗中,使用MFCC倒譜系數作為樣本數據的特征,歐式距離作為相似度,距離越小相似度越高。
使用變電站巡檢機器人錄制了以下基本控制命令:前進、后退、向左轉彎、向右轉彎、溫度查詢、濕度查詢、天氣查詢、一鍵返回。將這些機器人控制指令作為測試樣本,來測試算法的性能。
針對采集的樣本進行分析,訓練和識別過程圖如圖4所示。其中,實線框中為訓練部分,虛線框中為識別部分。
圖4 語音處理過程圖
實驗過程中,本文算法步驟為:
Step1:樣本采集,組建樣本庫;
Step2:樣本預處理;
Step3:MFCC特征提取;
Step4:構建數學模型;
Step5:DTW算法識別,輸出識別結果。
圖5所示是語音“一鍵返回”的雙門限端點檢測結果,其中,圖中第一行為原始信號,第二行為短時能量,第三行為短時過零率。從圖中可以看出,語音段正確地提取出來了,這為后續特征提取提供了保障。表1是算法性能的對比情況。
圖5 雙門限端點檢測
表1 算法性能對比
從實驗結果看出,在非特定人語音識別系統中,與現有的DTW算法相比,本文的算法不論是在時間上還是系統識別率上都要優于現有算法。本文的算法由于提高了系統的運行速度和準確率,可以應用在變電站機器人上,并且能夠很好地滿足對變電站巡檢機器人的實時控制。
本文使用改進的DTW算法,提取語音信號的MFCC特征,實現了語音識別。實驗結果表明,該算法識別時間短,正確率高,算法性能穩定,魯棒性強。將該算法應用在變電站巡檢機器人上,能夠做到實時控制巡檢機器人的運動。通過人機交互方式,對機器人下發相關語音指令,讓機器人完成對應指令的操作,這種人機交互方式簡化了工作人員的工作流程,提高了工作人員的工作效率,真正做到了“說什么做什么”的效果。該算法的實現不但增加了變電站機器人的功能,還推進了變電站智能化管理的步伐,完全滿足該智能變電站推進無人值守的自動檢測識別要求。
[1]李書貞,施玉霞.基于語音指令的遠程控制機器人系統的設計與實現[J].微電腦應用,2008(11)
[2]胡亞洲,王新民,曹江濤.基于改進DTW的機器人語音指令識別系統研究[J].計算機技術與發展,2013(7)
[3]李麟.家用機器人語音識別及人機交互系統的研究[D].哈爾濱工業大學,2007
[4]韓一,王國胤,楊勇.基于 MFCC的語音情感識別[J].重慶郵電大學學報:自然科學版,2008(5)
[5]張晶,范明,馮文全,等.基于MFCC參數的說話人特征提取算法的改進[J].電聲技術,2009(9)
[6]趙力.語音信號處理[M].第2版.機械工業出版社,2009
[7]呂霄云,王宏霞.基于MFCC和短時能量混合的異常聲音識別算法[J].計算機應用,2010(3)
[8]胡金平,陳若珠,李戰明.語音識別中DTW改進算法的研究[J].微型機及應用,2011(3)
[9]朱淑琴.語音識別系統關鍵技術研究[D].西安電子科技大學,2004
[10]朱淑琴,趙瑛.DTW語音識別算法研究與分析[J].微計算機信息,2012(5)