• 沒有找到結果。

語⾔模型分數 假說空間搜尋

辨識結果

聲學模型分數

圖 2.1: 語音辨識流程

拿掉此項並不妨礙找機率最大的文句,所以可簡化為:

W = arg maxˆ

uPW

p(O|u)P (u) (2.3)

2.1 特徵擷取

特徵擷取是要將人類說話時所產生類比訊號轉成自動語音辨識 (ASR) 系統可以 處理的語音特徵向量序列 (speech feature vector sequence),也就是將類比訊號參數 化 (parameteriation)。這個部份通常會透過類比數位轉換 (analog-to-digital convert)、

傅立葉轉換 (fourier transform) 及倒頻譜分析 (cepstral analysis) 擷取語音訊號中比 較重要的參數。目前最具代表性的語音特徵參數為梅爾倒頻譜係數 (mel-frequency cepstral coefficients, MFCC)。在擷取此特徵的時候,我們會將語音資料切割成一連 串部份重疊的音框 (frames),每一個音框最後表示成由 12 維梅爾倒頻譜係數和 1 維的能量特徵再加上其一階與二階的時間軸導數 (time derivatives) 所組成的 39 維 特徵向量。其中取一階與二階時間軸導數的原因主要是為了能獲得語音特徵在時 間上 (temporal) 的相關資訊。因為訓練語料通常會與測試語料有不匹配 (mismatch)

10

的問題存在,而我們也會希望所擷取的特徵係數具有強健性 (robust),所以便有 一些技術是以擷取語音訊號中較具有強健性的特徵為主要目的,使得擷取出來的 特徵可以抵抗週遭的環境變化。常見的技術有倒頻譜平均消去法 (cepstral mean subtraction, CMS) [27]、倒頻譜正規化法 (cepstral normalization, CN) [28] 等。

除了以上強健性技術之外,還可以利用鑑別性分析 (discriminant analysis) 來計 算原始語音資料的一些相關統計資訊,將原本的語音特徵投影到新的特徵空間,

以得到較具有鑑別性的特徵。較常見的方法則為線性鑑別分析 (linear discriminant analysis, LDA) [29]。

濾波器組特徵是由梅爾頻譜上取得的對數能量特徵並透過濾波器組 (filter banks) 所產生的 40 維輸出,再加上 3 維的聲調特徵做為 43 維的濾波器組特徵,

並加上其一階與二階的時間軸導數 (time derivatives) 所形成的 129 維語音特徵向量 所組成。

2.2 聲學模型

為了處理語音訊號在時域上的變化,傳統都是使用由左至右 (left-to-right) 的連續 密度隱藏式馬可夫模型 (continuous density hidden Markov model, CDHMM) 來作為 聲學模型。是一個具有三個狀態 (state) 的 HMM 模型,每個狀態中都具有高斯混 合模型 (Gaussian mixture model, GMM) 分佈。另外,每個狀態也有相對應的狀態 轉移機率 (state transition probability),用來控制下一個時間點要停留在自己或是 轉移到下一個狀態。根據語音特徵參數是連續或非連續的值,HMM 每個狀態中 的觀測機率 (observation probability) 估測方式可分為離散型 (discrete)、半連續型 (semi-continuous) 及連續型 (continuous) 三種,而目前的自動語音辨識系統主要都 是連續型或半連續型為主。就連續型而言,為了減少估算觀測機率的參數量,也 因為任何機率分佈理論上皆可以由多個高斯分佈 (Gaussian distributions) 來逼近的

特性,一般都是使用高斯混合分佈 (Gaussian mixture distributions) 來近似此機率分 佈。而連續型與半連續型主要的差別在於在連續型中每個狀態擁有自己的高斯分 佈,而半連續型則會有共用高斯分佈的情況。本論文是採用連續型的隱藏式馬可 夫模型,其中每個狀態有 2 到 128 個不等的高斯分佈。

