天天看點

一文讀懂語音識别技術原理

語音識别是十年來發展最快的技術之一,随着AI的不斷發展,深度學習讓語音識别技術得到了質的飛躍,開始從實驗室走向市場,并逐漸走到人們的生活中。

我們現在所用的語音輸入法,以及以語音為智能互動入口的智能家居,背後都涉及到語音識别技術。

語音識别技術的發展曆程

語音識别技術是指機器自動将人的語音的内容轉成文字,又稱 Automatic Speech Recognition,即ASR技術。

語音識别是一門交叉的、非常複雜的學科,需要具備生理學、聲學、信号處理、計算機科學、模式識别、語言學、心理學等相關學科的知識。

語音識别的研究是個漫長而且艱難的過程,它的發展可以追溯到20世紀50年代,1952年貝爾實驗室首次實作Audrey英文數字識别系統,這個系統當時可以識别單個數字0~9的發音,并且對熟人的準确度高達90%以上。

在同時期,MIT、普林斯頓相繼推出少量詞的獨立詞識别系統。

1971年美國國防部研究所(DARPA)贊助了五年期限的語音了解研究項目,推動了語音識别的一次大發展。DARPA在整個科技的發展過程中扮演了非常重要的角色,它專門給高科技研究項目提供資金支援,包括無人機、衛星等等。

在DARPA的支援下,IBM、卡内基梅隆大學(CMU)、斯坦福等學術界和工業界非常頂級的研究機構也都加入到語音識别的研究中去。

其中,卡耐基梅隆大學研發出harpy語音識别系統,該系統能夠識别1011個單詞,在這個時期大詞彙量的孤立詞識别取得實質性進展。

一文讀懂語音識别技術原理

到了1980年,語音識别技術已經從從孤立詞識别發展到連續詞識别,當時出現了兩項非常重要的技術:隐馬爾科夫模型( HMM )、N-gram語言模型。

1990年,大詞彙量連續詞識别持續進步,提出了區分性的模型訓練方法MCE和MMI,使得語音識别的精确度日益提高,尤其适用于長句子的情況下,與此同時,還提出了模型自适應方法MAP和MLLR。

在工業方面,劍橋推出首個開源的語音識别訓練工具HTK,在商業方面,Nuance釋出了首個消費級産品Dragon Dictate。

到了21世紀,随着深度學習的不斷發展,神經網絡之父Hinton提出深度置信網絡( DBN ),2009年, Hinton和學生Mohamed将深度神經網絡應用于語音識别,在小詞彙量連續語音識别任務TIMIT上獲得成功。

一文讀懂語音識别技術原理

語音識别的技術原理

從20世紀80年代開始,現在語音識别采用模式識别的基本架構,分為資料準備、特征提取、模型訓練、測試應用這4個步驟,在這裡我們主要來講解下模型訓練和測試應用。

模型經過訓練之後,一段待測的語音需要經過信号處理和特征提取,然後利用訓練好的聲學模型和語言模型,分别求得聲學模型和語言模型得分,然後綜合這2個得分,進行候選的搜尋,最後得出語言識别的結果。

一文讀懂語音識别技術原理

公式表達如圖所示

接下來我們來看下語言模型,語言模型的實體意義反映字詞出現的先驗機率,比如“郝”和“好”,這兩個字發音相同,但“郝”相對于“好”來說,出現的機率較低,一般都會出現在姓氏裡。

除此之外,語言模型的實體意義還在于反映詞順序是否符合語言習慣和反映詞的語義資訊。

了解了語言模型的實體意義,我們來看下語言模型的模組化,傳統語言模型采用N-gram的做法,語言模型是對文本序列的先驗機率進行模組化,用以下公式表示:

()=(1 2 …w )=(1 )(2│1 )…( |(1:−1))

我們按照全機率空間展開,可以表示為第一個詞出現的機率(1)乘以第一個詞出現之後,第二個詞的機率(2│1 ),以此類推一直到第n個詞。

一文讀懂語音識别技術原理

對于這樣一個全機率空間,我們對它進行N-階馬爾科夫假設,即每個詞出現的機率隻和最近的N個曆史詞有關,根據這樣一個假設,上面表示先驗機率中的每一項都可以做這樣一個近似:

一文讀懂語音識别技術原理

比如我們需要求1-階馬爾科夫假設,用以下公式即可很友善的算出結果:

一文讀懂語音識别技術原理

這樣一種看似很簡單的非參數的計算方法,卻從20世紀的80年代一直沿用到今天。

在深度學習出現之後,逐漸出現了另一種語言模型——RNNLM。

RNNLM語言模型的流程,之前我們提到過先驗機率可以按照全機率空間進行展開,我們對公式中間的每一項都采用同一種深度學習模型來模組化,就可以表達成如下結構:

說完了語言模型模組化,接下來我們來說下聲學模型模組化,給定了相應的文本序列之後,生成相應的語音,這是語音識别技術中最核心的也是最複雜的部分。

為了減少同音詞的資料共享問題,首先我們會将文本序列轉化成它的發音序列,做這一步的目的就是加強模組化單元的共享性。

在我們對每一個發音單元,比如“xue”裡面的韻母做模組化的時候,我們的語音具有不定長的特性,我們說的快和說的慢的時候,語音幀的時長是不一樣的,對于這種不定長的語音模組化,這個時候就需要引入HMM模型。

一文讀懂語音識别技術原理

HMM模型每一個語音幀讓我們的每一個語音幀都對應到HMM模型中的每一個狀态,不論多長的語音都能夠表達為HMM模型的一個狀态序列。

最後隻要将HMM模型中的序列和我們語音中的每一幀進行一一對應。再将這個對應關系,用一個機率來表達就可以了。

我們知道語音其實是非常複雜多變的,不同的人在說同樣的句子的時候,會表現出非常大的差異性。

1980年代的時候,由于計算條件的限制,業内一般采用GMM聲學模型,到了2010年深度學習技術興起,DNN聲學模組化開始取代GMM聲學模組化。

語音識别技術的典型應用

語音識别技術早期的應用主要是語音聽寫,使用者說一句,機器識别一句。後來發展成語音轉寫,随着AI的發展,語音識别開始作為智能互動應用中的一環。

下面我們就來一一介紹這些應用:

首先我們來看下語音聽寫,語音聽寫中最為典型的案例就是訊飛輸入法,除此之外,語音聽寫的應用還有語音病例系統。

醫生佩戴上訊飛定制的麥克風,在給病人診斷時,會将病情、用藥、需要注意事項等資訊說出來,機器将醫生說的話自動識别出來,生成病例。

一文讀懂語音識别技術原理

繼續閱讀