蔣 泰, 張林軍
?
語音識別自適應算法在智能家居中的應用①
蔣 泰, 張林軍
(桂林電子科技大學計算機與信息安全學院, 桂林541004)
在基于語音識別的智能家居中, 用于訓練的語料庫不完備且應用場景復雜, 自然語言語音識別錯誤接受率遠遠高于小詞匯的語音識別的錯誤接受率. 作者在設計與實現基于自然語言的語音識別智能家居系統的過程中, 深入研究了MAP、MLLR算法在基于HMM聲學模型參數中的作用, 提出了一種綜合的自適應方法, 并基于開源的語音識別工具CMU SPHIN最終完整的實現了該系統, 結果表明所提出的自適應新算法可行有效, 較好改善了系統在不同場景中的性能.
語音識別; 自適應; MAP; MLLR; 智能家居; 開源工具
現代社會已經進入了高科技迅猛發展的信息時代, 隨著信息技術的飛速發展, 以及人們生活水平的提高, 智能家居開始走進普通家庭. 大眾接受智能家居的概念的同時也對智能家居提出了更高的要求. 加上國家政府大力推進城鎮化建設, 一些地產開發商需要更高標準的高智能家居設備和智慧社區方案來提高其產品的附加值以便提高其地產產品的競爭力. 如今, 家居的語音智能化控制已成為計算機、通信等行業競相研究的熱點[1].
訓練環境與識別環境存在大量差異是造成語音識別系統性能下降的主要原因之一. 說話人、環境和信道特征等不同所引起的語音信號的多變性、差異性, 一直是人們關注的重點和難點[2]. 如何使語音識別系統克服這種差異, 通過少量數據得到較高的性能十分重要. 自適應技術可以解決這個問題, 其主要研究的內容是通過對系統參數進行調整, 使系統更好地適應由麥克風、傳輸信道、環境噪音、說話人、文體和應用的上下文等引起的差異. 而基于模型層的自適應算法能充分利用有限的自適應數據通過對模型參數進行調整, 逐漸將模型參數變換到實際環境, 從而來提高語音識別系統的性能.
最大后驗概率(Maximum A Posteriori, MAP)算法和最大似然線性回歸(Maximum Likelyhood Linear Regression, MLLR)算法是基于模型層說話人自適應中的基本算法[3]. MAP有很好的漸進性,可以充分利用語音數據的細節信息. 它通過理論給出了結合先驗知識和自適應數據的最優解. 基于MAP的自適應方法認為模型參數是符合某種先驗分布的隨機變量, 將先驗知識和從自適應數據中得到的知識結合起來估計模型參數, 避免了自適應數據估計的錯誤. 該方法有很好的漸進性, 當自適應數據不斷增加時, 自適應效果將穩步提高. 但是算法收斂速度慢, 只能對有觀測數據的模型自適應, 無法處理沒有觀測值的模型. MLLR方法是通過一些線性變換來對初始模型進行自適應的. 這種方法的優點是比較簡單,而且自適應速度比較快. 即使自適應數據量不足, 方法也可以獲得較理想的效果. 由于自由參數少, 很難對每個模型精細描述, 而且比較難以引入先驗知識. 針對以隱馬爾可夫模型作為建?;A的聲學模型, 本文研究以相對較少自適應數據的情況下獲得較好性能的自適應方法. 為了提高語音識別的性能, 一般語音識別系統都綜合使用幾種自適應技術. 本文提出了一種綜合漸進自適應方法, 通過在漸進的 MAP算法中引入了一個簡化的MLLR模塊, 用來處理語音識別中訓練數據與實際應用場景不同的差異, 并且使用CMU SPHINX開源工具使其運用到智能家居領域, 最終使用較少的自適應數據取得了較好的應用效果.
本系統由軟件和硬件兩部分組成, 如圖1所示. 軟件部分又分為云端和嵌入式客戶端. 云端和客戶端各自集成了幾個主要模塊, 分別實現不同的功能.

