李 臻, 朱哲慧, 張立軍, 何志祝, 宋正河, 朱忠祥
(1.中國農業大學機械與農業工程國家級實驗教學示范中心,北京100083;2.同濟大學汽車學院,上海201804)
語音交互日益成為人機交互的主流途徑,在智能家居、智能汽車座艙等領域應用日益深入。車載場景下,語音交互與觸摸、按鍵等交互方式相比,具有更加自然、直接優勢,并且能夠抑制駕駛員注意力的分散。此外,語音交互是扁平化的,使信息本身作為核心凸顯出來,增加駕駛的安全性和便捷性[1]。因此,其作為智能車載系統交互方式之一,具備良好的發展前景。
隨著語音識別技術的快速發展,目前的語音系統基本可實現在安靜室內環境中準確識別出語音內容,但汽車車廂內的語音交互質量易受車輛多源性和時變性噪聲的干擾[2],導致語音識別準確率下降,用戶體驗受損。此外,汽車產業共享化趨勢使得用戶具有多源性特征,聲源的多樣化直接導致車載語音交互的適應性較差[3]。雖然機器學習的發展已經很大程度提升了語音識別的性能,但依然面臨環境噪聲、說話者口音、發音風格多變等諸多挑戰[4],在很大程度上影響了語音識別系統的實際應用進程。
本文以車載環境為研究場景,針對目前車載語音識別系統在環境噪聲、說話者口音、發音風格多變等應用場景中適應性較差的問題,從典型車用場景輸入語音信號的特征提取、4種主流語音識別算法模型的部署、算法的效果分析與評價方面展開研究,并基于以上研究內容提出了合理的算法優化建議,為增強模型算法的穩健性提供了實際測試結果依據。
語音識別需首先對語音信號進行特征提取及分析處理,得到其本質參數,并據此設計出表現良好的語音識別算法。因此,本文基于MATLAB對測試音頻(采樣頻率:16 kHz;音頻內容:“播放音樂”;錄制環境:安靜室內)進行時域以及頻域特征提取,并采用雙門限法實現語音端點檢測。
對于信號{x(n)},短時能量的定義如下:
式中:n為離散信號值的編號;m為加窗運算時的積分變量;w(n)為窗函數;N1為窗函數長度。
短時平均過零率的計算公式,

基于以上計算原理,對測試音頻進行時域分析,繪制其短時能量譜圖和短時平均過零率圖。對語音信號先進行分幀加窗處理,選擇窗長為480,幀移為240的漢明窗函數,可獲得較為平滑且包含細節信息的曲線。對語音信號進行端點檢測,用紅色直線繪制出語音信號開始及結束位置,如圖1所示。

圖1 測試音頻時域特性圖及端點檢測示意圖
綜合考慮測試音頻的時域及頻域信息,繪制圖2所示的聲譜圖和Mel頻譜圖。Mel頻譜圖將語音信號的頻率轉換到Mel頻率標度,


圖2 測試音頻聲譜圖及Mel頻譜圖對比
結合Mel頻率標度轉換原理,將測試音頻的聲譜圖和Mel頻譜圖進行對比??梢钥闯觯皖l信號尺度被放大,該特性與人耳對低頻聲音更敏感的原理具有一致性,因此多種語音識別模型算法均采用MFCC或Mel濾波器組輸出能量作為前端語音信號特征[5-7]。
運行測試音頻MFCC提取程序,將窗函數大小設為20 ms,即每幀長度為20 ms,共獲得1 016幀信號MFCC。預先設定MFCC維度為12,即每幀語音信號具有12個梅爾倒譜系數,組合為1 016×12個特征參數。選取測試音頻第50幀的12個特征參數進行展示,如表1所示。

表1 第50幀的12維MFCC特征
分別選取基于全卷積網絡(科大訊飛DFCNN模型)、基于前饋神經網絡(阿里云DFSMN模型)、基于LSTM網絡(百度云Deep Peak2模型)及基于雙向循環網絡(百度DeepSpeech2模型)4種主流算法模型。
科大訊飛DFCNN模型、阿里云DFSMN模型及百度云Deep Peak2模型均屬于云端部署模型,以WebSocket API方式向客戶端提供可開發接口。科大訊飛實時語音識別模型接口程序流程圖如圖3所示。