聲學模型在小詞彙上 (如: 數字辨識),常以全詞模型 (whole-word model) 為單 位,但在中大詞彙上,因為訓練上的考量,不會對每個詞建一個聲學模型,而 是以較小的單位來建模型,如: 次詞單位 (sub-word unit)、音節 (syllable) 或音素 (phone),再利用發音辭典 (pronunciation lexicon) 來串接每個聲學模型。由於一個 中文音節 (syllable) 是由一個聲母 (Initial) 及一個韻母 (Final) 組成,22 個聲母及 38 個韻母構成約 400 個音節。基本上,我們只要為每個聲母及韻母建立屬於它的聲 學模型,便可以辨識所有的中文音節。本論文共使用了 38 個韻母模型,但在聲母 模型的部份,因為考慮到不同的右邊相連韻母對其聲母發音特性所造成不同的影 響,而將 22 種聲母再細分成 112 種聲母模型,亦即聲母部份採用右相關聯模型 (right-context-dependent model, RCD)。另外,我們加入一個靜音 (silence) 模型來估 測語音訊號中靜音部份。

2.3 語言模型

由於聲學模型本身只能辨識某一段語音訊號代表的是何種音素或音節序列,而無 法確認其對應的詞 (中文有許多同音詞),且句子中詞跟詞的連接其實存在某種規 則性,因此便需要有語言模型的存在。由於語言模型的機率分佈是離散型的 (多 項式分佈),以詞單連 (unigram) 語言模型為例,每一個詞編號都會有其對應的機 率。在估計語言模型的機率時,並不使用機率密度分佈函數,而是直接估測個別 詞序列的機率質量函數 (probability mass function, PMF) ) P (w1, w2, ..., wN),其中 w1, w2, ..., wN 為此詞序列所包含的詞彙。但對整個詞序列的估測參數會隨著詞彙

12

數量成指數成長,因此會遭遇資料稀疏 (data sparseness) 的問題。為了解決此問 題,我們會先將語言模型的式子展開成條件機率的連乘積,再利用 n ´ 1 階的馬 可夫假設 (n ´ 1 order Markovian assumption) 簡化,如下所示:

P (W ) = P (w1, w2, ..., wN) «

N

ź

k=1

P (wk|wk´n+1, ..., wk´2, wk´1) (2.4)

其中 N 為詞的個數,wk|wk´n+1, ..., wk´2, wk´1 則是 wk 的歷史詞序列,式 2.4便 是常見的 n-連 (n-gram) 語言模型表示法。一般為了方便起見,以及減少參數 量的複雜度,常使用詞二連 (bigram) 及詞三連 (trigram) 兩種模型 (也就是分別 使 用 一 階 及 二 階 的 馬 可 夫 假 設)。 如 同 聲 學 模 型, 語 言 模 型 也 需 要 有 大 量 的 文 字 語 料 來 做 為 訓 練 之 用。n-連 語 言 模 型 的 訓 練 方 法 有 最 大 化 相 似 度 估 測 法 (maximum likelihood estimation, MLE)、最大熵值法 (maximum entropy, ME) [30]

或 是 最 小 詞 錯 誤 (minimum word error, MWE) [31] 等, 另 外 為 了 處 理 某 些 詞 可 能 在 訓 練 語 料 沒 有 出 現 的 問 題, 通 常 會 搭 配 如 Katz Smoothing [32] 及 Kneser-Ney Smoothing [33] 等 語 言 模 型 平 滑 技 術, 對 這 些 估 測 機 率 原 本 為 零 的 部 份 (P (wk|wk´n+1, ..., wk´2, wk´1) = 0) 加以平滑化處理。

2.4 聲學比對及語言解碼

在依式 2.2尋找最佳詞序列時,由於分母的部份並不會影響最後詞序列排名的結 果,因此實作上常將分母的部份省略。有了這項前提之後,就可以利用式 2.3 中 的聲學模型與語言模型作聲學比對及語言解碼,聲學比對是負責將音素及詞序列 中每一個可能的語音段落做比對,計算其相似度;語言解碼一般是使用維特比動 態規劃搜尋 (Viterbi dynamic programming search) [34],結合聲學相似度及語言模 型機率去找出一條最佳的詞序列。此外,由於搜尋空間會隨著詞典大小成指數成

長,因此,在搜尋時,通常會透過搜尋路徑裁減 (pruning) 技術來停止繼續尋找一 些機率較低的詞序列,以減低其計算複雜度及記憶體使用量。搜尋時隨著語言 模型愈複雜,搜尋空間也呈指數成長,為了降低搜尋時的複雜度,通常會透過 兩階段的搜尋來完成:第一階段進行聲學比對並使用較低階的語言模型來搜尋,

保留機率較高的候選文句;第二階段則使用較高階的語言模型再進行重新搜尋 (rescoring) [35]。

14

相關文件