Atitit 語音識别的技術原理
1.1. 語音識别技術,也被稱為自動語音識别Automatic Speech Recognition,(ASR),2
1.2. 模型目前,主流的大詞彙量語音識别系統多采用統計模式識别技術2
1.3. 基本方法般來說,語音識别的方法有三種:基于聲道模型和語音知識的方法、模闆比對的方法以及利用人工神經網絡的方法。2
1.3.1. 模闆比對的方法2
1.4. 一般來說,語音識别的方法有三種:基于聲道模型和語音知識的方法、模闆比對的方法以及利用人工神經網絡的方法。2
1.5. 提及語音識别,就不能不說Nuance,Nuance的語音技術是以統計推斷方法為基礎,着眼于音素(音節的聲音)和語境來識别話語2
1.6. ,神經網絡。這種技術可使得精确度提升25%以上,這是一個巨大的飛躍,因為這個行業隻需要提升5%就具備革命意義3
1.7. 語音信号預處理與特征提取3
1.7.1. 基于語音學和聲學的方法3
1.8. PCM檔案,也就是俗稱的wav檔案。4
1.9. VAD靜音切除4
1.10. 要對聲音進行分析,需要對聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀。4
1.11. 一個完整的基于統計的語音識别系統可大緻分為三部分:5
1.12. MFCC特征 特征主要用MFCC等等5
1.13. 語音識别是怎麼工作的呢,識别流程5
1.14. 隐馬爾可夫模型(Hidden Markov Model,HMM6
1.15. 路徑搜尋的算法是一種動态規劃剪枝的算法,稱之為Viterbi算法,用于尋找全局最優路徑。6
1.16. 這裡所說的累積機率,由三部分構成, 觀察機率 轉移機率 語言機率6
1.17. 聲學模型模組化。7
1.18. 連續語音識别中的搜尋,就是尋找一個詞模型序列以描述輸入語音信号,Viterbi7
1.19. 曆史7
1.20. 聲學特征 LPC MFCC CEP Mel8
1.20.1. LPC8
1.20.2. CEP8
1.20.3. Mel9
1.20.4. MFCC9
1.21. 最新進展9
1.22. 電腦模拟人腦的思路是不對的,飛機也不是模範鳥閃動翅膀10
1.23. 參考資料10
1.1. 語音識别技術,也被稱為自動語音識别Automatic Speech Recognition,(ASR),
1.2. 模型目前,主流的大詞彙量語音識别系統多采用統計模式識别技術
1.3. 基本方法般來說,語音識别的方法有三種:基于聲道模型和語音知識的方法、模闆比對的方法以及利用人工神經網絡的方法。
1.3.1. 模闆比對的方法
模闆比對的方法發展比較成熟,目前已達到了實用階段。在模闆比對方法中,要經過四個步驟:特征提取、模闆訓練、模闆分類、判決。常用的技術有三種:動态時間規整(DTW)、隐馬爾可夫(HMM)理論、矢量量化(VQ)技術。
1.4. 一般來說,語音識别的方法有三種:基于聲道模型和語音知識的方法、模闆比對的方法以及利用人工神經網絡的方法。
1.5. 提及語音識别,就不能不說Nuance,Nuance的語音技術是以統計推斷方法為基礎,着眼于音素(音節的聲音)和語境來識别話語
就像提到PC處理器不能跨過intel,智能手機SOC不能忽略高通,Nuance有着輝煌的曆史,曾經在語音領域一統江湖,就算現在,仍舊是瘦死的駱駝比馬大,仍舊是全球最大的語音技術公司,專利數量和市場佔有率都遙遙領先。蘋果iPhone手機的虛拟語音助手Siri(風傳放棄)、三星的語音助手S-Voice、各大航空公司和頂級銀行的自動呼叫中心和虛拟線上語音助手,都采用了Nuance的技術。Nuance曾經很熱門,三星和蘋果都和它傳過绯聞,都要收購它,不知道為什麼,都無疾而終。
科大訊飛是nuance的國内版,同樣的一覽衆山小
1.6. ,神經網絡。這種技術可使得精确度提升25%以上,這是一個巨大的飛躍,因為這個行業隻需要提升5%就具備革命意義
這是一種十分炫酷的技術,将機器學習的方式模仿人類大腦的神經元,當處理的語言越來越多時,這種網絡就可以逐漸了解語言。實驗結果發現,這種技術可使得精确度提升25%以上,這是一個巨大的飛躍,因為這個行業隻需要提升5%就具備革命意義
1.7. 語音信号預處理與特征提取
選擇識别單元是語音識别研究的第一步。語音識别單元有單詞(句)、音節和音素三種,具體選擇哪一種,由具體的研究任務決定。
單詞(句)單元廣泛應用于中小詞彙語音識别系統,但不适合大詞彙系統,原因在于模型庫太龐大,訓練模型任務繁重,模型比對算法複雜,難以滿足實時性要求。
音素單元以前多見于英語語音識别的研究中,但目前中、大詞彙量漢語語音識别系統也在越來越多地采用。原因在于漢語音節僅由聲母(包括零聲母有22個)和韻母(共有28個)構成,且聲韻母聲學特性相差很大。實際應用中常把聲母依後續韻母的不同而構成細化聲母,這樣雖然增加了模型數目,但提高了易混淆音節的區分能力。由于協同發音的影響,音素單元不穩定,是以如何獲得穩定的音素單元,還有待研究
1.7.1. 基于語音學和聲學的方法
該方法起步較早,在語音識别技術提出的開始,就有了這方面的研究,但由于其模型及語音知識過于複雜,現階段沒有達到實用的階段。
1.8. PCM檔案,也就是俗稱的wav檔案。
wav檔案裡存儲的除了一個檔案頭以外,就是聲音波形的一個個點了。下圖是一個波形的示例。
1.9. VAD靜音切除
在開始語音識别之前,有時需要把首尾端的靜音切除,降低對後續步驟造成的幹擾。這個靜音切除的操作一般稱為VAD,需要用到信号處理的一些技術。
1.10. 要對聲音進行分析,需要對聲音分幀,也就是把聲音切開成一小段一小段,每小段稱為一幀。
分幀操作一般不是簡單的切開,而是使用移動窗函數來實作,這裡不詳述。幀與幀之間一般是有交疊的,就像下圖這樣: 圖中,每幀的長度為25毫秒,每兩幀之間有25-10=15毫秒的交疊。我們稱為以幀長25ms、幀移10ms分幀。 分幀後,語音就變成了很多小段。但波形在時域上幾乎沒有描述能力,是以必須将波形作變換。常見的一種變換方法是提取MFCC特征
一種簡單的解決思路是對語音進行分幀,每一幀占有比較短固定的時 長(比如25ms),再假設說這樣的一幀既足夠長(可以蘊含 足以判斷它屬于哪個聲韻母的資訊),又很平穩(友善進行短時傅裡葉分析),這樣将每一幀轉換為一個特征向量,(依次)分别識别它們屬于哪個聲韻母,就可以 解決問題。識别的結果可以是比如第100到第105幀是聲母c,而第106幀到115幀是韻母eng等。 這種思路有點類似微積分 中的『以直代曲』。另外在實際的分幀過程中,還有很多常用技巧,比如相鄰兩幀之間有所重疊,或引入與臨近幀之間的差分作為額外特征,乃至直接堆疊許多語音幀等等
1.11. 一個完整的基于統計的語音識别系統可大緻分為三部分:
(1)語音信号預處理與特征提取;
(2)聲學模型與模式比對;
(3)語言模型與語言處理、
1.12. MFCC特征 特征主要用MFCC等等
MFCC特征,根據人耳的生理特性,把每一幀波形變成一個多元向量,可以簡單地了解為這個向量包含了這幀語音的内容資訊。這個過程叫做聲學特征提取。實際應用中,這一步有很多細節,聲學特征也不止有MFCC這一種,具體這裡不講。 至此,聲音就成了一個12行(假設聲學特征是12維)、N列的一個矩陣,稱之為觀察序列,這裡N為總幀數。觀察序列如下圖所示,圖中,每一幀都用一個12維的向量表示,色塊的顔色深淺表示向量值的大小。
1.13. 語音識别是怎麼工作的呢,識别流程
實際上一點都不神秘,無非是: 第一步,把幀識别成狀态(難點)。 第二步,把狀态組合成音素。 第三步,把音素組合成單詞
圖中,每個小豎條代表一幀,若幹幀語音對應一個狀态,每三個狀态組合成一個音素,若幹個音素組合成一個單詞。也就是說,隻要知道每幀語音對應哪個狀态了,語音識别的結果也就出來了。 那每幀音素對應哪個狀态呢?有個容易想到的辦法,看某幀對應哪個狀态的機率最大,那這幀就屬于哪個狀态。比如下面的示意圖,這幀在狀态S3上的條件機率最大,是以就猜這幀屬于狀态S3。
1.14. 隐馬爾可夫模型(Hidden Markov Model,HMM
HMM聲學模組化:馬爾可夫模型的概念是一個離散時域有限狀态自動機,隐馬爾可夫模型HMM是指這一馬爾可夫模型的内部狀态外界不可見,外界隻能看到各個時刻的輸出值。對語音識别系統,輸出值通常就是從各個幀計算而得的聲學特征。用HMM刻畫語音信号需作出兩個假設,一是内部狀态的轉移隻與上一狀态有關,另一是輸出值隻與目前狀态(或目前的狀态轉移)有關,這兩個假設大大降低了模型的複雜度。HMM的打分、解碼和訓練相應的算法是前向算法、Viterbi算法和前向後向算法。
語音識别中使用HMM通常是用從左向右單向、帶自環、帶跨越的拓撲結構來對識别基元模組化,一個音素就是一個三至五狀态的HMM,一個詞就是構成詞的多個音素的HMM串行起來構成的HMM,而連續語音識别的整個模型就是詞和靜音組合起來的HMM。
1.15. 路徑搜尋的算法是一種動态規劃剪枝的算法,稱之為Viterbi算法,用于尋找全局最優路徑。
1.16. 這裡所說的累積機率,由三部分構成, 觀察機率 轉移機率 語言機率
分别是: 觀察機率:每幀和每個狀态對應的機率 轉移機率:每個狀态轉移到自身或轉移到下個狀态的機率 語言機率:根據語言統計規律得到的機率 其中,前兩種機率從聲學模型中擷取,最後一種機率從語言模型中擷取。語言模型是使用大量的文本訓練出來的,可以利用某門語言本身的統計規律來幫助提升識别正确率。語言模型很重要,如果不使用語言模型,當狀态網絡較大時,識别出的結果基本是一團亂麻。
1.17. 聲學模型模組化。
當我們有了分幀後的語音特征之後,下一步常用的處理是使用某種分類器将之分類成某種跟語音内容相關的類别,如聲韻母,這一步通常稱作聲學模型模組化。
對于分類目标的選取,最簡單的選擇可以是詞組,或者是組成詞組的漢字所對應的音節。但這樣的選擇方式通常會對訓練模型的語音資料提出過高的要求,帶來『資料稀疏』的問題,即資料中 很難包含漢語中的所有詞組,同時每個詞組也很難具有充足的訓練樣本以保證統計聲學模型的可靠性。由于一個詞組通常由多個音素的連續發音 構成,常見的音素都包含在國際音标表中,它們具有恰當的數目(通常幾十個),以及清晰的定義(由特定的發聲器官運動産生),于是音素成了各種語言中的語音識别中都最為常見的 模組化選擇(漢語的聲韻母也是由一到三個音素構成), 識别中再結合詞組到音素的發音字典使用。使用音素也友善對混合語言(如漢語種夾雜英語詞彙)進行識别—
目前最廣泛使用的仍然是基于隐式馬爾科夫模型的模組化方法,即對每個三音子分别建立一個模型
· 聲學模型(acoustic model):用于識别語音向量;可用GMM或DNN等方法來識别向量,用DTW或HMM或CTC來對齊(alignment)識别結果的輸出(單詞從何時開始,何時結束)
· 字典(dictionary):多數模型并不是以單詞,而是以音素為識别機關。當識别出æ p l這三個音素時,
1.18. 連續語音識别中的搜尋,就是尋找一個詞模型序列以描述輸入語音信号,Viterbi
進而得到詞解碼序列。搜尋所依據的是對公式中的聲學模型打分和語言模型打分。在實際使用中,往往要依據經驗給語言模型加上一個高權重,并設定一個長詞懲罰分數。
Viterbi:基于動态規劃的Viterbi算法在每個時間點上的各個狀态,計算解碼狀态序列對觀察序列的後驗機率,保留機率最大的路徑,并在每個節點記錄下相應的狀态資訊以便最後反向擷取詞解碼序列。Viterbi算法在不喪失最優解的條件下,同時解決了連續語音識别中HMM模型狀态序列與聲學觀察序列的非線性時間對準、詞邊界檢測和詞的識别,進而使這一算法成為語音識别搜尋的基本政策。
1.19. 曆史
最早的基于電子計算機的語音識别系統是由AT&T貝爾實驗室開發的Audrey語音識别系統,它能夠識别10個英文數字。其識别方法是跟蹤語音中的共振峰。該系統得到了98%的正确率。到1950年代末,倫敦學院(Colledge of London)的Denes已經将文法機率加入語音識别中。
1960年代,人工神經網絡被引入了語音識别。這一時代的兩大突破是線性預測編碼Linear Predictive Coding (LPC), 及動态時間彎折Dynamic Time Warp技術。 語音識别的最重大突破是隐含馬爾科夫模型Hidden Markov Model的應用。從Baum提出相關數學推理,經過Labiner等人的研究,李開複最終實作了第一個基于隐馬爾科夫模型的大詞彙量語音識别系統Sphinx,他也憑借此發明獲得1988 美國商業周刊最重要發明獎。此後嚴格來說語音識别技術并沒有脫離HMM架構,可以說現在手機上的語音撥号就脫胎于李開複的語音識别系統。
這一時期所取得的重大進展有:
⑴隐式馬爾科夫模型(HMM)技術的成熟和不斷完善成為語音識别的主流方法。
統計方法将研究者的視線從微觀轉向宏觀,不再刻意追求語音特征的細化,而是更多地從整體平均(統計)的角度來建立最佳的語音識别系統。在聲學模型方面,以Markov鍊為基礎的語音序列模組化方法HMM(隐式Markov鍊)比較有效地解決了語音信号短時穩定、長時時變的特性,并且能根據一些基本模組化單元構造成連續語音的句子模型,達到了比較高的模組化精度和模組化靈活性。在語言層面上,通過統計真實大規模語料的詞之間同現機率即N元統計模型來區分識别帶來的模糊音和同音詞。另外,人工神經網絡方法、基于文法規則的語言處理機制等也在語音識别中得到了應用。
1.20. 聲學特征 LPC MFCC CEP Mel
1.20.1. LPC
線性預測分析從人的發聲機理入手,通過對聲道的短管級聯模型的研究,認為系統的傳遞函數符合全極點數字濾波器的形式,進而n 時刻的信号可以用前若幹時刻的信号的線性組合來估計。通過使實際語音的采樣值和線性預測采樣值之間達到均方差最小LMS,即可得到線性預測系數LPC。對 LPC的計算方法有自相關法(德賓Durbin法)、協方差法、格型法等等。計算上的快速有效保證了這一聲學特征的廣泛使用。與LPC這種預測參數模型類似的聲學特征還有線譜對LSP、反射系數等等。
1.20.2. CEP
利用同态處理方法,對語音信号求離散傅立葉變換DFT後取對數,再求反變換iDFT就可得到倒譜系數。對LPC倒譜(LPCCEP),在獲得濾波器的線性預測系數後,可以用一個遞推公式計算得出。實驗表明,使用倒譜可以提高特征參數的穩定性。
1.20.3. Mel
不同于LPC等通過對人的發聲機理的研究而得到的聲學特征,Mel倒譜系數MFCC和感覺線性預測 PLP是受人的聽覺系統研究成果推動而導出的聲學特征。對人的聽覺機理的研究發現,當兩個頻率相近的音調同時發出時,人隻能聽到一個音調。臨界帶寬指的就是這樣一種令人的主觀感覺發生突變的帶寬邊界,當兩個音調的頻率差小于臨界帶寬時,人就會把兩個音調聽成一個,這稱之為屏蔽效應。Mel刻度是對這一臨界帶寬的度量方法之一。
1.20.4. MFCC
首先用FFT将時域信号轉化成頻域,之後對其對數能量譜用依照Mel刻度分布的三角濾波器組進行卷積,最後對各個濾波器的輸出構成的向量進行離散餘弦變換DCT,取前N個系數。PLP仍用德賓法去計算LPC參數,但在計算自相關參數時用的也是對聽覺激勵的對數能量譜進行DCT的方法。
1.21. 最新進展
近幾年來,特别是2009年以來,借助機器學習領域深度學習研究的發展,以及大資料語料的積累,語音識别技術得到突飛猛進的發展。
1、技術新發展
1)将機器學習領域深度學習研究引入到語音識别聲學模型訓練,使用帶RBM預訓練的多層神經網絡,極大提高了聲學模型的準确率。在此方面,微軟公司的研究人員率先取得了突破性進展,他們使用深層神經網絡模型(DNN)後,語音識别錯誤率降低了30%,是近20年來語音識别技術方面最快的進步。
2)目前大多主流的語音識别解碼器已經采用基于有限狀态機(WFST)的解碼網絡,該解碼網絡可以把語言模型、詞典和聲學共享音字集統一內建為一個大的解碼網絡,大大提高了解碼的速度,為語音識别的實時應用提供了基礎。
今年10月底,微軟宣布語音識别實作了曆史性突破,詞錯率僅 5.9%,英語的語音轉錄達到專業速錄員水準,微軟的此次突破是機器的識别能力在英語水準上第一次超越人類。微軟的這條消息釋出之後在業内引起了極大的關注。語音識别一直是國内外許多科技公司重點發展的技術之一,百度首席科學家吳恩達就發推特恭賀微軟在英語語音識别上的突破,同時也回憶起一年前百度在漢語語音識别上的突破,其Deep Speech 2 的短語識别的詞錯率已經降到了3.7%,Deep Speech 2 轉錄某些語音的能力基本上是超人級的,能夠比國語母語者更精确地轉錄較短的查詢。
1.22. 電腦模拟人腦的思路是不對的,飛機也不是模範鳥閃動翅膀
早期的20多年,即從20世紀50年代到70年代,是科學家們走彎路的階段,全世界的科學家對計算機完成語音識别這類隻有人才能做的事情,認為必須先讓計算機了解自然語言,這就局限在人類學習語言的方式上了,也就是用電腦模拟人腦,這20多年的研究成果近乎為零。
賈裡尼克的貢獻
直到1970年後,統計語言學的出現才使語音識别重獲新生,并取得了今天的飛凡成就。推動這個技術路線轉變的關鍵人物是德裡克·賈裡尼克(Frederick Jelinek)和他上司的IBM華生實驗室(T.J.Watson),開始使用統計方法。采用統計的方法,IBM将當時的語音識别率從70%提升到90%,同時語音識别的規模從幾百單詞上升到幾萬單詞,這樣語音識别就有了從實驗室走向實際應用的可能
在賈裡尼克之前,科學家們把語音識别問題當作人工智能和模式比對問題,而賈裡尼克将它當作通信問題,并用兩個隐含馬爾可夫模型(聲學模型和語言模型)把語音識别概括得清清楚楚
在大資料時代到來後,隐馬爾可夫模型出現了局限,即資料量提升時,它帶來的表現提升沒有深度神經網絡那麼大,但其實都屬于統計模式識别。在語音識别發展的過程中,深度學習是同時發生的一件事,如果沒有深度神經網絡,但是有大資料和漣漪效應,隐馬爾可夫模型也可以做到實用
深度神經網絡由Geoffrey Hinton與微軟的鄧力研究員最先開始做,谷歌是最早在全球範圍内大規模使用深度神經網絡的公司,谷歌的Voice Search也在最早開創了用網際網路思維做語音識别。在這方面,科大訊飛受到谷歌的啟發,迅速跟進成為國内第一個在商用系統裡使用深度神經網絡的公司。
1.23. 參考資料
語音識别_百度百科.html
(2 條消息) 語音識别的技術原理是什麼? - 知乎.html
語音識别64年大突破-搜狐科技!!!.html
語音識别技術_百度百科.html
作者:: 綽号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 )
漢字名:艾提拉(艾龍), EMAIL:[email protected]
轉載請注明來源:attilax的專欄 http://www.cnblogs.com/attilax/
--Atiend