1 引言
從20世紀50年代開始對語音識別的研究開始,經過幾十年的發(fā)展已經達到一定的高度,有的已經從實驗室走向市場,如一些玩具、某些部門密碼語音輸入等。
隨著DSP和專用集成電路技術的發(fā)展,快速傅立葉變換以及近來嵌入式操作系統(tǒng)的研究,使得特定人識別尤其是計算量小的特定人識別成為可能。因此,對特定人語音識別技術在汽車控制上的應用的研究是很有前途的。
2 特定人語音識別的方法
目前,常用的說話人識別方法有模板匹配法、統(tǒng)計建模法、聯(lián)接主義法(即人工神經網絡實現(xiàn))。考慮到數(shù)據量、實時性以及識別率的問題,筆者采用基于矢量量化和隱馬爾可夫模型(HMM)相結合的方法。
說話人識別的系統(tǒng)主要由語音特征矢量提取單元(前端處理)、訓練單元、識別單元和后處理單元組成,其系統(tǒng)構成如圖1所示。
圖1 系統(tǒng)構成
由上圖也可以看出,每個司機在購買車后必須將自己的語音輸入系統(tǒng),也就是訓練過程,當然最好是在安靜、次數(shù)達到一定的數(shù)目。從此在以后駕駛過程中就可以利用這個系統(tǒng)了。
所謂預處理是指對語音信號的特殊處理:預加重,分幀處理。預加重的目的是提升高頻部分,使信號的頻譜變得平坦,以便于進行頻譜分析或聲道參數(shù)分析。用具有 6dB/倍頻程的提升高頻特性的預加重數(shù)字濾波器實現(xiàn)。雖然語音信號是非平穩(wěn)時變的,但是可以認為是局部短時平穩(wěn)。故語音信號分析常分段或分幀來處理。
2.1 語音特征矢量提取單元
說話人識別系統(tǒng)設計中的根本問題是如何從語音信號中提取表征人的基本特征。即語音特征矢量的提取是整個說話人識別系統(tǒng)的基礎,對說話人識別的錯誤拒絕率和錯誤接受率有著極其重要的影響。同語音識別不同,說話人識別利用的是語音信號中的說話人信息,而不考慮語音中的字詞意思,它強調說話人的個性。因此,單一的語音特征矢量很難提高識別率。該系統(tǒng)在說話人的識別中采用倒譜系數(shù)加基因周期參數(shù),而在對控制命令的語音識別中僅采用倒譜系數(shù)。其中,常用的倒譜系數(shù)有2 種,即LPC(線性預測系數(shù))和倒譜參數(shù)(LPCC),一種是基于Mel刻度的MFLL(頻率倒譜系數(shù))參數(shù)(Mel頻率譜系數(shù))。
對于LPCC參數(shù)的提取, 可先采用Durbin遞推算法、格型算法或者Schur遞推算法來求LPC系數(shù),然后求LPC參數(shù)。設第l幀語音的LPC系數(shù)為αn,則LPCC的參數(shù)為
1<n≤p
其中p為LPCC系數(shù)的階數(shù),k為LPCC系數(shù)的遞推次數(shù)。
進一步的研究發(fā)現(xiàn),引入一階和二階差分倒譜可以提高識別率。
對于MPCC參數(shù)的提取,若根據Mel曲線將語音信號頻譜分為K個頻帶,每個頻帶的能量為θ(Mk),則 MFCC參數(shù)為
1<n≤p
通過對LPCC和MFCC參數(shù)對識別率影響的實驗比較,筆者選取LPCC參數(shù)及其一階和二階差分倒譜稀疏作為特征參數(shù)。
基音周期估計的方法很多,主要有基于求短時自相關函數(shù)的算法、基于求短時平均幅度差函數(shù)(AMDF)的算法、基于同態(tài)信號處理和線性預測編碼的算法。筆者僅介紹基于求短時自相關函數(shù)的算法。
設Sw(n)是一段加窗語音信號,它的非零區(qū)間為0<n≤n-1。Sw(n)的自相關函數(shù)稱為語音信號的S(n)的短時自相關函數(shù),用Rw(l)表示,即
Rw(l)=
可知短時自相關函數(shù)在Rw(0)處最大,且在基音周期的各個整數(shù)倍點上有很大的峰值,選擇合適的窗函數(shù)(窗長為40ms的Hamming窗)與濾波器(帶寬為60~900Hz的帶通濾波器)后,只要找到自相關函數(shù)的第一最大峰值點的位置并計算它與零點的距離,便能估計出基音周期。
2.2 訓練單元
訓練單元的功能是把事先收集到的語音利用一定的算法為每一個待識別的說話人訓練出與之相匹配的參數(shù)。針對說話人識別在汽車應用中的不同的要求,訓練單元也分為2部分:對說話人識別的訓練和對待識別詞的訓練。
對于說話人識別部分的訓練, 針對說話人的特征進行訓練,為每個合法用戶建立一套或多套HMM模型,同時采用基于矢量量化(VQ)的方法,為每個合法用戶建立VQ碼本。VQ碼本的設計采用LBG算法,初始碼本的設置采用分裂法初始碼本。
第2 部分針對控制命令中用到的每個孤立的詞條建立多個訓練樣本,或稱為詞條樣本,估計出該詞條的HMM參數(shù)(一套或多套)。對一個HMM過程的完整的描述包括:2個模型參數(shù)N和M,3組概率度量A,B和π。為了方便起見,通常采用如下方式表示一個完整的模型:λ=(N,M,π,A,B),或者簡寫為:λ= (π,A,B)。而對于每一個詞條V的模型參數(shù),V=1~V,可以用Baum-Welch重估算法。
2.3 識別單元
識別單元的功能是利用經訓練已經獲得的HMM模型參數(shù) 和測得的說話人的基音周期在一定的判決條件下辨認出待識別的說話人并估計出待識別的控制命令詞串。針對HMM模型參數(shù)通常采用的判決條件是最大后驗概率,用Viterbi算法實現(xiàn)。
2.4 后處理單元
充分利用每個說話人的聲道參數(shù)和詞條中各狀態(tài)持續(xù)時間的概率分布來改進系統(tǒng)的識別率。
3 系統(tǒng)的實現(xiàn)
由于汽車的控制命令是有限的詞條和數(shù)字串的組合, 對這些語音命令的識別屬于特定人小詞匯量的連接詞的識別以及與文本有關的說話人確認,不論是從目前的DSP運算速度還是存儲空間來說,實時實現(xiàn)這些語音命令的識別都是完全可能的。
識別系統(tǒng)組成框圖如圖所示:在此系統(tǒng)中,對運算能力和存儲單元要求非常高的語音識別部分完全由DSP完成。
框圖中識別系統(tǒng)的功能是完成語音的輸入、A/D轉換及識別,系統(tǒng)中核心部分采用TMS320VC5410。其原因是它的運算速度和存儲空間都能滿足要求,同時它的一些并行運算硬件結構也非常適合語音識別的各種算法,程序和已經脫機訓練好的HMM參數(shù)表及相應的詞典存放在程序存儲器中,數(shù)據存儲器存放識別過程中的中間計算數(shù)據。A/D芯片采用TLC320AD50C, 里面含有A/D、D/A以及低通濾波器和采樣保持電路。模擬語音信號的輸入主要是通過傳聲器,保證語音門禁的安全性,轉換后的數(shù)字語音數(shù)據以同步串行通信方式傳送給DSP。如圖2。
圖2 識別系統(tǒng)的組成框圖
4 結束語
語音控制汽車是未來的一種趨勢。目前,將語音技術應用于汽車的產品只有在一些玩具中用到,由此可想利用語音技術進行汽車控制這一領域蘊涵著相當大的潛在市場。
而且,說話人識別技術已經發(fā)展到可以應用到實際的階段了,但目前對說話人識別的應用并不是很多。筆者嘗試提出一種比較容易實現(xiàn)的方案,將說話人識別技術應用到實際中。但在實際應用中,說話人識別系統(tǒng)都面臨一個共同的問題,即無法區(qū)分一個發(fā)音是現(xiàn)場發(fā)音還是錄音回放。針對該現(xiàn)象,筆者提出的說話人識別系統(tǒng)可以有效地防止這種情況發(fā)生。具體實現(xiàn)說話人識別系統(tǒng)時,可采用隨機或其它方法來生成提示文本。如隨機的數(shù)字串,以使假冒者無法事先錄音,增加駕駛的安全性。