• 沒有找到結果。

科技始終來自於人性,要解決語音辨識的問題,我們可以去探討人類如何接受到 聲音或大腦如何進行理解。人類在聽到聲音後,會根據聲音的特性去分析,例如 是尖銳的音色或是低沉的音色,再藉由大腦所獲得的記憶去辨別聲音所帶來的資 訊,接著作出適當的反應;而當今的語音辨識流程也類似於上述人類的聽覺感受 過程。

自動語音辨識系統主要可以分成四個主要的部份,分別是特徵擷取(Feature Extraction)、聲學模型(Acoustic Model)、語言模型(Language Model)與語言解碼 (Linguistic Decoding),透過這些部份才會得到最後辨識結果。當電腦接受到一段

圖 1-1:自動語音辨識流程圖

語音訊號

聲學 語言 模型

模型 詞典

特徵 擷取

文字 語料

語音 語言模型 語料

訓練

聲學模型 訓練

語言解碼

特徵向量

辨識結果

3

(一)特徵擷取(Feature Extraction)

特徵擷取顧名思義就是從語音訊號中,找出能夠代表此段語音訊號的特徵,而獲 取的特徵為了利於電腦做分析及運用。因此表示成特徵向量,常見的方法有線性 預測係數(Linear Prediction Coefficients, LPC) [Makhoul, 1975]、感知線性預測係數

4

(Perceptual Linear Prediction Coefficients, PLPC)[Hermansky, 1990]、異質性線性鑑 別分析(Heteroscedastic Linear Discriminant Analysis, HLDA)[Kumar, 1997]、最大相

似度線性轉換(Maximum Likelihood Linear Transformation, MLLT)[Gales, 1998]以 及 梅 爾 倒 頻 譜 係 數 (Mel-Frequency Cepstral Coefficients, MFCC)[Davis and Mermelstein, 1980]等不同的語音特徵參數。其中梅爾倒頻譜係數(MFCC)是由考慮 人耳聽覺和發音系統特性發展而成,在不受干擾的情況下,相較於其他方法有較 佳的辨識能力,因此有許多強健性語音特徵研究都是針對其發展。

而 MFCC 特徵擷取的過程有預強調(Pre-emphasis)、音框化(Windowing)、離 散 傅 立 葉 轉 換 (Discrete Fourier Transform, DFT) 、 梅 爾 三 角 濾 波 器 組 處 理 (Mel-Scaled Triangular Filterbank Processing) 、 離 散 餘 弦 轉 換 (Discrete Cosine Transform, DCT)、對數能量(Log Energy)運算及時間差量(Time Derivation)運算等 程序,流程如圖 1-2 所示。

圖 1-2 :MFCC 特徵擷取流程圖 語音訊號

離散傅立 預強調 音框化 葉轉換

梅爾三角 濾波器組

離散餘弦 轉換 對數能量

轉換

時間差量 語音特徵向量 運算

5

由於現實生活中,往往會因為環境中諸多複雜因素影響,導致訓練語料會有 與測試語料在環境中不匹配(Mismatch)的問題,使得辨識率大幅下降。因此,在 取得特徵向量後,便可考慮環境或噪音對語音特徵的影響,進一步對特徵向量進 行校正以去除雜訊。

(二)聲學模型(Acoustic Model)

在數字辨識、關鍵詞辨識等小詞彙數辨識任務中,通常以全詞模型(Whole-word Model)當作聲學模型的單位。而在中、大詞彙數辨識任務中,考慮到訓練語料的 收集與聲學模型的一般化能力(Generalization Ability),因此不會使用詞典中的每 個詞去建立單獨的聲學模型,取而代之的是使用比詞更小的單位去建立模型,如 子詞(Sub-word Unit)單位、音素(Phone)或音節(Syllable)等,接著,利用發音詞典 (Pronunciation Lexicon)來串接每一詞彙所對應的每個聲學模型。由於中文的每個 字(Character)皆是以一個音節所組成,因此設計中文語音辨識器時會將中文音節 再細分為聲母(Initial)及韻母(Final)兩種聲學單位,也可稱為子音(Consonant)和母 音(Vowel),分別建立聲母模型和韻母模型。

因語音是具有時序性的,一般而言皆採用由左至右(Left-to-right)的隱藏式馬 可夫模型(Hidden Markov Model, HMM)[Rabiner, 1989]來建立聲學模型。如圖 1-3,

它便是一個具有三個狀態的隱藏式馬可夫模型;每個狀態中都會有對每個音框 (Frame) 所 形 成 的 語 音 特 徵 參 數 向 量 之 觀 測 機 率 分 佈 (Observation Probability Distribution)和相對應的狀態轉移機率(State Transition Probability),用來決定是否 要停留在此狀態或是轉移到下個狀態。

