曹晶晶,許潔萍,邵聖淇
(中國人民大學信息學院,北京100872)
(*通信作者電子郵箱xjieping@ruc.edu.cn)
目前關于噪聲魯棒性的語音識別技術研究可劃分為特征空間和模型空間兩個方面[1],特征空間的研究不對模型參數進行調整,而模型空間的研究通過調整模型參數從而增強魯棒性。
特征空間的研究從語音特征的角度出發,對語音特征進行增強即降低噪聲或是噪聲消減,特征映射技術[2-3]是為了降低噪聲,該技術主要研究兩類:一是帶噪聲特征到無噪聲特征的映射[2];二是頻域上,帶噪聲信號到無噪聲信號的映射[3]。噪聲消減技術是通過估計噪聲信號的頻域能量將噪聲信號從源信號中減去從而達到消除噪聲的目的[4],文獻[5]研究了對含噪音頻進行降低噪聲的方法,完成了在0 dB白噪聲、汽車噪聲、咖啡館噪聲下的語音識別研究,其識別詞錯率(Word Error Rate,WER)在汽車噪聲環境下表現最佳,為32.13%,但在白噪聲和咖啡館噪聲下識別 WER高達75.01%和56.37%,并且此種方法針對穩定噪聲,不適用于噪聲不穩定的情況。
對模型空間的研究是通過調整聲學模型的參數來整合噪聲的影響[1]。多類型訓練[6]是模型空間研究的一個常用方法,該方法基于多類噪聲音頻訓練聲學模型,但是由于訓練數據噪聲類型多,聲學模型的參數需要適應各類噪聲環境,導致在某些噪聲下性能可能下降。高斯混合模型 隱馬爾可夫模型(Gaussian Mixture Model-Hidden Markov Model,GMMHMM)[7]混合模型是語音識別的主導聲學模型[8],隨著深度學習的興起,深度神經網絡也被應用到聲學模型建模中[8-9],并取得了良好的成效。近年來特征空間和模型空間的研究都引入了深度神經網絡(Deep Neural Network,DNN),有學者提出混合模型,同時在特征空間和模型空間進行參數調整。文獻[10]從降低噪聲角度出發,提出了一個基于DNN的聯合訓練語音識別模型,前端使用DNN進行特征映射降低噪聲,后端使用深度神經網絡 隱馬爾可夫模型(DNN-HMM)作為聲學模型,將前端特征映射的DNN與后端聲學模型的DNN調參過程相結合,即識別的誤差會對特征映射部分DNN的參數產生影響,在訓練集含噪語音信噪比為10 dB~15 dB、測試集信噪比為5 dB~15 dB的實驗下取得了良好的成效,但對信噪比更小的情況下(如0 dB),沒有進行實驗研究。過往的研究[5]表明信噪比小、噪聲類型干擾大的情況下,降噪和消噪技術難以取得好效果。
環境噪聲由于產生場所或者干擾因素的不同有若干類別,比如咖啡館噪聲、辦公室噪聲、飛機噪聲等。不同類別的環境噪聲差異較大,對語音信號的干擾也有很大差別,環境噪聲分類的研究已取得良好的效果[11-12]。
本文提出了將環境噪聲作為語音識別上下文考慮的層級語音識別模型,將噪聲分類與語音識別相結合,探討了含噪語音分類對多噪聲環境語音識別的影響。模型選取有代表性的五類噪聲環境,旨在使含噪音頻由與其噪聲最相似的噪聲環境下的聲學模型進行識別,從而提高聲學模型對含噪音頻的適應度,提高識別準確率。
層級語音識別模型分為上下兩層,上層采用詞袋(Bag-of-Words,BOW)模型[13]和支持向量機(Support Vector Machine,SVM)[14]進行噪聲語音分類,下層采用深度神經網絡 隱馬爾可夫模型(DNN-HMM)作為各環境噪聲下的聲學模型。現有降噪方法在處理較穩定且類型單一的噪聲上有所改進,但在處理多類型噪聲上,易導致在某些噪聲環境下處理效果較差,本文模型避免了現有降噪方法在分離噪聲和語音上的問題,消除了特征空間研究中對噪聲穩定性的限制要求,從模型空間出發,不限制噪聲穩定性,既通過噪聲分類以尋找最相似噪聲環境解決了多類型訓練的弊端,又通過特定噪聲環境下聲學模型減少了含噪音頻與聲學模型的訓練數據的差異。在此基礎上,本文探討了在語音識別任務之前進行噪聲環境分類的有效性以及如何設置模型超參數以提高識別的準確率。
層級語音識別模型的結構如圖1所示。該模型旨在將環境噪聲作為語音上下文信息來輔助語音識別,針對不同類別的噪聲構建特定噪聲下的聲學模型,使得每類噪聲環境下的聲學模型的參數更適應該類噪聲。對于含噪語音,首先區分其噪聲所屬類別,再通過與該噪聲最為相似的噪聲類別下的聲學模型進行識別。

