• 沒有找到結果。

第二章 語音辨識與相關演算法介紹

2.1 背景知識

本章針對大詞彙語音辨識系統做背景知識說明,並介紹目前交通大學語音處理實驗室 所使用的語音辨識系統。

圖 2.1 大詞彙連續語音辨識架構簡圖

圖2.1為語音辨識系統的架構,在語音辨識中通常不直接將語音的類比訊號作數位取樣 作語音辨識,由於語音的變化是緩慢且連續,因此取而代之作法為取一小段語音音框 (Frame), 而相鄰的音框會有互相重疊的部份,並將音框抽取特徵向量(Feature Vector)來作 語 音 辨 識 。 常 用 來 抽 取 的 特 徵 向 量 參 數 為 梅 爾 倒 頻 譜 係 數 (Mel-Frequency Cepstral Coefficient;MFCC)。之後所得到的特徵向量經過辨識系統的解碼(Decoding)後即可得出辨 識結果。

直覺上語音辨識系統即是「這段輸入語音訊號最像、最有可能為哪段字句」的問題,

在數學上引進機率統計的概念,藉由統計式方法(Statistical Method)將 “像”、 “可能”轉換 成機率的概念來表示。如此即可將前面敘述的問題轉換成「找出輸入語音訊號對應機率最 大的字句」的問題。由數學式子為表示:

 arg max ( | )

w W

W P w O

= (2-1)

其中W 為所有可能的詞串(Word Sequence),w 為集合W 中的某一詞串;O 是輸入的語

w w w 的聯合機率(Joint Probability),在語音辨識系統中是以語言模型(Language Model)描述;另外由於 ( )P O 與 w 無關,故可將此項機率值由式2-1拿掉。整理後可得到式 聲母(Initial)以及韻母(Final)的結合。本論文辨識系統時是採用音節模型(Syllable Model) 或 右相關聲韻母模型(RCDIF Model)建構聲學模型。右相關聲韻母模型是利用右相關聲母模型

(Right Context Dependent Initial Model)及前後文獨立韻母模型(Context Independent Final Model),共有100類聲母跟40類韻母所組成。

語音辨識中建立聲學模型應用最廣為由左至右的隱藏式馬可夫模型,此模型架構主要 以狀態(State)和狀態轉移(Transition)所構成,HMM每次的轉移皆有轉移機率(Transition Probability),每個狀態中亦有觀測機率(Observation Probability)。一般選擇高斯混合模型

(Gaussian Mixture Model; GMM)描述。本系統利用HMM去模擬Syllable Model時,每個音節 利用八個狀態去描述;模擬RCDIF Model時,聲母利用三個狀態、韻母利用五個狀態去建 構,因此每個音節皆由八個狀態組成;此外限制每個狀態的機率轉移規定只能前進至下一 Weight、以及共變異矩陣(Covariance Matrix), N 為MFCC維度總數(=38)。而 p 為相似度,

實際系統運作若將 p 機率值直接相乘,因小數互相乘積,導致機率值很快地過小而超過浮 點數可表示的範圍(因underflow)而失真,故先將 p 取對數值後再做相加運算以避免此問 題,則式2-4改寫如下︰

( )

a constant for each density.

(2-5)

實際系統運算中,共變數矩陣Σ 常使用對角共變數(Diagonal Covariance)替代全矩陣k (Full Matrix)以節省GMM運算量,最後整理可得到:

( ) ( )

空間(Search Space)。而資料結構大致可分為兩種類型:線性詞典(Linear Lexicon)和樹狀詞 典(Tree Lexicon)。

線性詞典結構如下頁圖2.3(A),每一個詞條皆獨立存入字串陣列中,其優點為該資料

LMLA)方法去提前預估語言模型分數。

圖 2.3(A) 線性詞典範例 圖 2.3 (B) 樹狀詞典範例

2.4 語言模型 語言模型 語言模型 語言模型 (Language Model)

語音辨識系統中,語言模型常使用N連語言模型來模擬文句的機率。N連語言模型運用 N-1階馬可夫假設(N-1 Order Markovian Assumption)簡化,換言之該詞條的條件機率部份僅 與前N-1階前詞(Predecessor)有相關。因此語言模型機率P w w( 1, 2,...,wM)可簡化成下式:

2.5 語言模型預查 語言模型預查 語言模型預查 語言模型預查(LMLA)