圖3 科大訊飛模型接口程序流程圖
該接口要求音頻的采樣頻率為16 KB或8 KB,音頻格式為pcm或mp3。本文使用音頻處理軟件Adobe Audition,將音頻修改為16 KB采樣頻率、16位采樣精度的pcm wave格式。將測試音頻輸入模型進行驗證,得到基于詞的正確識別結果,識別結果以json格式返回客戶端。在程序優化過程中,將元組“w”類內容進行拼接,即基于詞進行返回結果解析,得到最終完整的識別結果、程序修改結果以及最終返回的識別文本。
同樣,阿里云和百度云的實時語音識別模型接口均為基于WebSocket協議的WebAPI,本文選擇基于Win10和python3.7的模型demo進行本地部署,根據接口對音頻格式的要求進行音頻格式規范化處理,借助Adobe Audition軟件完成部署。
百度DeepSpeech2模型則為基于Linux系統的PaddlePaddle平臺的語音識別模型。因此在Win10系統上安裝Linux虛擬機,利用Virtual box虛擬機安裝助手安裝Ubuntu18.04桌面系統,基于此進行模型部署。其安裝部署的完整過程如圖4所示。

圖4 Deep Speech2模型完整安裝部署過程
構建3種不同的模型測試環境,圖5所示為實際測試場景圖。

圖5 真實場景測試圖
(1)測試環境與語料。
場景1噪音場景。噪音場景數據包括人工合成和真實錄制音頻。人工合成噪音場景測試語料為信噪比分布在2~8 dB的“播放音樂”指令,指令基于音頻混合函數,在MATLAB平臺獲取。真實錄制噪音場景測試語料為依據智能車載系統基本功能需求[8]設計的小型語料集,語料內容如表2所示。音頻由智能手機在出租車上錄制完成,錄制時車窗為半開狀態,地點為鬧市區,個別錄音伴有多重人聲。

表2 噪音場景語料內容
場景2中英文混合輸入場景。中英文混合輸入場景使用音頻為出租車真實場景錄制音頻,音頻文本內容涉及導航、音樂播放、撥打電話等基本操作功能,如表3所示。

表3 中英文混合測試音頻文本內容
錄制設備為智能手機,錄制地點為鬧市區、車窗為半開狀態,錄制時間為早高峰時段。
場景3混疊人聲輸入場景。混疊人聲輸入場景測試音頻為真實場景錄音,語料內容與真實錄制噪音場景語料內容一致,用于混合的人聲為自行錄制的現場科目三教學音頻。該音頻由放置在說話者后座上的智能手機錄制完成,音頻內容為:“踩離合器、踩剎車,打左轉向燈,按喇叭,看左后視鏡,松手剎,掛一檔?!崩L制出該音頻的波形圖及聲譜圖,如圖6所示。從聲譜圖中可以看出,背景人聲的基音頻率基本分布在300 Hz以內。

圖6 背景人聲音頻波形圖及聲譜圖
(2)評價指標。
指標1字錯率(Character Error Rate,CER)。選取字錯率為第1個評價指標,針對不同的指令內容和指令場景,測試模型識別準確率。CER定義為[5]

式中:S為替換的字數;D為刪除的字數;I為插入的字數;C為正確的字數。
指標2實時率(Real Time Factor,RTF)。在主流模型算法文獻[9-10]中都提及實時率指標,由于面向實際應用的移動語音識別設備不僅要求字錯誤率低,還要求延遲時間低,因此該指標具有現實意義,實時率定義為[11]

基于python程序語言datetime庫函數,在各模型接口程序中添加識別音頻處理時間該輸出指標,用于計算模型的實時率。
(3)實驗結果及分析。
場景1噪音場景。在合成噪音場景中,各模型均能準確地識別出音頻內容,在合成噪音情境下準確率較高,人工合成的噪音環境對語音識別的精度影響不大,各模型實時率與信噪比關系如圖7所示。