圖1 層級語音識別模型總框架Fig.1 General framework of hierarchical speech recognition model
環境噪聲與說話人語音的區別在于,說話人語音只有一個來源,而環境噪聲的聲音來源是多方的[11]。比如咖啡館的環境噪聲可能包含來自各個方向的客人的說話聲、人來回走動的聲音、杯子勺子碰撞的聲音、鍵盤敲擊聲等噪聲。噪聲包含元素復雜,因此,噪聲分類的基礎是更好地表示噪聲。
BOW模型是一種常見的通過碼本來表示文檔、圖像、音頻的方法,通過稀疏化特征從而更好地表示目標。它起初被用于文檔分類[13]中,基本思想是構建一個碼本,其中包含若干詞匯,將每個文檔看作碼本中詞匯的集合,通過詞匯的分布來對文檔進行分類。由于BOW模型的有效性,它在圖像和音頻的分類[15-16]中也得到廣泛應用。
本文將BOW模型應用于含噪語音分類模型中,訓練過程如圖2所示。首先對訓練集中的含噪音頻的梅爾頻率倒譜系數(Mel Frequency Cepstral Coefficients,MFCC)特征進行k-means聚類,形成k=N的碼本。接著對于每個含噪語音音頻,通過計算其每一幀的MFCC特征與碼本中單詞MFCC特征的距離來判斷該幀屬于哪一個單詞,統計音頻對應單詞的個數,從而形成這個音頻關于碼本的直方圖向量。這樣,每一個音頻都得到一個關于碼本的N維直方圖向量。用向量對〈直方圖向量,噪聲類別〉訓練SVM,從而得到含噪語音分類模型。

圖2 含噪語音分類模型的訓練Fig.2 Training of noisy speech classification model
本文使用的DNN-HMM聲學模型如圖3所示。
在DNN-HMM聲學模型中,HMM狀態的后驗概率由DNN產生[17]。DNN的輸入層為當前幀與前后5幀,共11幀的特征拼接。實驗中識別所用的特征均為40維的MFCC增強特征(Enhanced MFCC features,EMFCC)。EMFCC特征是對MFCC特征進行倒譜均值歸一化處理后,將當前幀的13維MFCC特征與前后3幀的13維MFCC進行拼接,再使用線性判別分析投射到40維并進行最大似然線性轉換后而得到,研究表明,使用相鄰語音幀的信息可顯著提高識別準確率[18];因此,實驗中DNN的輸入層節點個數為40×11=440個節點。
本文使用的數據集是基于清華大學發布的THCHS-30普通話語音數據集[12]構造的,數據集描述見表1。THCHS-30數據集提供了白噪聲、汽車噪聲、咖啡館噪聲三種較有代表性的噪聲,在本文實驗中,為了進一步擴充代表性噪聲類別,在這三種噪聲的基礎上增加了飛機噪聲(噪聲來源:真實飛機噪聲)。另外出于驗證模型泛化性的考慮,選取了超市噪聲(噪 聲 來 源:http://sc.chinaz.com/yinxiao/161122278270.htm)作為測試噪聲。

圖3 DNN-HMM聲學模型Fig.3 DNN-HMM acoustic model

表1 實驗所用數據集Tab.1 Dataset used in experiment
實驗數據集分為訓練集和測試集兩部分。訓練集包括6種訓練語料:train_clean即為THCHS-3數據集中提供的無噪聲訓練集;train_white、train_car、train_cafe、train_plane 分別由該無噪聲訓練集與白噪聲、汽車噪聲、咖啡館噪聲和飛機噪聲按照信噪比為零進行混合得到;最后的train_mix5訓練集中的每個音頻則是隨機選擇不混合噪聲或是與上述4種噪聲中的任意一種按照信噪比為零進行混合得到。測試集包含兩類語料:test_mix5是將THCHS-30數據集中的無噪聲測試集每個音頻隨機選擇不混合噪聲或是與上述4種噪聲中的任意一種按照信噪比為零進行混合;test_market則是將該無噪聲測試集每個音頻與超市噪聲按照信噪比為零進行混合得到。訓練集音頻包含10 000個句子,時長約25 h,測試集音頻包含2495個句子,時長約 6.25 h。
詞袋模型中碼本包含的單詞數量k直接影響了表達能力,從而影響分類準確率。為了達到較好的分類效果,k取值通常趨于龐大,同時k值的設置通常隨著目標類別的增加而加大。
為了研究k的取值對本文提出的含噪語音分類模型的分類準確率的影響,分別從 train_white、train_car、train_cafe、train_plane、train_clean中選取前1000個含噪語音,組成包含5000個含噪語音的訓練集。考慮到本文目標類別僅設置了5類,將測試 k 值分別設置為 8、16、32、64、128、256、512,按照圖2所示的訓練過程分別訓練這7種k取值下的含噪語音分類模型。
上述5個數據集在各個k值的含噪語音分類模型下的分類準確率以及5類噪聲環境(包括4類噪聲環境和無噪聲情況)下語音在各個k值的含噪語音分類模型下的平均分類準確率如圖4所示。圖4結果顯示:1)除無噪聲環境以外的其他4類噪聲環境分類準確率僅在k=8時差距較大,隨著k值增加差距縮小,在k=64時達到最高,同時趨于平穩。2)無噪聲語音的分類準確率明顯低于其他4類噪聲環境,當k=128時,分類準確率比其他4類的平均低了15.3%,而當k增加到256、512時,準確率略微回升。