回到樹狀詞典的議題,當hypothesis要加上語言模型機率分數,必定當作詞轉移才能知 道本身hypothesis是為哪個詞w ,再由語言模型中求得該機率分數i P w w( i| i N− +1,...,wi1);以 圖2.4為例:共有“交通”、 “交通部”和“交通大學”三個詞(雙層圈代表詞尾)。當hypothesis 進入詞首‘交’時,由於有三種詞的可能選擇,因此無法立即給于語言模型分數,即使進入‘通’

仍無法判斷直到hypothesis從‘通’最後一個狀態離開時才能加上w =‘交通’的語言模型分i 數。而‘交通部’和‘交通大學’最快需要進入‘部’和‘大’才能加入它們的語言模型分數。

代表進入此節點後最高分的上限。若此時hypothesis仍被詞轉移刪除演算法(Word End Pruning)刪除,代表該子樹內的詞彙語言模型分數皆過低;反之若此hypothesis存活下來,

圖 2.5 樹狀詞典與雙連語言模型預查分數例圖 去實現,當佇列填滿時則刪除最舊的一筆前詞資料,即為先進先出(First in, First out; FIFO) 的概念。另外可考慮更進一步的方法,如移除最久以前被用過的一筆資料或是雙連機率個 數最少的資料等相關有意義的方法,亦能減少語言模型預查重複計算的次數。另外對於儲 存個數上限多寡會直接影響到重複建立的頻率,若上限設定過低,則越容易重複建立相同 前詞的預查樹。

以上為語音辨識各層架構的簡介,仍需配合維特比演算法(Viterbi Algorithm)和刪除演 算法(Pruning Algorithm)控制整體搜尋空間。以下簡略介紹此兩種演算法的運作原理。

交 交

2.6 維特比演算法 維特比演算法 維特比演算法 維特比演算法(Viterbi Algorithm)

根據聲學模型以及語言模型所組成的Trellis,同一個時間點當有兩條狀態轉移路經重 合至同一個狀態,可使用維特比演算法的概念保留機率分數較高的hypothesis即可。而根據 HMM的轉移的狀況不同可分為“音節內HMM狀態轉移”、 “字元間HMM狀態轉移”以及“詞 轉移HMM狀態轉移”三種情況。

圖2.6(A)為音節內的HMM狀態轉移圖,其中兩條不同來源的路徑都連結到同一個St+1 狀態,由於t+1時間的觀察機率皆在同一個狀態,狀態的轉移機率、和t+1時間以後產生的 路徑皆完全相同,唯一差異點在t時間以前兩條路徑所累積的機率分數,因此運用維特比演 算法概念保留累積分數較佳路徑。而圖2.6(B)為字元間HMM狀態轉移圖,其中有箭頭方向 為詞內某字元的第八個狀態,下一個時間點除了會回到自己本身狀態之外,亦產生進入下 一個字元的第一個狀態的hypothesis。

圖2.6(A)音節內HMM狀態轉移示意圖 圖2.6(B)字元間HMM狀態轉移示意圖 若第八個狀態所在的字元已是一個詞的詞尾,此狀態除了回到本身狀態之外,會延展 出新的詞,換言之即進入新詞的詞首第一個狀態。由圖2.6(C)可發現此時hypotheses會瞬間 增 加 許 多 , 以 大 詞 彙 詞 典 包 含 六 萬 詞 為 例 , 若 採 用 線 性 詞 典 會 產 生 六 萬 個 不 同 的 hypotheses,即使將線狀詞典合併成樹狀詞典仍會產生數千種hypotheses。可將詞轉移情況 思考成圖2.6(D),各個詞尾最後一個狀態皆連接至一條空狀態(Null State),此空狀態代表所 有詞首第一個狀態,即為重新進入樹狀詞典(Reentrant)。這種快速增加的情況,可藉由語 言模型預查以及詞轉移刪除法篩選分數較佳的hypotheses。相對地所耗費的運算量也會大幅 增加。之後會改善辨識系統在此處耗費的運算量。

圖2.6 (C) 詞轉移的HMM狀態轉移示意圖 圖2.6 (D) 樹狀詞典轉移示意圖

2.7 刪除演算法 刪除演算法 刪除演算法 刪除演算法(Pruning Algorithm)

進行語音辨識中,hypothesis的數量會隨著音框前進而數量會變得相當龐大。尤其考慮 N連語言模型時增加的速度更為快速,因此系統實做上利用刪除演算法將分數較低的 hypothesis刪除。原理為辨識途中分數落後太多的hypothesis能再度將分數重新超前的機率 極小,因此在每個時間點留下足夠數量的hypothesis即確保與完全不刪除的辨識結果接近甚 至相同。且可大幅降低辨識的搜尋空間,縮短辨識所耗費的時間。因此如何設定各種刪除 演算法優化整體系統是重要且必要的一個步驟。

