語音識別已成為人與機器通過自然語言交互重要方式之一,本文將從語音識別的原理以及語音識別算法的角度出發為大家介紹語音識別的方案及詳細設計過程。
語言作為人類的一種基本交流方式,在數千年歷史中得到持續傳承。近年來,語音識別技術的不斷成熟,已廣泛應用於我們的生活當中。語音識別技術是如何讓機器「聽懂」人類語言?本文將為大家從語音前端處理、基於統計學語音識別和基於深度學習語音識別等方面闡述語音識別的原理。
隨著計算機技術的飛速發展,人們對機器的依賴已經達到一個極高的程度。語音識別技術使得人與機器通過自然語言交互成為可能。最常見的情形是通過語音控制房間燈光、空調溫度和電視的相關操作等。並且,移動網際網路、智能家居、汽車、醫療和教育等領域的應用帶動智能語音產業規模持續快速增長,2018年全球智能語音市場規模將達到141.1億美元。
(數據來源:中商產業研究院整理)
目前,在全球智能語音市場佔比情況中,各巨頭市場佔有率由大到小依次為:Nuance、谷歌、蘋果、微軟和科大訊飛等。
(數據來源:中商產業研究院整理)
語音識別的本質就是將語音序列轉換為文本序列,其常用的系統框架如下:
接下來對語音識別相關技術進行介紹,為了便於整體理解,首先,介紹語音前端信號處理的相關技術,然後,解釋語音識別基本原理,並展開到聲學模型和語言模型的敘述,最後,展示我司當前研發的離線語音識別demo。
1前端信號處理
前端的信號處理是對原始語音信號進行的相關處理,使得處理後的信號更能代表語音的本質特徵,相關技術點如下表所述:
1、語音活動檢測
語音活動檢測(Voice Activity Detection, VAD)用於檢測出語音信號的起始位置,分離出語音段和非語音(靜音或噪聲)段。VAD算法大致分為三類:基於閾值的VAD、基於分類器的VAD和基於模型的VAD。
基於閾值的VAD是通過提取時域(短時能量、短時過零率等)或頻域(MFCC、譜熵等)特徵,通過合理的設置門限,達到區分語音和非語音的目的;
基於分類的VAD是將語音活動檢測作為(語音和非語音)二分類,可以通過機器學習的方法訓練分類器,達到語音活動檢測的目的;
基於模型的VAD是構建一套完整的語音識別模型用於區分語音段和非語音段,考慮到實時性的要求,並未得到實際的應用。
2、降噪
在生活環境中通常會存在例如空調、風扇等各種噪聲,降噪算法目的在於降低環境中存在的噪聲,提高信噪比,進一步提升識別效果。
常用降噪算法包括自適應LMS和維納濾波等。
3、回聲消除
回聲存在於雙工模式時,麥克風收集到揚聲器的信號,比如在設備播放音樂時,需要用語音控制該設備的場景。
回聲消除通常使用自適應濾波器實現的,即設計一個參數可調的濾波器,通過自適應算法(LMS、NLMS等)調整濾波器參數,模擬回聲產生的信道環境,進而估計回聲信號進行消除。
4、混響消除
語音信號在室內經過多次反射之後,被麥克風採集,得到的混響信號容易產生掩蔽效應,會導致識別率急劇惡化,需要在前端處理。
混響消除方法主要包括:基於逆濾波方法、基于波束形成方法和基於深度學習方法等。
5、聲源定位
麥克風陣列已經廣泛應用於語音識別領域,聲源定位是陣列信號處理的主要任務之一,使用麥克風陣列確定說話人位置,為識別階段的波束形成處理做準備。
聲源定位常用算法包括:基於高解析度譜估計算法(如MUSIC算法),基於聲達時間差(TDOA)算法,基于波束形成的最小方差無失真響應(MVDR)算法等。