圖4 分類準確率隨k值變化Fig.4 Change of classification accuracy with k value
通過分析噪聲分類準確率混淆矩陣(如表2所示),發現無噪聲語音易被誤分到咖啡館噪聲和汽車噪聲中,這種現象可能是由于無噪聲音頻不具備明顯特征導致,混有其他噪聲的音頻既具有噪聲的顯著特征,也具有音頻本身的特征,而無噪聲音頻僅具有音頻本身的特征,導致其易于與含噪音頻發生混淆。

表2 k=128時含噪語音分類準確率混淆矩陣 %Tab.2 Obfuscation matrix of noisy speech classification accuracy with k=128 %
本文選取白噪聲、汽車噪聲、咖啡館噪聲、飛機噪聲和無噪聲這五種較有代表性的噪聲環境進行實驗,基于從train_white、train_car、train_cafe、train_plane、train_clean 訓練集中提取的EMFCC特征分別訓練這五類噪聲環境下的DNN-HMM聲學模型。
出于最優化DNN-HMM聲學模型識別準確率的考慮,本文對DNN的超參數進行實驗,設立了若干組DNN關于隱層數和節點數的對比實驗。實驗在每類噪聲環境下各訓練了16個DNN-HMM聲學模型,聲學模型中DNN的隱層個數分別設置為2至9,隱層節點個數分別設置為1024和2048。由于2.2節實驗可知,含噪語音分類模型在碼本單詞量k為64時分類準確率最高,因此本節層級語音識別模型中上層含噪語音分類模型的k值取64。
實驗基于test_mix5數據集對16組DNN-HMM聲學模型進行測試,結果如圖5所示。由圖5可以看出,通常情況下,DNN-HMM聲學模型中DNN的隱層個數相同時,隱層節點個數為2048時WER更低,說明一定范圍下提升隱層節點個數有助于提高識別準確率;同時,WER在DNN隱層為5層時達到最低,在隱層個數進一步增加時,WER急劇增加,說明過多的隱層易導致過擬合,削弱模型在測試集上的表現。

圖5 詞錯率隨隱層個數和節點個數的變化Fig.5 Change of WER with numbers of hidden layers and nodes
一般認為通過增加隱層節點個數來降低誤差,其訓練效果較增加隱層個數好。因此,在隱層個數為5時,增加一組節點個數為4096的實驗,在隱層個數為5,隱層節點個數分別為1024、2048和4 096 時,詞錯率分別為 48,9%、48.47%和48.38%,由此可見,在節點個數繼續提升的情況下,識別誤差可達到更低。因而進一步對這三種隱層節點個數下的DNN-HMM模型的訓練耗時進行了統計,在節點個數為1024、2048、4096下模型的訓練總時長分別為123 277 s、328 747 s、1112785 s。
以節點個數為1024時的WER和耗時作為基準,得到隱層個數為5,節點個數分別為1024、2048、4096的DNN-HMM聲學模型的識別WER和模型耗時的變化趨勢如圖6所示。由圖6所示,節點個數從2048增加到4096,WER降低甚小,但是模型訓練耗時卻顯著增加。因此,綜合WER和模型訓練耗時,本文實驗中,層級語音識別模型DNN-HMM聲學模型在DNN隱層個數為5、隱層節點個數為2 048時模型表現最優。