本系統採用三種刪除方法:聲學刪除法(Acoustic Pruning)、統計式刪除法(Histogram Pruning)以及詞轉移刪除法(Word End Pruning或Language Model Pruning)。

執行聲學刪除法,先找出當時音框所有hypotheses最高分的hypothesis,再設定刪除分 數的門檻(Threshold),若音框裡hypothesis與最高分差距超過門檻值,則將此hypothesis刪 除,一般稱此演算法為光束搜尋演算法(Beam Searching Algorithm)。聲學刪除法優點為只 需對所有hypotheses作一次整體的刪除即篩選出分數高的hypotheses,然而缺點為當每個 hypotheses分數過於接近則無法有效刪除,使得無法確保系統的搜尋空間以及辨識時間的範 圍。

統計式刪除法作法與聲學刪除法相似,運作原理為設定一個存活總數為N值,讓每個

做上兩種方法可配合一起使用,先採用聲學刪除法去除分數較低的hypotheses,當剩餘 hypotheses仍過多時再採用統計式刪除法留下固定個數的hypotheses。

詞轉移刪除法僅在詞轉移時才作用,當詞轉移時,因單一hypothesis會延展數千個新的 hypotheses導致計算量大增,因此藉由語言模型預查配合詞轉移刪除法的機制,可刪除語言 模型分數較低進而篩選出較佳的hypothesis。降低詞轉移所快速增加的hypotheses。

第三章 第三章

的技巧,如使用整數運算(Integer Operation)取代浮點數計算(Floating Operation)以及迴圈展 開(Loop Unrolling)技巧皆可節省系統程式的運算。以下為分別詳述各部份的演算法。

3.2 聲學模型 聲學模型 聲學模型 聲學模型

對於辨識系統而言,計算聲學模型GMM相似度機率值占整體系統時間高達約30~70%

左右[26],因此如何快速地估計GMM相似度機率值成為加速辨識系統重要課題之一。在快 速計算高斯混合模型(以下簡稱GMM)方面,本論文參考Bryan L. Pellom等人在2001年所提 出的方法[23]。回顧第二章的2-6式:

存入記憶體備用,而

( ( ) ( ) )

MFCC的維度,以節省GMM的計算量。這種方法稱為部份距離刪除法(Partial Distance Elimination; PDE),演算法如表3.1。另外可搭配迴圈展開(Loop Unrolling)方法對於表3.1的 for迴圈作程式最佳化方式即能將削減計算量。

表 3.1 使用 PDE 於快速 GMM 計算

此外如何提前找出 bestMixture 以及儘早刪除非最大值的Mixture,則提出兩種方法:最 佳mixture的預測(Best Mixture Prediction; BMP)以及特徵參數重新排序(Feature Component Reordering; FCR);前者是將前一刻時間在該狀態所得到最佳的mixture套用於現在時間點,

先計算該mixture,將它設為暫定 bestMixture ,之後再去計算剩餘的mixture;後者是藉由 offline測試過後,將MFCC影響相似度機率值大小的維度重新排序後,讓影響成份較大的維 all k Mixtures

sum C

all MFCC j Dimensions

Feature j Mean j sum Variance j

sum Mixture

析與實驗。

approx best BMP

BMP

k

compute Mixture

Mixture Mixture Mixture all k Mixtures except Mixture

sum C

all MFCC j Dimensions

Feature j Mean j sum Variance j

s

complete calculate all MFCC Dimensions to sum

Mixture Mixture sum

<

sum Mixture Mixture sum

Mixture

> =

這兩年亦有學者針對此最近點概算法作相關討論與改進[24],指出使用機率最大的 mixture的分數僅占計算所有mixture分數的85%,因此該GMM分數的解析度(Resolution)不 足,易使整體辨識率受到衰減。故提出動態高斯選擇(Dynamic Gaussian Selection; DGS,演 算法如表3.2)合併前述BMP和FCR的方法,利用經驗知識(Heuristic Knowledge)可在計算途 中設定不同門檻定義值而找出數個較佳mixture加入相似度機率值,讓得到的數值相似度更 接近原本計算所有的mixture的相似度機率值。

3.3 語言模型 語言模型 語言模型 語言模型

語言模型預查查詢(LMLA lookup)和建立兩者是主要都採取以記憶體換取計算時間的

語言模型預查查詢(LMLA lookup)和建立兩者是主要都採取以記憶體換取計算時間的

相關文件