圖7 各模型實時率與信噪比關系
實時性能方面,實時率越高,實時性能越差,且一般來說,RTF<1時實時性能較好。從圖6可以看出,科大訊飛模型對噪聲數據的敏感度低,實時性能良好且穩定。隨著信噪比降低,阿里云模型以及百度云模型的實時率上升趨勢明顯。因此對噪聲較敏感的模型來說,信噪比越低,實時性能越差。
在真實噪聲場景中,各模型識別準確度較高。其中,阿里云模型、百度云模型在“播放電臺FM101.1”這條測試音頻上分別有插入字和刪除字錯誤。將真實場景音頻時長與各模型測得的實時率進行相關性分析,其關系圖和變化趨勢如圖8所示。圖中可以看出,隨著音頻時間增長,各模型實時率有下降趨勢,即音頻越長,實時率越低,實時性能越好。從實際情況分析,音頻時間越長,可利用的上下文信息越多,因此實時率有所提升。

圖8 各模型實時率與音頻時長關系
場景2中英文混合輸入場景。將各模型的識別字錯誤率及實時率進行對比,如圖9所示??拼笥嶏w模型的識別準確率和實時性能最優,得益于DFCNN建模技術[4],實現了中英文混合輸入的高準確率、高實時性能識別。且由于模型未使用傳統BRNN(Bidirectional Recurrent Neural Network)結構,不需要將完整的語音輸入就可得到識別結果,因此實時性能優異。

圖9 各模型中英文混合測試字錯誤率及實時率對比
場景3混疊人聲輸入場景。設置混合信噪比為15,在測試結果中找到幾個實時率極大值點,即實時性能較差的點,對應的字錯誤率也較高,因此繪制出字錯誤率與對應音頻實時率的關系圖,并標出趨勢線,如圖10所示。從圖中可以看出,在有背景人聲干擾的情況下,模型的實時率隨字錯誤率的增加呈上升趨勢。因此可通過適當提高模型識別準確率的方式提升實時性能。

圖10 各模型實時率與字錯誤率關系
考慮該場景下輸入音頻的Mel頻譜特征與輸出結果之間的關聯,分別繪制出原始音頻和在信噪比為15時音頻混合的Mel頻譜圖,如圖11、12所示。

圖11 原始音頻Mel頻譜圖

圖12 混合音頻Mel頻譜圖
結合Mel頻譜圖分析模型識別結果,以聲譜圖為模型輸入的科大訊飛模型,在“導航至大市口”“打電話給爸爸”兩者音頻能量整體升高后,識別準確度較其他模型而言準確率低,尤其當句子的后半段出現較寬頻率上下限的高幅值亂紋時,模型識別的字準確率大幅降低。此外,原始音頻的所有開始音均為塞音與擦音。在頻譜圖中,即使塞音或擦音前有能量較大的背景人聲,3個模型也均能準確判斷音頻的開始音。漢語中的塞音有“/b/、/p/、/d/、/t/、/g/、/k/”,擦音有“/x/、/f/、/sh/”。在Mel頻譜圖中表現為亂紋的清擦音“/f/、/x/”受背景音影響小,各模型均能準確識別。
(4)模型評價。將3種應用場景的識別準確率和實時性能作為模型的6個評價方面,分別繪制出各模型的性能雷達圖進行可視化對比,如圖13所示。

圖13 各模型綜合性能對比雷達圖
從圖13可看出,科大訊飛模型在各應用場景的綜合性能最優。科大訊飛模型基于多層卷積和池化進行建模,具有良好的平移不變性,從而能夠較大程度地解決說話者口音、說話風格不同帶來的多樣性問題,因此在3種模型中穩健性最優。百度Deep Peak2模型以音素組合體為全新的建模單元[9],能夠更好地利用神經網絡的表達能力,不受上下文信息的約束,因此在真實場景下的實時性能最優。
優化方式1運行硬件適配。研究表明,百度DeepSpeech2模型在實時語音識別方面表現欠佳,原因是該模型具有多個BRNN網絡層,需將整段語音輸入模型后才能得到識別結果,且由于模型使用beam search進行解碼,解碼時間增長。因此,在對模型進行測試時,模型實時率均遠大于1??紤]到硬件的并行運算速度,將硬件進行相應優化處理。
虛擬機原安裝在運行內存為2 GB的CPU服務器,現更換硬件設備為16 GB內存CPU服務器,并將虛擬機內存調整為8 GB。識別相同語句時,運行速度得到了50%左右提升。
優化方式2參數調整。DeepSpeech2模型基于CTC損失函數將語言模型、聲學模型作為整體訓練,得以實現端到端的訓練過程[12],因此該模型中語言模型與聲學模型具有統一的目標函數,訓練模型目的為對該目標函數進行最小化處理,以提高識別精度。目標函數為