圖6 節點個數對WER和耗時的影響Fig.6 Influence of node number on WER and time consuming
層級語音識別模型的實驗數據來源于THCHS-30數據集,實驗結果表明層級語音識別模型在白噪聲和汽車噪聲環境下,識別誤差率較文獻[12]模型相對降低了14.0%和0.78%,說明含噪語音通過本文提出的層級語音識別模型能得到更好的處理。
實驗對層級語音識別模型的兩層結構進行研究,分別研究了含噪語音分類模型的優化和特定噪聲環境下聲學模型的優化,結果顯示含噪語音分類模型最優分類準確率可達到97.28%,實現了含噪語音的正確噪聲環境分類,而層級語音識別模型在多個噪聲環境下的語音中的識別表現也明顯優于常見的多類型訓練方案,證明了噪聲環境分類對語音識別任務準確率提高的有效性和可行性。
在此基礎上,對比實驗研究進一步驗證了本文模型的可行性。
1)與GMM-HMM比較。
作為比較,實驗將基于train_mix5數據集提取出EMFCC特征多類型訓練[14]得到的GMM-HMM聲學模型作為基準模型,test_mix5數據集在基準模型上的WER為60.79%,本文提出的層級語音識別模型較該基準模型識別誤差率相對降低20.3% 。
2)與無噪聲分類比較。
為了進一步說明噪聲環境分類對含噪語音識別任務的有效性,基于train_mix5數據集提取的EMFCC特征訓練得到一個DNN隱層個數為5、節點個數為2048的DNN-HMM模型,test_mix5在該模型上的WER為51.50%,層級語音模型較該模型的WER相對降低了5.9%,說明噪聲環境分類可有效提高含噪語音的識別準確率。
3)泛化性實驗比較。
本文提出的層級語音識別模型考慮了五類較有代表性的噪聲環境。實際應用中,當處理一類新噪聲下的含噪語音時,該模型會將其劃分到五類噪聲環境中與其最相似的一類噪聲環境中,以此來減小模型訓練數據與測試數據的差異,使得模型更適應數據,從而提高識別準確率。
為了驗證本文所提出的層級語音識別模型的現實可行性,實驗以含超市噪聲的test_market數據集作為測試集,從分析上發現超市噪聲對語音的干擾程度很大。實驗研究比較了層級語音識別模型與基準模型對超市語音識別的結果,層級語音識別模型下的WER較基準模型相對降低了2.12%。
本文提出了由含噪語音分類模型和特定噪聲下聲學模型這兩層構成的層級語音識別模型,避免了特征空間去噪研究對含噪語音噪聲穩定性的限制,對噪聲本身不作要求,通過噪聲環境分類和特定環境下聲學模型減小了含噪語音與聲學模型訓練集的差異,解決了多類型訓練[14]導致的某類噪聲下語音識別準確率降低的問題,更進一步通過神經網絡提高了識別準確率。
在未知噪聲(超市噪聲)上對層級語音識別模型進行驗證,結果顯示在層級語音識別模型的WER較基準模型相對有一定的降低。但進一步的實驗研究發現:該超市噪聲的數據在多環境訓練得到的DNN-HMM聲學模型下的WER略微優于本文的層級語音識別模型。因此,為了進一步優化本文的層級語音識別模型,考慮在后續實驗中設立噪聲環境分類閾值,來劃分最相似噪聲環境。模型結構上在五類噪聲環境下聲學模型的基礎上,增加一類由五種噪聲環境下數據進行多環境訓練得到的聲學模型。在含噪語音分類模型中,只有當某混噪語音的噪音類型與一類噪聲的相似度大于閾值時,才由該類噪聲下的聲學模型對其進行識別,否則將其歸類到多類型訓練得到的聲學模型進行識別。
信噪比為零情況下,是較強噪聲干擾下的語音識別任務。本文僅針對信噪比為零下的含噪語音進行研究,實驗結果表明層級語音識別模型在信噪比為零下的含噪語音識別任務中較常見多類型訓練方法取得了較大改進;但隨著信噪比進一步降低,層級語音識別模型的兩層結構含噪語音分類模型和特定噪聲環境下聲學模型的反應相異,理論上噪聲干擾越大,分類模型準確率越好,但聲學模型的識別準確率則會有較大程度的降低,因此對信噪比更低情況下的語音識別任務,有待進一步的實驗研究。
綜上所述,在現階段,本文提出的層級語音識別模型可在已知多噪聲環境下的語音識別任務中取得較好表現,并不受限于干擾噪聲的穩定性。在后續的研究中,我們會根據上述實驗計劃和改進策略對模型進行進一步的實驗優化,使其能夠在未知噪聲環境下和更低信噪比下的語音識別任務中取得更好的表現。