本系列文章開始,我們將一起探索自動語音識別、語言處理技術所包含的核心算法、模型及未來的發展趨勢。本篇文章我們主要討論語音識別的基本概念。並理解語音識別技術的流程。

(一) 自動語音識別技術ASR

自動語音識別,簡稱ASR。這項技術是使人與人,人與機器更順暢交流的關鍵技術。

隨着人們對生活的儀式感的追求,移動設備、可穿戴設備、智能家居設備、車載信息娛樂系統也變得越來越流行。在這些設備和系統上,以往鼠標、鍵盤這樣的交互方式就不再延續像用在電腦上一樣的便捷性了。而語音作爲人類之間自然的交流方式,在這些設備和系統上就成爲了更受歡迎的交互方式了。

如果有一個語音到語音翻譯系統其實就可以完美消除這個交流壁壘。這樣的話就算語言不通人們也可以自由地進行交流。比如我們現在這裏看到的就是一個典型的語音到語音的翻譯系統,可以看到,語音識別是這個流水過程中的第一環。

(二) 人機交流場景

我們說語音技術可以極大地提升人機交流的能力,其中最流行的應用場景就有大家所熟知的語音搜索、個人數碼助理、遊戲、起居室交互系統和車載信息娛樂系統。

對於語音搜索而言,它能使用戶直接通過語音來搜索餐館、行駛路線和商品評價的信息。這極大地簡化了用戶輸入搜索請求的方式。目前,語音搜索類的應用在各類品牌和系統的手機上都已非常流行。

第二個個人數碼助理已經作爲原型產品出現了十年,siri系統就是從它變得流行起來的。自那以後,很多公司都發布了類似的產品。我們把這種系統簡稱PDA。PDA系統知曉我們在移動設備上的信息,瞭解一些常識並記錄了用戶與系統的交互歷史。有了這些信息後,PDA可以更好的服務用戶。比如,可以完成撥打電話、回答問題和音樂搜索等工作。而用戶所需要做的只是直接向系統發出語音指令即可。

在融合語音技術之後,遊戲的體驗將得到很大的提升。例如,玩家可以和遊戲角色對話以詢問信息或者發出指令。

最後,起居室交互系統和車載信息娛樂信息在功能上十分相似。這種系統允許用戶使用語音與之交互,我們可以通過他們來播放音樂、詢問信息或者控制系統。當然,由於這些系統的使用條件不同,設計這樣的系統時會遇到不同的挑戰。

(三) 語音對話系統的組成

在上述的所有應用場景和系統討論的都是語音對話系統。如下圖所示,語音對話系統通常包括四個主要組成部分的一個或多個:語音識別系統將語音轉化爲文本、語音理解系統提取用戶說話的語義信息、文字轉語音系統將內容轉化爲語音、對話管理系統將前面的三個系統連接起來並完成與實際應用場景的溝通。這些內容對建立一個成功的語音對話系統都是很關鍵的,我們的關注重點主要是在語音識別系統。

下面展示的語音識別系統的典型結構,語音識別系統主要由圖中四個部分組成:信號處理和特徵提取、聲學模型、語言模型和解碼搜索部分。信號處理和特徵提取部分是以音頻信號作爲輸入,通過消除噪聲和信道失真對語音進行增強,爲後面的聲學模型提取合適的有代表性的特徵向量。聲學模型將聲學和發音學的知識進行了融合,以特徵提取部分生成的特徵作爲輸入,併爲可變長特徵序列生成聲學模型的分數。語言模型估計通過從訓練語料,通常是文本形式,學習詞之間的相互關係,來估計假設詞序列的可能性,又被稱作語言模型分數。如果瞭解了領域或任務相關的先驗知識,語言模型分數通常可以估計得更準確。解碼搜索對給定的特徵向量序列和若干假設詞序列計算聲學模型分數和語言模型分數,將總體輸出分數最高的詞序列當做識別結果。在這裏,我們主要討論聲學模型。

關於聲學模型,有兩個主要問題,分別是不定長的特徵向量序列和豐富多變的音頻信號。不定長的問題通常由動態時間規整方法和隱馬爾可夫模型方法來解決。而豐富多變性主要是由於說話的人的各種複雜特性,比如音色、風格、速度等,還有加之環境噪聲、周圍人聲、方言差異等引起。所以,一個成功的語音識別系統必須能夠音符所有可能性的變化因素。

這樣的話,我們從特定領域任務向真實應用轉變時,就會遇到一些困難。就像上圖當中所展示的,一個時下實際的語音識別系統需要處理大量的詞彙,可能是數百萬量級的,自由式對話,帶噪聲的遠場自發語音和多語言混合的問題。由於有了真實世界任務的需求,當今正在解決的語音識別相關的問題,如最右側所示,就比過去已經解決的問題要難很多。

(四) 傳統聲學模型

下面我們就來介紹一下傳統的聲學模型。語音識別建模對語音識別來說是不可或缺的一部分,因爲不同的建模技術通常意味着不同的識別性能,所以這是各個語音識別團隊重點優化的方向。也正是因爲如此,語音識別的模型也層出不窮,在聲學模型裏面又涵蓋了HMM、DNN、RNN等模型。簡單來說,聲學模型的任務就是描述語音的物理變化規律,而語言模型則表達了自然語言包含的語言學知識。而其中語音信號作爲整個系統的輸入就顯得比較重要了。語音信號計算機中是採用PCM編碼按時間序列保存的一連串數據。計算機中最原始語音文件是wav,可以通過各種錄音軟件錄製,其中錄製通道表示很多音頻都有左右2個通道,在語音識別中通常有一個通道的數據就夠了。