圖1 系統架構模型
云端軟件運行在Linux上, 它包含聲學模型、語音模型、語料庫、CMU Sphinx工具包、Java虛擬機. 云端主要功能是接受客戶端發送的語音文件轉化成文本文件返回, 應用程序模塊全部使用Java開發, 調用CMU Sphinx提供的類庫. 主要功能包含語音識別算法和語義轉換模塊, 它被部署在Java虛擬機上. 語音識別算法的主要過程有: 語音輸入、預處理、特征提取、模型匹配、輸出結果. 首先必須使用CMU Sphinx的訓練工具以特定聲學模型為基礎對語料庫獲取匹配的MFCC特征數據, 然后使用MAP和MLLR自適應技術來改進原來的聲學模型. 本文主要討論以HMM為基礎的聲學模型使用MAP、MLLR對其參數進行自適應.
嵌入式客戶端軟件包含語音識別模塊和嵌入式硬件驅動模塊. 語音識別模塊功能包含三個方面: 獲取客戶語音并生產語音文件、發送語音文件到云端并接受返回的硬件原語文件、通過硬件原語文件來驅動外圍電路. 驅動模塊主要是控制外圍設備并對語音模塊提供服務支持.
基于MAP的自適應方法是基于最大后驗準則并通過引入先驗知識來求最大后驗概率[4], 進而提高自適應效果, 它與最大似然重估方法相對應叫做最大后驗概率重估方法[5]. 假設O ={1,2, …,r}是概率密度函數為() 的一系列觀察值, 是定義分布的參數集合. MAP可以看作是給定訓練數據序列, 估算的過程, 如下:
λs=argmax p(λ|O) (1)
利用貝葉斯準則(Bayes Rule), 其中(λ) 是HMM參數的先驗分布, 引入符合先驗分布(λ)的隨機變量, 可以得到:
λ=argmax()argmax()() (2)
需要強調的是先驗知識是MAP成功的關鍵. 對于具有高斯混合密度的CDHMM, 所有參數的先驗知識中, 由于在CDHMM參數中均值向量對識別結果的影響最大, 因此MAP一般只對均值重估.
假設觀察值χ1, χ2, …, χ3的均值未知, 且服從方差為2的高斯分布, 同時假定的共軛先驗分布與同分布, 且均值為, 方差是2. 經計算可得:
把式(3)經過符號替換后可以得到MAP均值重估公式, 即:
從式(4)可以看出,k與自適應數據成正比, 即MAP重估與自適應數據成正比且隨著自適應數據的增加而逐漸逼近最大似然估計(Maximum Likelihood, ML), 當自適應數據趨于無窮時, 用MAP 法所得的模型與用充分語料做ML訓練所得的模型基本相同[6]. 對于式(4)轉換改寫如下:
當HMM用在聲學建模時, 對較重要的參數進行自適應, 一般使用均值向量和協方差矩陣. 最大似然回歸(Maximum Likelyhood Linear Regression, MLLR)方法是使用最大似然(Maximum Likelyhood, ML)重估算法對自適應數據估算出一套轉移參數, 用轉移參數把SI系統參數轉換成自適應模型參數[7], 即
對于式(6)進行變換參數的估計, 應用到重新估計CDHMM模型的新均值, 可以用下面的公式表示:
其中為()維矩陣,ц,ц,…,ц是變換前的均值向量,為變換的偏移量,為自適應后的向量.
采用單一的MLLR轉換方法效果有限, 在采用多回歸類的情況下, 目標就是得到回歸類中所有元素共享的轉移矩s. 應用自適應數據的最大似然估計, 通過定義和全矩陣同樣的輔助函數, 經推導可得:
其中矩陣D是這樣定義的[8]:
現在定義兩個矩陣(2n×n)和(2n×1)和非零向量ωs:
ωs=[ω1,1,ωn,1,...,ω2,1,..,ωn,n+1]T(12)
可以得到
一般而言, MLLR自適應的速度較MAP而言要快, 尤其表現在自適應數據較少時, 但隨著數據增加, MAP的優勢會逐步突顯出來, 而MLLR在自適應數據達到一定數量時, 算法將趨于飽和. 本文在研究了二者的優缺點后, 提出了一種新的自適應方法, 即由簡化的自適應模塊MLLR和漸進的MAP自適應模塊組合而成[9]. 如圖2所示.
對于簡化的MLLR 自適應模塊, 主要使用當前的語句, 因為MLLR 方法中所有模型只使用了一個回歸類, 換句話說所有的模型的自適應數據都用來重估同一轉移矩陣, 這樣一來當前語句就可以滿足自適應的要求. 對于MAP模塊, 它的主要目的是消除音素層的差異. 為了能夠對每個音素的細微特點進行自適應, 同時考慮到其方法對自適應數據量需要比較大的特點, 在MAP 模塊中使用所有累計的自適應數據. 由于MAP 的自適應是在MLLR 的結果上進行, 為了解決計算所有樣本的參數計算量太大的問題, 在計算時, 必須充分利用上一次計算的一些中間值. 另外, 通過測試結果發現, 本文所提出的組合方法在經過很少幾次的組合漸進自適應后就有很好的自適應效果, 不必計算所有累計的樣本, 只需要計算最近的幾次的累計數據. 綜合的自適應策略如圖3所示.