式中:pRNN指在循環神經網絡模型中給定語音輸入x下輸出為文本y的概率;pLM指在語言模型中能輸出文本y的概率;wc(y)指識別文本y中漢字的數量;α(語言模型權重)指用于調整語言模型和CTC網絡的權重;β(單詞插入權重)指用于調整允許識別文本中插入漢字的數量。對這些參數進行適當調整,可在一定程度上增加模型的識別精度。
使用二維網格搜索法對權重α、β進行查找,開源網格搜索法會在參數空間中打印出每一個權重對應的字錯誤率,確定合適的權重查找范圍,根據所得CER結果進行調整,找出字錯誤率為全局最小值時對應的權重值。搜索結果表明,在α=2.01,β=0.32時,模型在aishell訓練集上的識別精度可由原92.3%提高到93.6%,如圖14所示。

圖14 字錯誤率下降0.013
百度DeepSpeech2模型是基于BRNN的語音識別模型,通過CTC損失函數實現了端到端的識別過程。近年來實現端到端訓練及預測的模型成為該領域的研究熱點和主流趨勢。端到端模型更加簡潔,省去了傳統語音識別系統中獨立存在的聲學模型和語言模型,真正實現了從輸入到輸出只需要一個神經網絡的目的。但在實際測試中,由于預訓練網絡并未達到優異的泛化效果,因此識別準確率較差。除此之外,雖然BRNN結構使得模型可充分利用上下文信息,但同時存在必須輸入完整的一段話才能進行識別的弊端,因此該模型在實時性能方面存在劣勢。在后續的百度DeepSpeech3模型中,研究人員開發了Cold Fusion策略[13]??奢p松實現預訓練模型在不同應用領域的遷移,且模型不再局限于BRNN結構,能夠實現實時效能的提升??傮w而言,未來的語音識別模型應做到針對不同應用場景,在無需該場景千級、萬級訓練數據的情況下,具有良好的遷移能力和適應能力,且針對移動語音設備,其性能不再受限于滯后的返回結果。
科大訊飛模型是基于卷積網絡的語音識別模型,模型結構簡潔,經測試發現正常情況下準確率高、實時性能優異。卷積網絡的優勢為良好的平移不變性,可能夠較大程度解決說話者口音、說話風格不同帶來的多樣性問題。近年來卷積網絡對圖片的特征表達能力愈加增強,由ResNet[14]提出的小卷積網絡快速推動了卷積神經網絡的發展。但該模型在多重人聲識別過程中無法有效屏蔽背景人聲噪聲,對識別精度產生了較大影響。因此可將卷積網絡作為語音識別神經網絡的前端網絡層,稱為特征提取的輔助工具。相對而言,百度Deep Peak2模型[13]以音素組合體為全新的建模單元,能夠更好地利用神經網絡的表達能力,而不受上下文信息的約束,在識別多重人聲音頻任務上成為新的解決思路。
本文從語音識別系統前端信號處理出發,運用語音信號特征提取方法,基于雙門限法實現了語音信號端點檢測,驗證了語音信號的Mel頻譜圖和高維MFCC系數作為大多數語音識別系統輸入特征的優勢所在。目前的主流模型算法在低頻噪聲的抑制方面表現良好,但并非所有模型都具備中英文混合輸入識別能力。在云計算愈加普及的當代,云端模型的實時性能遠優于本地模型,但實時率對于大多數云端模型來說依然是一個挑戰。此外,針對本地模型識別準確率低的劣勢,本文基于開源二維網格搜索法優化了百度DeopSpeech2模型,并對其進行硬件適配,使得模型識別精度、識別速率得到小幅度提升。最后,本文基于以上研究內容,提出了各模型的優化建議。