再來說說我們做信號處理的目的----獲得頻率成分的分佈,而語音作爲非平穩信號要實現就要通過分幀來實現。這時候還有一個操作叫做加窗,加窗的目的是讓一幀信號的幅度在兩端漸變到 0。漸變對傅里葉變換有好處,可以提高變換結果的分辨率。加窗的代價是一幀信號兩端的部分被削弱了,沒有像中央的部分那樣得到重視。彌補的辦法是,幀不要背靠背地截取,而是相互重疊一部分。

這樣通常加窗之後我們可以實現特徵數的降維以及提取出比原始語音更具表徵力的特徵。以上可以理解爲若干幀對應一個音素,若干音素對應一個單詞,如果我們想要識別對應的單詞狀態,我們只要知道對應的幀狀態就行,用計算機能識別的方式最簡單的就是概率匹配,這些概率我們就可以通過聲學模型獲得,所以要做的就是通過訓練獲得合適的模型參數以擬合好的匹配效果。

(五) 語音識別三步

語音識別大體上包含前端處理,特徵提取,模型訓練,解碼四個模塊。其中前端處理包括了,語音轉碼,高通濾波,端點檢測等。

上圖是目前語音識別的基本流程,輸入的語音數據流經過前端處理(語音格式轉碼,高通,端點檢測),語音格式轉碼是將輸入的語音數據轉成pcm或者wav格式的語音,端點檢測是檢測出轉碼後語音中的有效語音,這樣對解碼速度和識別率上都會改善。經過前端處理之後的得到的分段語音數據送入特徵提取模塊,進行聲學特徵提取。最後解碼模塊對提取的特徵數據進行解碼,解碼過程中利用發音字典,聲學模型,語言模型等信息構建WFST搜索空間,在搜索空間內尋找匹配概率最大的最優路徑,便得到最優的識別結果。

(六) 主流聲學建模技術

近年來,隨着深度學習的興起,使用了接近30年的語音識別聲學模型HMM(隱馬爾科夫模型)逐漸被DNN(泛指深度神經網絡)所替代,模型精度也有了突飛猛進的變化,整體來看聲學建模技術從建模單元、模型結構、建模流程等三個維度都有了比較明顯的變化。其中,深度神經網絡超強的特徵學習能力大大簡化了特徵抽取的過程,降低了建模對於專家經驗的依賴,因此建模流程逐步從之前複雜多步的流程轉向了簡單的端到端的建模流程,由此帶來的影響是建模單元逐步從狀態、三音素模型向音節、字等較大單元演進,模型結構從經典的GMM-HMM向DNN+CTC(DNN泛指深度神經網絡)轉變,演進的中間態是DNN-HMM的混合模型結構。

(七) 混合高斯模型(GMM)

讓我們先來看看GMM混合高斯模型。簡單來說,當使用混合高斯隨機變量的分佈用於匹配真實世界的數據,比如語音特徵時,就形成了混合高斯模型。GMM作爲描述基於傅里葉頻譜語音特徵的統計模型,在傳統的語音識別系統的聲學建模中發揮了重要作用。GMM的優勢使得期望最大化算法可以被有效地用來訓練模型,以更好的匹配語音特徵。原始的語音數據經過變換後會成爲特徵序列,在忽略時序信息的條件下,GMM就非常適合擬合這樣的語音特徵。也就是說,可以以幀爲單位,用GMM對語音特徵進行建模。

(八) 通信模型(HMM)

但是呢?如果把語音順序信息考慮進去,GMM就不再是一個好模型了,因爲它不包含任何順序信息。這時隱馬爾可夫模型就更加通用了,因爲它可以對時序信息進行建模。但其實,當給定HMM的一個狀態後,若要對屬於該狀態的語音特徵向量的概率分佈進行建模,GMM仍不失爲一個好的模型。使用GMM對HMM每個狀態的語音特徵分佈進行建模,有許多明顯的優勢。只要混合的高斯分佈足夠多,那麼GMM可以擬合任意精度的概率分佈,並且他可以通過EM算法很容易擬合數據。GMM參數通過EM算法的優化,可以使其在訓練數據上生成語音觀察特徵的概率最大化,在此基礎上,若通過鑑別性訓練,基於GMM-HMM的語音識別系統的識別準確率可以得到顯著提升。儘管GMM有着衆多優勢,但它也有一個嚴重的不足,那就是GMM不能有效地對呈非線性或近似非線性的數據進行建模。這就意味着隱藏在語音特徵下的真正結構的複雜度,比直接描述現有特徵,使其作爲語音聲學模型的能力比GMM更好,我們要求這種模型要能更加有效地挖掘隱藏在長窗寬語音幀中的信息。這時我們就可以將隨機變量的概念延伸到隨機序列,它可以是離散的也可以是連續的,非常符合我們的要求,而這種狀態就是馬爾可夫序列的基本狀態,由它衍生出的模型叫做HMM隱馬爾可夫模型。大家現在看到的這整個結構就是一個典型的通信系統,而這種系統就特別適合隱馬爾科夫模型來進行估計計算了。那麼下節課我們就會把重點放在HMM上來做介紹。

本文章就到這裏暫時告一個段落,我們下一篇文章再見。

相關文章