圖2 自適應模塊

圖3 自適應策略
5.1 系統總體流程
系統分為嵌入式客戶端和云端, 如圖4所示.
5.2 嵌入式客戶端的實現
客戶端為ARM Cortex-A9架構處理器, 客戶端系統軟件用Android開發, 使用Android可以充分利用其框架進行藍牙、紅外、ZigBee擴展. 為了保證程序隨系統自動啟動, 必須包含一個擴展BroadcastReceiver組件的類用以捕獲ACTION_BOOT_COMPLETED這條廣播, 并在捕獲之后使用startService啟動程序的Service, 這樣可以使程序以常駐內存的服務一樣后臺運行. 當用戶觸發語音指令請求后, 程序調用組件MediaRecorder對象從MIC獲取聲源并轉換成wav文件, 然后通過TCP傳送wav文件給云端, 最后接受云端返回的JSON數據, 根據JSON數據結果操作設備或者傳感器.

圖4 系統流程圖
5.3 云端
云端服務器操作系統為Linux, 語音識別核心主要使用Java開發, 使用MUC SPHINX開源工具加載聲學、語音學模型和數據字典進行語音識別任務. 程序運行在Java VM上, 在指定范圍端口等待服務, 當接收到wav文件, 程序會調用MUC SPHINX加載相應模型數據進行語音解碼, 把結果傳遞給語義模塊進行分析最終產生硬件原語以JSON的格式返回給客戶端. 在現實應用中不可能收集所有情形下的語音數據, 并且場景數據越多識別系統越分散, 任一個具體場景下的識別工作不可能和預期非常匹配, 自適應技術在本系統中使用非常必要. 現重點對現有聲學模型進行自適應的改進進行說明.
(1) 創建語料庫包含兩個文件: arctic20.fileids、arctic20.transcription, 文件arctic20.fileids包含語音文件路徑, arctic20.transcription內容為文本句子對應的語音文件.
(2) 為適應語料庫里面的每一個句子錄制一個語音文件, 錄音文件的內容和命名必須同arctic20.transcription里的表示一致, 音頻文件采樣率為16KHz的16bit單聲道的wav格式.
(3) 從錄制的wav語音文件提取MFCC特征存儲在feat.params文件中, 使用SphinxTrain訓練工具自帶的bw程序累加feat.params文件中的統計數據.
(4) 執行命令行mllr_solve通過MFCC特征文件和聲學模型進行MLLR變換產生適應數據文件mllr_matrix.
(5) 執行命令行map_adapt 使用自適應數據更新模型參數.
云端主要代碼如下:
Configuration conf = new Configuration();//加載配置文件
String sModelDirection="resource:/edu/cmu/sphinx/models/Mandarin";
String sWavDirection="/com/ht/";
conf.setAcousticModelPath(sModelDirection);
conf.setAcousticModelPath("file:zh");
conf.setDictionaryPath(sModelDirection+"/cmudict-en-us.dict");
configuration.setLanguageModelPath(sModelDirection+"/en-us.lm.bin");
StreamSpeechRecognizer recognizer = new StreamSpeechRecognizer(conf);
while(true){
if (lsWavFile.size()>0)//接受到wav文件, 啟動解碼
{ InputStream stream=HtRecognizer.class.
getResourceAsStream(sWavDirection+lsWavFile.get(0));
String sWords="";
recognizer.startRecognition(stream);
SpeechResult result;
while ((result = recognizer.getResult()) != null) {
for (WordResult r : result.getWords()) sWords+=r;
if (sWords.length>0)//成功解碼, 返回客戶端 sendData(sWavDirection+lsWavFile.get(0),sWords);
lsWavFile.remove(0); }
}
recognizer.stopRecognition();
為了驗證自適應技術的有效性, 實驗使用自建語音數據庫. 該數據庫包含普通話語音以及少量的英文數字語音, 共4個說話人(女2個, 男2個), 且每個說話人包含810句錄音, 說話人年齡在25-35歲之間, 分別來自我國北方、中部和南方地區, 其中都帶有輕微的地方口音. 每人選取720句作為訓練語句, 剩下的190句為測試語句. 810句錄音內容由指定的150句常用的智慧家用語, 其余的從報紙和字典摘取360句和從網絡新聞中抽取的400句組成.

圖5 自適應模型
實驗結果如表1所示, “SI”列為初始的非特定人系統的性能, “SD”列為訓練語音庫所對應的特定人語音識別字錯誤率, “綜合”列為系統使用MLLR和MAP自適應技術后非特定的系統性能,1,2,3,4表示四個說話人.

表1 綜合實驗結果
不同的語音識別系統針對的應用場景不同, 所用的字典和語料庫也不同, 所關注的性能評測指標也有所取舍. 本文關心的是系統最終的文字識別率, 假設總文本字數為, 不正確的識別字數、沒識別出的字數、錯誤識別的字數, 則有字錯誤率公式:
從結果中可以清楚的看到, 使用綜合的自適應后的模型比SI模型字錯誤率有了很大的降低, 測試集降低了12.7%. 此外, 雖然MAP 和MLLR 有自身優點和缺點, 但是也有一定的互補性. 實驗過程表明: MAP和 MLLR自適應技術跟憑此使用的先后順序沒有關系, 綜合自適應技術對于提升系統性能都有較好體現.

表2 自適應實驗結果
如表2所示,表示男性,表示女性, 10句和15句表示從相應庫中隨機取10句, 15句. 隨著自適應數據的增加, MAP自適應效果較明顯, 不過在15句以后這種改善就不是很明顯了, 綜合的自適應方法不論是在自適應數據比較少的時候, 還是處在有噪聲的環境下都比原有的SI效果要好, 這說明在MLLR方法中引入MAP 方法對處理說話人差異和環境差異的系統中都取得了較好的效果.
本文設計并實現的基于自然語音的智能家居系統與傳統的語音識別的智能家居系統在語音識別技術方面有著較大的區別, 對系統在語音識別方面有較好的提升, 適合強健語音識別系統的要求.
1陳哲.智能家居語音控制系統的設計與實現[碩士學位論文].成都:電子科技大學,2013.
2李虎生,劉加,劉潤生.語音識別說話人自適應研究現狀及發展趨勢電子學報.電子學報,2003,31(1).
3 齊耀輝,潘復平,葛鳳培,顏永紅.鑒別性最大后驗概率聲學模型自適應.計算機應用,2014,34(1):265–269.
4 詹新明.基于神經網絡的語音識別研究[碩士學位論文].廣州:華南理工大學,2013.
5 Atal BS. Automatic recognition of speakers from their voices. Proc. IEEE. 1976, 64(4): 460–475
6王治鋒.基于多核融合和模型參數適應的非特定人語音情感識別研究[碩士學位論文].蘇州:江蘇大學,2012.
7 Imamura A. Speaker-adaptive HMM-based speech recognition with a stochastic speaker classifier. Proc. IEEE Int. Conf. Acoustic, Speech, Signal Processing. 1991. 841–844.
8 榮薇,等.基于改進LPCC和MFCC的漢語耳語音識別.計算機工程與應用,2007,43(30):213–216.
9 Digalakis VV, Neumeyer LG. Speaker adaption using combined transformation and Bayesian methods. IEEE Trans. on Speech and Audio Processing, 1996, 4(4): 294–300.
Speech Recognition Adaptive Algorithm in the Application of the Smart Home
JIANG Tai, ZHANG Lin-Jun
(School of Computer and Information Security, Guilin University of Electronic Technology, Guilin 541004, China)
In smart home based on speech recognition, the corpus used for training is not complete and the application scenario is complex. Besides, the false acceptance rate of natural language speech recognition is much higher than that of small vocabulary speech recognition. During the procedure of designing and trying to implement smart home system based on natural language speech recognition, the author makes an intensive study of the MAP, MLLR algorithm based on the role of HMM acoustic model parameters. This paper presents a comprehensive adaptive method, based on which the author completed the system by using open source tools CMU SPHIN. The experiment result shows that the presented new adaptive algorithm is feasible and effective, and makes the system performance better in different scenarios.
speech recognition; adaption; MAP; MLLR; smart home; open-source tools
2014年國家物聯網發展專項資金項目(工信部科函[2014]351號)
2016-05-17;
2016-06-27
[10.15888/j.cnki.csa.005591]