而常見的聲學模型訓練方法有最大化相似度訓練法(Maximum Likelihood, ML) [Bahl et al., 1983]、最大化交互資訊(Maximum Mutual Information, MMI)[Bahl et al., 1986] 、最小化分類錯誤(Minimum Classification Error, MCE)[Juang and

6

Katagiri, 1992]或是最小化音素錯誤(Minimum Phone Error, MPE)[Povey, 2004]

等。

(三) 語言模型(Language Model)

不同於聲學模型,語言模型的目的是企圖描述語言的特性,並希望能夠預測語音 訊號中的下一個字,由於聲學模型缺少了語句中詞與詞之間的資訊,只能辨識某 一段語音訊號與音節、音素或詞的相似程度,有鑑於此,需要利用一個語言模型 來估測詞與詞之間的連接關係。在語音辨識過程中,詞彙數是有限的,所以可能 得詞序列組合也是可數的。因此, 語言模型 常使用多項式 分佈(Multinomial Distribution),並且它被用於直接估測詞序列的機率質量函數(Probability Mass Function, PMF)。一段詞序列 W 的事前機率可以用鏈鎖率(Chain Rule)展開,得到 條件機率的連乘積:

7

間將會根據歷史詞序列呈指數成長,因此語言模型很難去估測或儲存所有的資訊。

目前最廣泛使用的語言模型為 N 連語言模型,它基於已知的前 N-1 詞來預測下一 個詞出現的可能性,即所謂的 N-1 階馬可夫假設(N-1 order Markov Assumption)。

一般為了減少參數量的複雜度,常使用二連詞(Bigram)及三連詞(Trigram),

卻使得語言模型無法獲得更多的歷史資訊或長距離資訊。而另一方面,如果將 N 的大小增加,不僅會造成參數量呈指數倍成長,當實際使用時,在時間、空間複 雜度也都會有所影響,並且會導致語言模型招致訓練資料稀疏的問題,需要更多 的訓練語料來彌補。換言之,在語言模型中就會有詞的機率為零因而無法正確估 測,加上要評估一個詞序列發生的可能性,由於詞的機率是連乘的,當中有一詞 之條件機率為零的話會導致詞序列機率也為零,就可能導致辨識錯誤。解決此問 題的方法有平滑化(Smoothing)技術及分群(Clustering),就平滑化技術而言,常見 的有 Katz 平滑化法[Katz, 1987]和 Good-Turning 平滑化法[Good, 1953; Chen and Goodman, 1999]等,其概念是將訓練語料中每個詞序列出現的統計次數依照各式 比例原則折扣部份次數,再把這些次數以各式比例原則分派給在訓練語料中沒有 出現的其它詞序列,以解決機率為零之問題。另外,群集模型(Clustering Model) 則是使相似的詞聚集在同一類別,以解決資料稀疏的問題。例如:有兩句話「有 個約會在星期五」和「有個約會在星期六」,則我們可以想像「星期五」和「星 期六」在此為相似的詞,因此可以視為同一類別。

當語言模型使用於語音辨識時,它不僅可解決聲學混淆的問題與限制辨識的 搜尋空間,更重要的是,它能藉由不同上下文或者其它資訊來預測每個詞可能出 現的機率分布,並輔助語音辨識器評估各個候選詞序列在自然語言中的合理性,

因而找出最有可能之候選詞序列。

(四) 語言解碼(Linguistic Decoding)

8

透過輸入語句的特徵向量在對應聲學模型上之相似度,及所形成詞序列之語言模 型機率,我們可以找出最有可能的詞序列。一般我們會使用維特比動態規劃搜尋 (Viterbi Dynamic Programming Search)[Viterbi, 1967],結合聲學相似度和語言模型 之機率去有效率地找出可能的詞序列。此外,由於龐大的詞彙量與複雜的語言模 型會使得搜尋的空間呈現指數型態的成長,為了降低搜尋的空間複雜度及加快辨 識速度,一般會分成兩個階段做處理。第一階段使用聲學模型和較低階的語言模 型 進 行 詞 彙 樹 動 態 規 劃 搜 尋 , 以 及 利 用 語 言 模 型 前 看 (Language Model Look-ahead)[Aubert, 2002]技術、聲學前看與光束剪裁等技術來去蕪存菁,捨棄機 率較低的詞序列來產生最佳詞序列和詞圖(Word Graph)。第二階段則是對詞圖重 新進行動態規劃搜尋,一般通稱為重新計分(Rescoring),並且使用更高階的語言 模型,結合其它的信心度分數(Confidence Score)來找出 M 條最佳詞序列(M-Best)。

由於詞圖所產生的最佳詞序列,並不一定是字錯誤率最低的詞序列。因此有許多 研究透過語言模型來來進行重新排序(Reranking),期望能從 M 條最佳詞序列中找 出字錯誤率最低的詞序列,以做為最後的輸出結果。

9