1. 程式人生 > >語音識別 自然語言處理

語音識別 自然語言處理

參考:《中文資訊處理髮展報告2016》

什麼是語音識別?

語音識別(Automatic Speech Recognition,ASR):利用計算機實現從語音到文字自動轉換的任務。

語音識別的技術有哪些?

語音識別技術 = 早期基於訊號處理和模式識別 + 機器學習 + 深度學習 + 數值分析+ 高效能運算 + 自然語言處理

語音識別技術的發展可以說是有一定的歷史背景,上世紀80年代,語音識別研究的重點已經開始逐漸轉向大詞彙量、非特定人連續語音識別。到了90年代以後,語音識別並沒有什麼重大突破,直到大資料與深度神經網路時代的到來,語音識別技術才取得了突飛猛進的進展。

語音識別的相關領域有哪些?

語音識別關聯領域 = 自然語言理解 + 自然語言生成 + 語音合成

語音識別的社會價值在哪裡?

    語音訊號是典型的區域性穩態時間序列,而日常所見的大量訊號都屬於這種區域性穩態時間序列訊號,如視訊,雷達訊號,金融資產價格,經濟資料等。這些訊號的共同特點是在抽象的時間序列中包含大量不同層次的資訊,可以用相似的模型進行分析。

    歷史上,語音訊號的研究成果在若干領域起到啟發作用,如語音訊號處理中的隱馬爾科夫模型在金融分析,機械控制等領域都得到廣泛的應用。近年來,深度神經網路在語音識別領域的巨大成功直接促進了各種深度學習模型在自然語言處理,圖形影象處理,知識推理等眾多領域的發展應用,取得了一個有一個令人驚歎的成果。

怎麼構建語音識別系統?

語音識別系統構建總體包括兩個部分:訓練和識別。

訓練通常來講都是離線完成的,將海量的未知語音通過話筒變成訊號之後加在識別系統的輸入端,經過處理後再根據語音特點建立模型,對輸入的訊號進行分析,並提取訊號中的特徵,在此基礎上建立語音識別所需的模板。

識別則通常是線上完成的,對使用者實時語音進行自動識別。這個過程又基本可以分為“前端”和“後端”兩個模組。前端主要的作用就是進行端點檢測、降噪、特徵提取等。後端的主要作用是利用訓練好的“聲音模型”和“語音模型”對使用者的語音特徵向量進行統計模式識別,得到其中包含的文字資訊。

語音識別技術中的關鍵問題是什麼?

  • 語音特徵抽取

    語音識別的一個主要困難在於語音訊號的複雜性和多變性。一段看似簡單的語音訊號, 其中包含了說話人、發音內容、通道特徵、口音方言等大量資訊。不僅如此,這些底層資訊互相組合在一起,又表達瞭如情緒變化、語法語義、暗示內涵等豐富的高層資訊。如此眾多 的資訊中,僅有少量是和語音識別相關的,這些資訊被淹沒在大量其它資訊中,因此充滿了變動性。語音特徵抽取即是在原始語音訊號中提取出與語音識別最相關的資訊,濾除其它無關資訊。

    語音特徵抽取的原則是:儘量保留對發音內容的區分性,同時提高對其它資訊變數的魯棒性。歷史上研究者通過各種物理學、生理學、心理學等模型構造出各種精巧的語音特徵抽 取方法,近年來的研究傾向於通過資料驅動學習適合某一應用場景的語音特徵。

  • 模型構建

    語音識別中的建模包括聲學建模語言建模。聲學建模是對聲音訊號(語音特徵)的特性進行抽象化。自上世紀 70 年代中期以來,聲學模型基本上以統計模型為主,特別是隱馬爾科夫模型/高斯混合模型(HMM/GMM)結構。最近幾年,深度神經網路(DNN)和各種異構神經 網路成為聲學模型的主流結構。

聲學模型需要解決如下幾個基本問題: 如何描述語音訊號的短時平穩性;

 如何描述語音訊號在某一平穩瞬態的靜態特性,即特徵分佈規律;

 如何應用語法語義等高層資訊;

 如何對模型進行優化,即模型訓練。

同時,在實際應用中,還需要解決眾多應用問題,例如:

 如何從一個領域快速自適應到另一個領域;

 如何對噪音、通道等非語音內容進行補償;

 如何利用少量資料建模;

 如何提高對語音內容的區分性;

 如何利用半標註或無標註資料,等等。 語言建模是對語言中的詞語搭配關係進行歸納,抽象成概率模型。這一模型在解碼過程中對解碼空間形成約束,不僅減小計算量,而且可以提高解碼精度。傳統語言模型多基於 N元文法 (n-gram),近年來基於遞迴神經網路(RNN)的語言模型發展很快,在某些識別任務 中取得了比 n-gram 模型更好的結果。

語言模型要解決的主要問題是如何對低頻詞進行平滑。不論是 n-gram 模型還是 RNN 模型,低頻詞很難積累足夠的統計量,因而無法得到較好的概率估計。平滑方法借用高頻詞或相似詞的統計量,提高對低頻詞概率估計的準確性。除此之外,語言建模研究還包括:

 如何對字母、字、詞、短語、主題等多層次語言單元進行多層次建模

 如何對應用領域進行快速自適應;

 如何提高訓練效率,特別是對神經網路模型來說,提高效率尤為重要;

 如何有效利用大量噪聲資料,等等。

  • 解碼

    解碼是利用語音模型語言模型中積累的知識,對語音訊號序列進行推理,從而得到相應語音內容的過程。早期的解碼器一般為動態解碼,即在開始解碼前,將各種知識源以獨立模組形式載入到記憶體中,動態構造解碼圖。現代語音識別系統多采用靜態解碼,即將各種知 識源統一表達成有限狀態轉移機(FST),並將各層次的 FST 巢狀組合在一起,形成解碼圖。 解碼時,一般採用 Viterbi 演算法在解碼圖中進行路徑搜尋。為加快搜索速度,一般對搜尋路 徑進行剪枝,保留最有希望的路徑,即束搜尋(beam search)。

對解碼器的研究包括但不限於如下內容:

 如何加快解碼速度,特別是在應用神經網路語言模型進行一遍解碼時;

 如何實現靜態解碼圖的動態更新,如加入新詞;

 如何利用高層語義資訊;

 如何估計解碼結果的信任度;

 如何實現多語言和混合語言解碼;

 如何對多個解碼器的解碼結果進行融合。