第二章 文獻回顧
2.1 語言模型
2.1.1 統計式語言模型
語言模型在自動語音辨識系統中的主要的作用,是代表語言使用習慣與規 律。當前使用的語言模型為統計式語言模型(Statistical Language Model, SLM),
它統計一個詞在訓練語料中的出現情形,給予該詞一個機率,以代表該詞於某種 語言使用環境下的重要性。至於語言模型在辨識的過程中對辨識器產生的引導作 用,則是在給定一個歷史詞序列的情況下,判斷下一個最有可能出現的詞為何。
此設計理念與Claude Elwood Shannon 在資訊理論(Information Theory)研究 中所提出的問題有關:「給定一個字母序列,下一個字母最有可能會是什麼?」
在這個觀念之下,統計式語言模型成為一個基於歷史資訊之模型(History-based Model):每一個詞w 的出現,都與其歷史詞序列有關,亦即i P(wi |w1w2Lwi−1)。 因此辨識的過程,即是在給定一個歷史詞序列的條件下,判斷下一個最有可能出 現的詞為何,藉由從訓練語料中計算出給定歷史詞序列的條件下所有詞的機率分 布,並取其機率最高者,即可選出下一個最有可能出現的詞。
一段詞序列W =w1w2Lwk在訓練語料中的事前機率P(W),可使用連鎖律 (Chain Rule)分解成:
∏
=−1
N 階馬可夫假設(N-1 Order Markov Assumption),主張每一個詞的出現,只與 前N−1個詞相關: (Bigram)與三連詞(Trigram)模型。例如常見的三連語言模型,可寫為:
∏
= − −N 連詞模型的訓練是透過最大相似度估測(Maximum-likelihood Estimation) 來作估測,以P(wi |wi−2,wi−1)為例,其估測值為: 料稀疏(Data Sparseness)的情形出現時,在測試階段就無法提供必要的歷史詞序 列資訊以判斷下一個詞出現的機率,造成辨識結果和實際語音內容有所誤差。
為解決此問題,前人就各個角度發展方法來因應資料稀疏情形之對策。首 先,就模型面而言,發展了類別語言模型(Class-based Language Model) [Brown et al. 1990],將語意(Semantic)或語法(Grammatical Behavior)相近的詞歸為一類,以 歷史類別序列代替歷史詞序列作為判斷一個詞出現機率的根據。
其次,就資料面而言,快取(Caching)模型和語言模型調適(Language Model
Adaptation)都利用額外的資料以補訓練語料之不足。
快取語言模型[Kuhn and Mori 1990]本身也是個基於歷史資訊之模型,只是 它除了根據訓練語料建立一個基於歷史資訊之模型外,另外在測試階段動態地根 據當下已判讀所得之測試語料歷史,對原有的模型做插補(Interpolate)。快取語言 模型的設計理念是:如果你說了什麼,你可能很快又會再說一次。因此,它在判 讀一部分測試語料後,立即計算這部分測試語料的 N 連詞出現次數,建立一個 動態的 N 連模型。
語言模型調適則是在原有的訓練語料之外,另加入一份資料量較小的調適 語料作為訓練之用。這份調適語料可能時空與領域皆與原有訓練語料相近,只是 用來增加訓練語料的份量以避免資料稀疏,也可能與原有訓練語料之時空或領域 並不相近,而是希望能使訓練結果偏向某一特定時空或領域,卻不具備該時空或 領域之充足資料,因此改為在原有訓練語料中加入一部分特定時空或領域的語 料,以改變語言模型的傾向。
另 外 , 各 種 平 滑 化(Smoothing) 技 術 也 用 來 因 應 資 料 稀 疏 問 題 , 如 Good-Turing Estimate [Goodman 2001]、Katz Back-off Smooting [Katz 1987]與 Kneser-Ney Back-off Smoothing [Kneser et al. 1995] 等技術,將訓練語料中存在之 詞機率分出一部分給其他未曾出現(Unseen)在訓練語料中的詞。這是一種捐獻的 觀念,由於詞機率和必須為 1,若要使某些詞序列的機率不再是 0,也就是欲增 加它們的機率,則勢必要減少其他詞序列之機率,因此,便從原本機率不為 0 之詞序列處收集一些機率,將它分給原本機率為0 的詞序列。例如後向(Back-off) 方法中,就三連語言模型而言,訓練完成之語言模型中包含了多種單連、雙連及 三連詞機率,在測試階段針對特定三連詞而言,若語言模型中並無此三連詞之資 訊,則改以雙連詞與單連詞的組合,來提供此三連詞之機率,使此三連詞之機率 不至為0。
2.1.2 語言模型評估
為了評估(Evaluate)語言模型是否能在辨識過程中順利引導辨識器,使其選 擇最接近正確參照轉寫的候選詞序列作為辨識結果,以及衡量語言模型實際運用 效益多寡,需進行語言模型評估。語言模型評估的主要標準有錯誤率與複雜度二 者,錯誤率評估的是辨識結果,語言複雜度則是單就語言模型進行評量。
(一) 錯誤率(Error Rate)
錯誤率是將一段語音之正確參照轉寫與語音辨識結果作字串比對所得到之 數據。依比對之單位(Unit)不同,可分為字錯誤率(Character Error Rate, CER)與詞 錯誤率(Word Error Rate, WER)。
字串比對可透過動態規劃(Dynamic Programming)方法進行。若以字為對齊 (Align)單位來看,若正確字串中的某個字在辨識結果中被取代為錯誤的另一字,
稱為替代(Substitution);若正確字串中存在的某一字並不存在於辨識結果中,而 是被移除了,則稱為刪除(Deletion);與刪除相反,若辨識結果中多出了並不存在 於正確字串中的字,則稱為插入(Insertion)。
錯誤率之計算方式如下:
% 100 N *
I D Rate S
Error + +
= (2.1.2.1)
其中 S 代表替代數, D 代表刪除數, I 代表插入數,而N則為正確參照轉寫的字 串長度。
(二) 語言複雜度(Perplexity)
語言複雜度是用來評估一個語言模型的方式,其幾何意義為語言模型測試 語料正確語句w1,w2,L,wn之機率倒數的幾何平均數:
m (Geometric Mean of the Branching Factor)。
辨識錯誤率的計算是針對辨識結果作出衡量,由於辨識結果是由辨識系統