國 立 交 通 大 學
電信工程研究所
碩 士 論 文
以韻律輔助之中文語音辨認系統之實現
An Implementation of Prosody-Assisted Mandarin
Speech Recognition System
研究生:劉銘傑
指導教授:陳信宏 博士
以韻律輔助之中文語音辨認系統之實現
An Implementation of Prosody-Assisted Mandarin Speech
Recognition System
研 究 生:劉銘傑 Student:Ming-Chieh Liu
指導教授 :陳信宏 博士 Advisor:Dr. Sin-Horng Chen
國 立 交 通 大 學 電 信 工 程 學 系
碩 士 論 文
A Thesis
Submitted to Institute of Communication Engineering College of Electrical and Computer Engineering
National Chiao Tung University in Partial Fulfillment of the Requirements
for the Degree of Master of Science in Communication Engineering
July 2011
Hsinchu, Taiwan, Republic of China
以韻律輔助之中文語音辨認系統之實現
研 究 生:劉銘傑 指導教授:陳信宏
博士
國立交通大學電信工程研究所碩士班
中文摘要
本研究提出一套新的整合韻律資訊於中文大辭彙連續語音辨認之方法。有別於以往 只利用少數韻律資訊來幫助語音辨認,本研究利用先前已開發出的 PLM 演算法從大量 未經人工標記的語料庫中自動產生訓練出 12 種韻律模型,並將其加入到 two-stage 自動 語音辨認系統中,對系統中第一個 stage,也就是傳統 HMM 辨認器所產生的詞圖(word lattice)作重新評分的動作,如此可以得到更正確的詞辨認序列;此外,系統第二個 stage 還會同時解碼出更多資訊,包含詞性(POS)、詞後所接的標點符號(PM)以及用來建構測 試語料之階層式韻律架構的兩種韻律標記。本研究實驗語料是利用包含朗讀式長句之 TCC300 語料庫,同時實驗中會引入一個 factored 語言模型,它是一個描繪詞、詞性及 標點符號三者之間關係的模型,用以產生更好的 baseline 辨認效能。本研究在加入所有 韻律資訊後之實驗結果對於詞(word)、字(character)、音節(syllable)的錯誤率分別為 20.1%、13.6%及 9.4%,與 baseline 結果比較起來則分別改善了 4.1%、4.0%及 2.4%的絕 對錯誤率(16.9%、22.6%及 20.6%的相對錯誤率)。經由實驗結果分析,可以發現本系統 能成功修正許多聲調及詞的錯誤辨認。An Implementation of Prosody-Assisted Mandarin
Speech Recognition System
Student:Ming-Chieh Liu Advisor:Dr. Sin-Horng Chen
Institute of Communication Engineering
National Chiao Tung University
Abstract
This thesis presents a new prosody-assisted ASR system for Mandarin speech. It differs from the conventional approach of using simple prosodic cues on employing a sophisticated prosody modeling approach to automatically generate 12 prosodic models from a large unlabeled speech database by the PLM algorithm proposed previously. By incorporating these 12 prosodic models into a two-stage ASR system to rescore the word lattice generated in the first stage by the conventional HMM recognizer, we can obtain a better recognized word string. Besides, some other information can also be decoded, including POS, PM, and two types of prosodic tags which can be used to construct the prosody hierarchical structure of the testing speech. Experimental results on the TCC300 database, which consists of long paragraphic utterances, showed that the proposed system significantly outperformed the baseline scheme using a factored LM to model word, POS, and PM. Performances of 20.1%, 13.6%, and 9.4% in word, character, and base-syllable error rates were obtained, which corresponds to 4.1%, 4.0%, and 2.4% absolute (16.9%, 22.6%, and 20.6% relative) error reductions. By error analysis, we found that many word segmentation errors and tone recognition errors were corrected.
致謝
由衷感謝陳信宏老師兩年來的教誨,在百忙之中仍然心繫著學生的研究,不時提點 我在研究上的盲點。感謝王逸如老師教導我如何做一位真正的研究生,而不是交作業的 大學生。感謝一路指導我和ㄧ起奮戰的智合學長、皓翔學長、超強的性獸學長、帥哥阿 德學長、幽默的輝哥學長、跑去開公司的巴金叔、愛護地球的希群學長。感謝和我ㄧ起 奮戰兩年的文良、啟全、豆腐、大胖、小蝦、智障、進竹、冠驛、佳緯以及帥氣優秀文 武雙全的碩一學弟妹。最後感謝我的所有親人,祝大家心想事成。目錄
中文摘要 ... I Abstract ... II 致謝 ... III 目錄 ... IV 表目錄 ... VII 圖目錄 ... VIII 第一章 緒論 ... 1 1.1 研究動機 ... 1 1.2 文獻回顧 ... 1 1.3 研究方向 ... 4 1.4 章節概要說明 ... 5 第二章 基本語音辨認系統 ... 6 2.1 TCC-300 基本辨認系統架構 ... 6 2.1.1 語料庫簡介 ... 7 2.1.2 語言模型之架構及建立 ... 8 2.1.2.1 語言模型架構 ... 8 2.1.2.2 語言模型之建立 ... 9 2.1.3 聲學模型之建立 ... 10 2.2 基礎實驗結果 ... 11 第三章 階層式語音韻律模型 ... 13 3.1 中文語音韻律階層式架構 ... 13 3.2 階層式韻律模型設計 ... 153.2.2 韻律狀態模型 ... 18
3.2.3 音節韻律模型 ... 19
3.2.4 停頓聲學模型 ... 20
第四章 使用階層式語音韻律模型於中文大詞彙語音辨認系統 ... 22
4.1 使用韻律訊息於 two-stage 語音辨認系統 ... 22
4.1.1 Joint Syntax Model 之架構 ... 23
4.1.2 第二級辨認器之實作 ... 25
4.1.2.1 參數正規化 ... 27
4.1.2.2 各階段 lattice 之展開 ... 28
4.2 鑑別式模型組合 ... 38
第五章 實驗結果與分析 ... 41
5.1 Joint Syntax Model 之建立 ... 41
5.2 階層式韻律模型之訓練 ... 43
5.2.1 Break Syntax Model ... 43
5.2.2 停頓聲學模型 ... 45 5.2.3 韻律狀態模型 ... 48 5.3 使用韻律訊息於語音辨認 ... 49 5.3.1 Syllable Tone 辨認率算法 ... 52 5.3.2 POS 辨認率算法 ... 52 5.3.3 PM 辨認率算法 ... 53 5.3.4 辨認結果分析 ... 53 5.3.4.1 OOV 的分析 ... 53 5.3.4.2 針對韻律邊界停頓標記及音節韻律狀態的分析 ... 54 5.3.4.3 各級辨認結果之比較 ... 54 5.3.4.4 各級 lattice 複雜度總整理 ... 59 第六章 結論與未來展望 ... 60
6.1 結論 ... 60
6.2 未來展望 ... 60
參考文獻 ... 61
表目錄
表 2.1:TCC-300 語料庫統計表 ... 7 表 2.2:MFCC 參數抽取設定檔 ... 11 表 2.3:音節辨認率(free-grammar) ... 11 表 2.4:搭配語言模型之詞辨認率 ... 12 表 2.5:搭配語言模型之字元辨認率 ... 12 表 2.6:搭配語言模型之音節辨認率 ... 12表 2.7:bigram word lattice 之詞、字及音節涵蓋率 ... 12
表 3.1:韻律結構之停頓標記 ... 15
表 3.2:韻律標記、聲學參數以及語言參數之數學符號 ... 16
表 5.1:factored PM model 的 perplexity ... 42
表 5.2:factored POS model 的 perplexity ... 42
表 5.3:詞(word)辨認率 ... 50 表 5.4:字(character)辨認率 ... 50 表 5.5:音節(syllable)辨認率 ... 50 表 5.6:帶聲調音節(tonal syllable)辨認率 ... 51 表 5.7:音節聲調(syllable tone)辨認率 ... 51 表 5.8:詞性(POS)辨認率 ... 51 表 5.9:標點符號(PM)辨認率 ... 52 表 5.10:搶詞狀況的改善 ... 55 表 5.11:一字詞辨認的改善 ... 56 表 5.12:聲調修正 ... 58 表 5.13:實驗中各層級之 lattice 複雜度 ... 59
圖目錄
圖 1.1:傳統韻律模型之設計流程圖 ... 3 圖 1.2:本研究所使用之韻律模型設計流程圖 ... 4 圖 2.1:基本語音辨認流程圖 ... 6 圖 2.2:語言模型訓練流程圖 ... 10 圖 3.1:中文語音韻律之階層式架構概念 ... 13 圖 3.2:本研究所採用的階層式韻律架構 ... 14 圖 3.3:四種韻律模型搭配韻律標記、語言參數及韻律聲學參數之間的關係 ... 18 圖 4.1:以 two-stage 方式之韻律輔助中文語音辨認系統流程圖 ... 22圖 4.2:factored POS model 的 backoff 路徑 ... 24
圖 4.3:factored PM model 的 backoff 路徑 ... 25
圖 4.4:辨認器第二級三階段實作流程圖 ... 26
圖 4.5:第一階段 lattice 之 node expansion ... 28
圖 4.6:第一階段 lattice 之 arc expansion ... 28
圖 4.7:第二階段 lattice 之架構範例 ... 30 圖 4.8:第二階段 lattice 之內部工作流程範例 1 ... 30 圖 4.9:第二階段 lattice 之內部工作流程範例 2 ... 31 圖 4.10:第二階段 lattice 之內部工作流程範例 3 ... 31 圖 4.11:第二階段 lattice 之內部工作流程範例 4... 32 圖 4.12:第二階段 lattice 之內部工作流程範例 5 ... 32
圖 4.13:第二階段 lattice 之 node expansion ... 32
圖 4.14:第二階段 lattice 之 arc expansion ... 33
圖 4.15:第三階段 lattice 之架構範例 ... 34
圖 4.17:第三階段 lattice 之內部工作流程範例 2 ... 35
圖 4.18:第三階段 lattice 之內部工作流程範例 3 ... 36
圖 4.19:第三階段 lattice 之內部工作流程範例 4 ... 36
圖 4.20:第三階段 lattice 之內部工作流程範例 5 ... 36
圖 4.21:第三階段 lattice 之 node expansion ... 37
圖 4.22:第三階段 lattice 之 arc expansion ... 37
圖 4.23:第三階段 lattice 之內部工作流程範例 6 ... 38
圖 5.1:factored model 訓練架構流程圖 ... 42
圖 5.2:break syntax model 的決策樹架構 ... 43
圖 5.3:圖 5.2 中 break syntax model 的決策樹架構更深層部分 ... 44
圖 5.4:(a)音節停頓長度 (b)正規化音節延長因子 1 (c)正規化音節延長因子 2 (d) 正規化 基頻跳躍值之分布圖 (e)音節間能量低點 ... 46
圖 5.5:停頓聲學模型針對 7 種韻律邊界停頓之決策樹架構 ... 48
圖 5.6:基於不同韻律邊界停頓類型之的音節音高韻律狀態轉移 ... 49
第一章
緒論
1.1 研究動機
使用韻律訊息於語音辨認是近幾年來非常熱門的研究議題。所謂韻律就是指在連續 語音當中具有跨越區段(suprasegmental)的特徵現象,像是重音表現、聲調、停頓、語調 及節奏等;如果將韻律現象以物理特性表現出,通常會出現在語音中音高軌跡的變化、 能量強度、語音長度及停頓當中。韻律與各層級的語言參數都有高度的相關性,從音素 (phone)、音節(syllable)、詞(word)、片語(phrase)到句子(sentence)甚至是更高層次的語言 參數,也因為有著重要的相關性,韻律資訊對於提升語音辨認的準確度是會有幫助的。 一般來說,為了使用韻律資訊於語音辨認,我們會先找出語音中韻律聲學參數與語言參 數之間的關係,並且將其關係特性訓練成韻律模型,最後將這些模型加入到語音辨認 中,達到運用韻律資訊的效果。1.2 文獻回顧
過 去 已 經 有 許 多 關 於 使 用 韻 律 訊 息 於 語 音 辨 認 的 研 究 被 發 表 [1]-[10] 。 Ananthakrishnan等人 [1] - [3]提出以加入韻律語言模型和韻律聲學模型對於傳統的基於 HMM的語音辨認器所產生的N-best詞串或是word lattice作重新評分的動作,其中韻律聲 學模型採用GMM/MLP來模式化(model)詞的二元音高重音(binary pitch accent)標記與韻 律聲學參數(來自於語料中音高軌跡、能量及音長)之間的關係;語言韻律模型則是使用 trigram語言模型並將其中每一個詞建立複合標記(compound tokens)以及二元音高重音標 記。此外,由於兩種韻律模型是使用少量人工韻律標記語料所訓練而成,所以研究中使 用一非監督式的方法來對兩種韻律模型進行調適[1],用以解決因缺乏大量人工韻律標記 的語料庫所造成的問題,研究結果對於在Boston University Radio News Corpus (BU-RNC) 的詞錯誤率(WER)相對改善了1.2-3.1%。Chen等人[4]使用了兩種韻律資訊,分別為語調短語邊界(intonational phrase boundary)和音高重音(pitch accent),用以在語音辨認器中建 立韻律相依(prosody-dependent)的詞及音素模型,研究結果對於在BU-RNC的WER相對 改善了6.9%。Milone等人[5]提出將重音資訊加入到語音辨認,這種方法是利用語音信 號中的音高及能量來建立一個詞的重音結構序列,完成後將其加入到語音辨認,其中音 高 及 能 量 的 取 得 是 利 用 一 個 基 於 HMM 的 分 類 器 或 是 類 神 經 樹 狀 網 路 (neural tree networks)分類器;辨認系統中的語言模型之建立也會利用到片語(phrase)中的詞屬重音結 構。研究結果對於在medium-vocabulary Spanish continuous-speech recognition task的WER 相對改善了28.91%。Vergyri等人[6]提出整合多樣的韻律資訊語音辨認,研究中所使用 的韻律模型包含詞長(word duration)模型、停頓(pause)語言模型以及一些隱藏事件(如句 子邊界和語音不流暢性)的韻律模型,研究結果對於在Switchboard database的WER相對 改善了2.6-3.1%。Ostendorf等人[7]提出了一種統計模型框架對於使用韻律資訊在語音辨 認,其中幾個議題將在此進行討論,包括在不同時間刻度(time scale)中抽取韻律特徵參 數和參數正規化、比較兩種建立韻律模型的方式,一種是使用一個intermediate symbol representation來作韻律模式(prosody modeling);另一種是直接給定聲學相關(acoustic correlates)的條件下作韻律模式、如何設計問題集關於對韻律結構中的聲學模型作分類、 在給定韻律聲學特徵之條件下如何建立動態發音模型。在文獻[8]中,將在中文語音辨認 裡採用word-dependent聲調模式(tone modeling),此方法所使用的韻律參數包含音節長 度、三個F0 values並搭配兩種back-off策略,研究結果對於在Mandarin broadcast news ASR task的字元錯誤率(CER)有少量的改善。在文獻[9]中,利用韻律特徵(音高軌跡)參數和語 言參數所建立的聲調模型於中文語音辨認,研究結果對於在Project-863 database的CER 相對改善了3.65%。 除了上述關於使用韻律資訊幫助提升語音辨認的準確率外,還有許多跟韻律模式結 合語音辨認的相關研究議題被提出,Liu等人[11]提出了一套豐富語音辨認作法,它能夠 自動偵測出一般電話中對話及新聞廣播(NIST RT-04F)中的句子邊界及語音不流暢性。 Shriberg等人[12]使用了決策樹的方法將語音中的節奏(rhythmic)及旋律(melodic)等特徵 給模式化,並利用至多項研究議題,如句子切割、語音不流暢性偵測、廣播新聞中的主
題偵測及追蹤、口語對話中的語音辨認、對話行為標記等;雖然韻律模式對於以上這些 研究議題有幫助,但對於提升詞辨認率而言仍屬微量。 從上述關於使用韻律資訊於語音辨認的相關研究中,我們將重點歸類在韻律模型的 建立,圖1.1便是這些相關研究如何做韻律模式的流程圖,這些研究的共同點都是先找尋 一些關鍵且重要的韻律資訊,然後在利用人工做好標記的少量語料來建立韻律模型,用 以描述韻律資訊與不同階層的語言參數甚至是韻律聲學參數之間的關係,通常人工韻律 標記是基於ToBI標記系統[13]之下。這樣作法的主要缺點是缺乏一個大量且優質標記的 語料庫,因此只有少數明顯的韻律資訊被利用,像是音高重音(pitch accent)及語調片語 邊界(intonational phrase boundary)等,如此一來,想要靠使用韻律資訊來提升語音辨認 的準確性,其提升幅度便會大受影響。
1.3 研究方向
本研究將使用新的韻律模型,其產生方式如圖1.2所示,這也是延續了實驗室之前的 研究[14],關於使用未經人工標記的語料來做非監督式語音韻律標記及韻律模型建立。 韻律模型是建立在四階層式韻律架構之下,並且使用韻律邊界停頓、音節韻律狀態這兩 種韻律標記來表達這階層式的韻律架構,本研究中所使用的多種韻律模型就是描述這兩 種韻律標記與語言參數及韻律聲學參數之間的關係。至於訓練模型的方法,是使用韻律 標記及韻律模式(joint prosody labeling and modeling,簡稱PLM)演算法[14]從大量未經標 記的語料中訓練各種韻律模型。也由於現在所使用的韻律模型內包含了更多、更完整的 韻律資訊,若是將它與語音辨認結合,可以期望其效能會超越以往的相關研究;此外, 本研究方法最終不只會解碼出詞(word)序列,同時會包含更多資訊,像是詞性(POS)、標 點符號(PM)等語言參數序列及代表韻律架構的兩種韻律標記序列,屬於豐富語音辨認系 統(enriched speech recognizer)。1.4 章節概要說明
本論文一共分為六章,其各章節內容分配如下: 第一章:緒論。 第二章:基本語音辨認系統。 第三章:階層式語音韻律模型 第四章:使用階層式語音韻律模型於中文大詞彙語音辨認系統 第五章:實驗結果及分析。 第六章:結論與未來展望。第二章
基本語音辨認系統
本章是介紹本研究中所使用的基本語音辨認系統,辨認器中的包含聲學模型及語言 模型,其中聲學模型是使用 TCC-300 語料庫建立,以隱藏式馬可夫模型呈現,用以描述 發音過程的狀態轉移現象和輸出結果,並加入由一大量文字語料庫訓練出的語言模型來 提升詞(word)辨認率。2.1 TCC-300 基本辨認系統架構
下圖 2.1 就是基本語音辨認系統架構,從輸入音檔中抽取聲學特徵參數序列X ,經a 辨認過程後輸出辨認詞串W ,其基本原理數學式如下: ∗arg max (P | a) arg max (P ) (P a| )
∗ = = W W W W X W X W (2.1), 圖 2.1:基本語音辨認流程圖 (2.1)式中 W 代表詞,X 為聲學特徵參數,並經過最大事後機率法則將數學式化減成兩a 部分,其中 (P W 分數由語言模型(language model,簡稱 LM)計算得到; () P Xa |W 分數)
2.1.1 語料庫簡介
本研究是使用 TCC-300 麥克風語音資料庫,它由國立台灣大學、國立成功大學及國 立交通大學所共同錄製,此語料庫屬於麥克風朗讀語音,檔案統計資料如表 2.1 所示。 每個學校之語句取樣頻率皆為 16000 赫茲(Hertz),取樣位元數為 16 位元。音檔檔頭為 4096 位元組(byte),副檔名為*.vat。 表 2.1:TCC-300 語料庫統計表 學校名稱 文章屬性 語者總數 總音節數 音檔總數 台灣大學 短文 男 50 男 27541 男 3425 女 50 女 24677 女 3084 總數 100 總數 52218 總數 6590 交通大學 長文 男 50 男 75059 男 622 女 50 女 73555 女 616 總數 100 總數 148614 總數 1238 成功大學 長文 男 50 男 63127 男 588 女 50 女 68749 女 582 總數 100 總數 131876 總數 1170 依據上表 2.1,本研究所使用之語料庫共包含兩個群組,群組 A 一共包含 100 位語 者,內容以短句為主;群組 B 一共包含 200 位語者,內容以長句為主。其中群組 A 的 設計是用來平衡中文語音中的語音均衡(phonetic balance);群組 B 的設計則會額外考慮 到韻律學習(prosody study)。本研究會對上述語料庫分為訓練語料及測試語料,訓練語 料的部分大約占 90%,共包含 274 位語者,長度一共約 23 小時;測試語料的部分大約 占 10%,共包含 29 位語者,長度一共約 2.43 小時。然而,實際用來測試我們的辨認系 統時,所使用的測試語料將全數包含在群組 B 的測試語料中,它包含 19 位語者共 226 個長句音檔,總長度約 2 小時,詞總數量為 14993,每個句子平均含有 117.2 個音節。同時為了訓練本研究所使用的韻律模型,將從群組 B 的訓練語料中挑選 164 位語者的音 檔共約 8.3 小時的語料來作訓練。
2.1.2 語言模型之架構及建立
2.1.2.1 語言模型架構
任何語言都有所屬之文法規則,利用文法規則所建立出的機率模型稱為語言模型。 一般在建立語言模型時,是以詞(word)做為基本單位,現假設有一個句子共有 N 個詞, 也就是「w1,w2,…,wN」,其中「wi」代表句子中的第 i 個詞,則產生這個句子所對應的機 率,可以拆解成一連串的條件機率之連乘: 1 2 1 2 1 1 2 1 1 2 1 1 ( , ,... ) ( ) ( | ) ( | , ,..., ) ( | , ,..., ) N n n N i i i P w w w P w P w w P w w w w P w w w w − − = = =∏
L (2.2)。 然而,要在有限的記憶體容量下求取所有詞的條件機率是難以達成的,所以我們利 用 n-gram 的機率形式去近似(2.2)式,如下所示: 1 2 1 1 1 ( , ,... ) ( | ,..., ) N N i i n i i P w w w P w w− + w− = ≅∏
(2.3), 1 1 1 1 1 ( ,..., ) ( | ,..., ) ( ,..., ) i n i i i n i i n i Count w w P w w w Count w w − + − + − − + − = (2.4), 在(2.3)式中每個 n-gram 的機率是在大量文章中詞串所累積的出現次數決定;而在(2.4) 式中,Count( )⋅ 表示詞串的出現次數,如果在分子項的Count( )⋅ 的值為 0 時,則此 n-gram 的機率會等於 0,在消息理論上來看機率 0 會使得資訊量無窮大,而造成錯誤的估計, 此外一個詞串即使在訓練文字資料中沒有出現,並不代表在往後的辨認結果答案中不會 出現,因此給定 0 的機率值並不合理,所以在此還必須對(2.4)式所計算出的機率做平滑 化,使語言模型中所有的 n-gram 機率均能被良好的估計,一般常見的平滑方式如下所 示:1 1 1 1 2 1 1 1 1 1 1 1 ( | ,..., ) ( ,..., ) ( | ,..., ) , ( ,..., ) 0 ( ,..., ) , 1 ( ,..., ) ( ,..., ) ( ,... i i n i i n i i i n i i n i i n i a i n i i n i i n P w w w a w w P w w w Count w w Count w w d Count w w k Count w w Count w − + − − + − − + − − + − + − + − + − − + = = ⋅ ≤ ≤ 1 1 1 , ) , ( ,..., ) ( ,..., ) i i n i i n i w Count w w k Count w− + w− − + ⎧ ⎪ ⎪ ⎪ ⎨ ⎪ ⎪ > ⎪ ⎩ (2.5), (2.5)式中a w( i n− +1,...,wi−1)為經過正規化(normalization)的 back-off 係數,且需滿足下條件 式: 1 1 ( i | i n ,..., i ) 1 w V P w w w− + w− ∈ = =
∑
(2.6)。 觀察(2.5)式,當計算 n-gram 機率所用的詞串出現次數為 0 時,利用其(n-1)-gram 的 機率並乘上一個 back-off 係數,用以產生一個適當的機率值取代機率 0 的出現。另外如 果Count( )⋅ 的值很小時,會造成計算出的 n-gram 機率不準確,這裡的解決方法是假設當 一詞串的出現次數小於某特定次數時,將原始的 n-gram 機率乘上一個小於 1 的值da(Discount Coefficient Factor),它是依據 Good-Turning discounting 所計算出的,以降低其 機率值,並將扣除的機率值分給詞串沒有出現的 n-gram 機率使用。
2.1.2.2 語言模型之建立
訓練語言模型必須具備大量的文字資料庫,本研究使用的文字資料庫共有三個來 源: 來源一:光華雜誌(Sinorama),其內容為一般雜誌的文章,蒐集的資料年代範圍介於 1976 年到 2000 年之間。 來源二:NTCIR,它是一個建立資訊檢索系統的標竿測試集,其內容由數種不同學科領 域文章構成。 來源三:中研院平衡語料庫(Sinica),它是一套由中研院錄製,內容包含多種主題,以語 言分析研究為目的的資料庫。 本研究將以上三個來源語料庫簡稱 NSS,此外,對於建立一個完善的語言模型而 言,另一項重要關鍵便是詞典的選擇,由於受限於記憶體大小,我們僅能將較常出現、較重要的詞整理在詞典內提供建立訓練語言模型使用,下圖 2.2 為語言模型訓練流程圖。 LM Training Data CRF斷詞器 文字正規化 詞典 依詞頻選擇詞 典 Language Model 圖 2.2:語言模型訓練流程圖 如上圖 2.2,語言模型訓練流程中,NSS 在經過 CRF[30]斷詞器斷詞以及文字正規 化[31]的處理後,得到詞的總數量為 122,541,303 個,字數為 231,225,705。至於本研究 詞典的選擇方式是由斷詞結果中統計出各詞彙的詞頻,並依據詞頻大小來決定詞彙的重 要性,這裡一共納入了 60,000 個常用詞彙,其平均詞長為 1.73 個字,最終便是利用這 整理過的詞典來訓練語言模型。
2.1.3 聲學模型之建立
在語音辨認系統的訓練或測試流程中,除了上述建立語言模型外,另一項重要工作 是聲學模型的建立,在建立前要先決定針對語音訊號抽取的參數類型,由於語音訊號之 短時穩定特性及考慮到人耳聽覺效應的補償作用,本研究所使用的參數為 MFCC (Mel-Frequency Ceptral Coefficients,梅爾倒頻譜參數),它的成分包含 12 維 MFCC 加上 1 維能量共 13 維,並取其 Delta term 和 Delta-Delta term,用以將參數變化訊息提供給辨 認器使用,參數一共 39 維,系統相關設定如下表 2.7 所示。此外,基礎語音辨認器之聲學模型為 411 個音節,每一個音節使用 8 個狀態(state)的隱藏式馬可夫模型(HMM),並 且使用 HTK[23]中之 MMI 鑑別性訓練得到。 表 2.2:MFCC 參數抽取設定檔 音框長度 32ms 音框平移 10ms Filter bank 個數 24 取樣頻率 16kHz
Pre-emphasis Filter First order with coefficient 0.97
2.2 基礎實驗結果
接著我們利用 2.1.3 節所建立的聲學模型來對測試音檔做辨認,藉以評估聲學模型 的效能,所以本研究先建立一個 free-grammar 音節語言模型,搭配聲學系統做音節辨認 率的計算,實驗結果如表 2.8 所示: 表 2.3:音節辨認率(free-grammar) TCC-300 outside 73.39% TCC-300 inside 85.74%實驗數據顯示在 outside test 部分音節辨認率為 73.39%,inside test 可提升至 85.74%,接下來將加入 bigram 語言模型,同時產生詞辨認實驗結果及 word lattice 以觀 察詞、字及音節之涵蓋率,然後將產生的 word lattice 利用 trigram 語言模型作展開後再 重新評分以產生新的辨認結果,各項實驗結果如下頁各表格所示:
表 2.4:搭配語言模型之詞辨認率 Bigram LM 70.45% Trigram LM 75.84% 表 2.5:搭配語言模型之字元辨認率 Bigram LM 78.58% Trigram LM 82.14% 表 2.6:搭配語言模型之音節辨認率 Bigram LM 86.35% Trigram LM 88.16%
表 2.7:bigram word lattice 之詞、字及音節涵蓋率
詞(word) 90.80%
字(character) 91.12%
第三章
階層式語音韻律模型
當人類利用語音交談時,能夠影響到對方實質感受的因素很多,除了話語本身的語 意之外,說話時音調的抑揚頓挫及音量的高低起伏等皆是,這些語音上的變化稱為韻律 變化,其主要表現在語速(speaking rate)、停頓時長(pause duration) 、音高軌跡(pitch contour)、音量大小(energy level)等因素上。本章第一節先介紹中文語音韻律階層式架 構;第二節說明本研究使用的韻律模型。
3.1 中文語音韻律階層式架構
根據語言學家的研究結果發現[28],語音的韻律結構會呈現出階層式的架構,而本 研究所使用的韻律模型就是建構在這階層式的韻律架構之下,如下圖 3.1 所示,從最底 層開始向上發展依序是:音節層次(syllable layer,SYL)、韻律詞層次(prosodic word layer, PW)、韻律短語層次(prosodic phrase layer,PPh)、呼吸組層次(breath group,BG),以及 韻律組句(prosodic phrase group),這整體架構統稱「階層式多短語韻律句群(Hierarchical Prosodic Phrase Grouping,HPG)」架構[29]。
圖 3.1:中文語音韻律之階層式架構概念
這裡我們將使用兩種韻律標記來代表這階層式的韻律架構,第一種是韻律邊界停頓 標記,它是用來區分階層式韻律架構中的各層韻律組成份子,如上圖 3.1 所示,其中 B0 和 B1 都是音節層次的邊界,差別在於 B0 表示的是 non-break of reduced syllabic boundary 或 tightly-coupling syllable juncture 而 B1 表 示 的 是 non-break of normal syllabic boundary,通常在 B0 或 B1 的邊界不具有明顯停頓。而 B2 和 B3 分別代表韻律詞和韻 律短語的邊界,B4 則代表了呼吸組的邊界,也由於是一個呼吸的停頓,和 B2、B3 比較 起來會有個明顯的停頓現象,至於 B5 代表了韻律句組邊界,表示一個文章段落的結束, 可以藉此觀察到句尾的音節長度拉長效應及能量減弱等現象。 由於本研究所使用的語料庫是大段落的語音,因此我們以 HPG 架構為基礎並對其 作進一步修改,利用修改後的架構來產生本研究所需的韻律模型。首先將 B2 細分為 B2-1、B2-2、B2-3,其中 B2-1、B2-2、B2-3 分別表示含有明顯音高位置(pitch reset)之 韻律詞邊界、具有短停頓(short pause)之韻律詞邊界,以及具有音節拉長效應(duration lengthening)後的韻律詞邊界。接下來將 B4、B5 合併為 B4,代表整個韻律階層式架構 將從 5 層變回 4 層,如圖 3.2 所示。現在本研究將採用 7 種韻律邊界停頓(prosody break type)
B={B0, B1, B2-1, B2-2, B2-3, B3, B4}來標記階層式架構中的四種韻律組成單元:音節
(SYL)、韻律詞(PW)、韻律短語(PPh)及呼吸組/韻律句組(BG/PG),用以區分韻律結構中 每一層的韻律組成單元,對應如下表 3.1 所示:
表 3.1:韻律結構之停頓標記 韻律結構 停頓標記 意義 韻律群(PG) 或呼吸群(BG) B3 長停頓 B4 長停頓且含有明顯的基頻跳躍 韻律詞(PW) B2-1 相鄰兩音節具有明顯的基頻跳躍 B2-2 短停頓 B2-3 前一音節發生音節拉長 音節(SYL) B0 音 節 邊 界 相 鄰 兩 音 節 是 緊 密 連 接 (tightly coupling) B1 音 節 邊 界 相 鄰 兩 音 節 是 普 通 連 接 (normal coupling) 至於另一種韻律標記是韻律狀態,它代表了每個音節的韻律聲學參數在韻律組成份 子中的狀態,在本研究中我們會採用三種不同的韻律狀態,分別是量化正規化後的音節 音高、音節音長及音節能量強度。
3.2 階層式韻律模型設計
基於上一章所介紹的的階層式韻律架構,我們便可以設計出多種韻律模型來描述兩 種韻律標記、韻律架構中各層級的語言參數及韻律聲學參數之間的關係。在本研究中, 要 以 能 幫 助 於 語 音 辨 認 的 前 提 下 來 設 計 韻 律 模 型 , 主 要 任 務 是 在 給 定 聲 學 參 數 { , } a a p Λ = X X 的條件下,找出最佳的語言參數序列Λ = W POS PMl { , , }、韻律標記Λ = B Pp { , }及acoustic segmentation ϒs,以數學的角度來看,就是要滿足如下式的MAP準則:
, , , , , , arg max ( , , , , , | , ) arg max ( , , , , , , , ) l p s l p s l p s s a p s a p P P Λ Λ ϒ Λ Λ ϒ ∗ ∗ ∗ Λ Λ ϒ = ϒ = ϒ W POS PM B P X X W POS PM B P X X (3.1), (3.1)式中
{ }
1 M w = W 是代表詞序列; { 1 } M pos =POS 是詞(word)所對應到的詞性(part of speech)
序列;至於 { 1 } M pm = PM 是代表標點符號序列;M代表詞的全部數量; { 1 } N B = B 則是韻律邊 界停頓標記序列,它包含七種韻律邊界停頓標記:Bn∈{B0, B1, B2-1, B2-2, B2-3, B3, B4};P={ , , }p q r 則代表音節韻律狀態序列,它包含音節音高軌跡 { 1N} p = p 、音節長度 1 {qN} = q 及音節能量強度 {1 } N r = r ;N代表音節的全部數量;Xa代表一個 frame-based 頻
譜參數序列(i.e., MFCCs 及它們的一階和二階derivatives);Xp ={ , , }X Y Z 則是一個韻律聲 學參數序列,其中X代表音節參數、Y代表音節邊界參數、Z代表音節間的differential參 數;然而X中又包含了音節音高軌跡 (sp)、音節能量強度(se)及音節長度 (sd);Y中則包 含了音節間的停頓長度(pd) 及音節間的能量低點 (ed);最後Z中包含了正規化的音節內 基頻差 (pj) 及 兩個經正規化過的音節長度拉長因子 (dl and df)。在下列表3.2中將對所 有在(3.1)式中有包含到的韻律標記、聲學參數及語言參數作一統整。 表 3.2:韻律標記、聲學參數以及語言參數之數學符號 T: prosodic tag B: break type ={B0, B1, B2-1, B2-2, B2-3, B3, B4 } PS: prosodic state
p: pitch prosodic state q: duration prosodic state r: energy prosodic state
A: prosodic-acoustic
feature
X: syllable prosodic feature
sp: syllable pitch contour sd: syllable duration se: syllable energy level Y: inter-syllabic prosodic feature
pd: pause duration ed: energy-dip level Z: differential prosodic features
pj: normalized pitch jump
df: normalized duration lengthening factor
L: linguistic feature
l: reduced linguistic feature set t: syllable tone sequence s: base-syllable type f: final type
在本研究中,我們會將(3.1)式作下列五種假設,以方便設計我們的韻律模型: 假設一:就如同傳統的聲學模型,頻譜參數序列Xa只會相依於詞序列 W。 假設二:韻律聲學參數序列Xp會相依於韻律標記序列Λp及語言參數序列Λl。 假設三:音節韻律聲學參數序列 X 與音節邊界韻律參數序列 Y 及音節間的differential 參數序列 Z 相互獨立。 假設四:韻律邊界停頓標記序列 B 相依於鄰近相關的語言參數序列Λl。 假設五:音節韻律狀態序列 P 相依於鄰近的韻律邊界停頓標記 B。 經由以上五種假設後,(3.1)式將會簡化成以下形式:
{
}
, , , , arg max ( , | ) ( , , ) ( | ) ( | ) ( | , , ) ( , | , , ) l p s l p s a s l s p l s p l P P P P P P Λ Λ ϒ ∗ ∗ ∗ Λ Λ ϒ ≈ ϒ ⋅ Λ ϒ Λ Λ ϒ Λ Λ X W W POS PM B P B X Y Z (3.2),(3.2)式中P(Xa,ϒs|W) 代表聲學模型(AM);P(W POS PM, , )則是joint syntax model,它描述
了W、POS及PM之間的關係;P( |B Λl)是代表break syntax model,它是利用語言參數
L= W POS PM{ , , }來預估隱含著階層結構資訊的韻律邊界停頓B的模式,連結了階層式韻 律與語言資訊之間的關係,P( | )P B 稱為韻律狀態模型,用來說明韻律狀態P的變化是如 何受到韻律邊界停頓B的影響;P( |Xϒ Λ Λs, p, l)稱為音節韻律模型,用來說明音節韻律參 數受到B、P和L的影響而產生的變化;P( , |Y Zϒ Λ Λs, p, l)稱為停頓聲學模型,用來說明在 各個不同的韻律邊界停頓和語言參數之下,音節內的聲學特性。下圖3.3呈現出以上所提 及的四種韻律模型搭配韻律標記、語言參數及韻律聲學參數之間的關係。
圖 3.3:四種韻律模型搭配韻律標記、語言參數及韻律聲學參數之間的關係 為了實際將韻律資訊運用於語音辨認中,以下我們將針對這四種韻律模型做更深入 的探討:
3.2.1 Break Syntax Model
我們將 break syntax model P( |B Λl)近似成下式:
1 1 ( | ) ( | ) N l n n n P P B L − = Λ ≈
∏
B (3.3), (3.3)式中P B( n|Ln)是一個描述音節韻律邊界停頓與其相關的語言參數之間關係的模型, 同時P B( n|Ln)可經由分類樹與決策樹(CART)演算法堆導出來,其問題集請參見附錄一。3.2.2 韻律狀態模型
韻律狀態模型P( | )P B 可以進一步分解成三個子模型,如下所示: 1 1 1 1 1 1 1 1 1 2 ( | ) ( | ) ( | ) ( | ) ( ) ( ) ( ) ( | , ) ( | , ) ( | , ) N n n n n n n n n n n P P P P P p P q P r P p p− B− P q q− B− P r r− B− = = ≈ ⎡ ⎤ ⋅⎢ ⎥ ⎣∏
⎦ P B p B q B r B (3.4), (3.4)式中P p( n|pn−1,Bn−1),P q( n|qn−1,Bn−1), and P r(n|rn−1,Bn−1)分別表示各個不同韻律狀態,在 給定音節邊界停頓Bn−1的情況下,從第n-1個音節的韻律狀態到第n個音節韻律狀態的轉 移機率。3.2.3 音節韻律模型
音節韻律模型P( |Xϒ Λ Λs, p, l)可以進一步分解成三個子模型,如下所示: 1 1 1 1 ( | , , ) ( | , , , ) ( | , , , , ) ( | , , , , ) ( | , , ) ( | , , ) ( | , , ) s p l s s s N n n n n n n n n n n n n n n n P P P P P sp p B− t −+ P sd q s t P se r f t = ϒ Λ Λ ≈ ϒ ϒ ϒ ≈∏
X sp B p t sd B q t s se B r t f (3.5), (3.5)式中 1 1 1 ( n| nn , n, nn ) P sp B− p t−+ 、P sd( n|q s tn, n, )n 及P se( n|r f tn, n, )n 三個子模型分別模擬音節音高軌 跡序列sp、音長序列 sd 漢音節能量序列 se,並且假設 sp、sd 和 se 的變化在此只受到 以下幾個影響因素控制:音節聲調t、基本音節類型 s、韻母類型 f、韻律狀態 P={p,q,r} 和韻律邊界停頓 B。在第一個子模型 1 1 1 ( | n , , n ) n n n n P sp B− p t −+ 中,spn會受到下列因素影響:目前 音高韻律狀態pn、目前聲調tn以及在給定韻律邊界停頓Bn-1和Bn時,前後各一個音節聲 調tn-1和tn+1造成的連音影響,因此 -1=( -1, ) n n n n B B B , 1 -1 ( -1, , 1) n n n n n t + = t t t+ 。而spn則為第 n 個音節音 高軌跡,是將音節音高軌跡進行正交展開,投影到四個 Legendre 多項式基底所得到的四 維正交參數[17],如下所示: 1 1,n1 ,n n n n n n n r f b n n t p B t B t sp sp sp β β β β + μ − − = + + + + + (3.6), 在(3.6)式中, n t β 及 n p β 則分別是目前音節音調tn及目前音節韻律狀態pn影響效應的 APs; 1,n1 n n f B t β − − 及 ,n1 n n b B t β + 分別是第 n-1 個和第 n+1 個音節所貢獻的前後音節影響效應的 APs;μsp是 音高向量的總體平均值(global mean); r n sp 是正規化後的spn,亦可稱為spn扣除 n t β 、 n p β 、 1,n1 n n f B t β − − 、 ,n1 n n b B t β + 和μsp的殘餘值。藉由假設 r nsp 是一 zero-mean 的 normal distribution,即
( r; 0, ) n sp N sp R ,則 1 1 1 ( | n , , n ) n n n n P sp B− p t−+ 可化解成下式: 1 1 1 1 -1 -1 , , ( | , , ) ( ; n n , ) n n n n n n n n n n n n f b n t p B t B t sp sp P sp p B t N sp β β β β + μ R − − + = + + + + (3.7)。 在建構第二個子模型P sd( n|q s tn, n, )n 時,我們考慮了三個獨立的影響效應,分別是音 節韻律狀態、音節本身及音節聲調,因此我們可以將觀察到的音節長度sdn表示成: sdn =sdnr+γtn +γsn +γqn +μsd (3.8),
在(3.8)式中 r n sd 是正規化後的sdn; n t γ 、 n s γ 及 n q γ 分別是目前音節音調、目前音節本身及目
前音節韻律狀態影響效應的 APs;μsd是音節音長的總體平均值(global mean)。同樣地,
藉由假設 r
n
sd 是一 zero-mean 的 normal distribution,即N sd( nr; 0,Rsd),則P sd( n|q s tn, n, )n 可化
解成下式: ( | , , ) ( ; , ) n n n n n n n n t s q sd sd P sd q s t =N sd γ +γ +γ +μ R (3.9)。 最後在建構第三個子模型P se( n|r f tn, n, )n 時,我們同樣考慮了三個獨立的影響效應, 分別是音節韻律狀態、音節韻母及音節聲調,因此我們可以將觀察到的音節能量sen表示 成: sen =senr+ωtn +ωfn +ωrn +μse (3.10), 在(3.10)式中 r n se 是正規化後的sen; n t ω 、 n s ω 及 n q ω 分別是目前音節音調、目前音節韻母及
目前音節韻律狀態影響效應的 APs;μse是音節能量的(global mean)。同樣地,藉由假設
r n
se
是一 zero-mean 的 normal distribution,即N se( rn; 0,Rse),則P se( n|r f tn, n, )n 可化解成下式:
( | , , ) ( ; , ) n n n n n n n n t f r se se P se r f t =N se ω +ω +ω +μ R (3.11)。
3.2.4 停頓聲學模型
我們將停頓聲學模型進一步化簡,並得到五個子模型,如下所示:{
, , , , , , , , , 1 2 , , , , , , 1 2 2 , , , , , , , , , , ( , | , , ) ( , , , , | , , ) ( ; , ) ( ; , ) ( ; , ) ( ; , ) ( ; , n l n n l n n l n n l n n l n n l n n l n n l n n l n s p l s p l N n B B n ed B ed B n n pj B pj B n dl B dl B n df B df P P g pd N ed N pj N dl N df α β μ σ μ σ μ σ μ σ − Λ Λ Λ Λ = Λ Λ Λ Λ Λ ϒ Λ Λ ≈ ϒ Λ Λ ≈ ⋅ ⋅∏
Y Z pd ed pj dl df}
, 2 , , ) n l n B Λ (3.12),在(3.12)式中我們將音節邊界的停頓時長(pause duration) pdn以 gamma distribution 來
fit;edn代表了音節間的能量低點(energy dip),這裡我們則用 normal distribution 來 fit;
此外,正規化的音節內基頻差序列(pitch jump),定義為: 1 1 ( (1) (1)) ( (1) (1)) n n n n t n t pj = sp+ −β + − sp −β (3.13),
在(3.13)式中,spn(1)定義為第一維度的音節音高軌跡; (1)
n
t
β 則定義為第一維度的聲調影
響因素。同樣的,我們將正規化的音節內基頻差用 normal distribution 來 fit。最後,還 有兩種正規化的音節長度拉長因子 dl 和 df 定義為: dln =(sdn−γtn −γsn) (− sdn−1−γtn−1 −γsn−1) (3.14), 1 1 1 ( ) ( ) n n n n n n t s n t s df = sd −γ −γ − sd + −γ + −γ + (3.15), 這裡兩種因子我們都用 normal distribution 來 fit。在實作過程中,P(pd ed pj dl df, , , , |ϒ Λ Λs, p, l)
是經由分類數與決策樹(CART)推導出來,其節點的分類標準是依據 maximun likelihood gain,CART 演算法可以利用一個已經設計好的問題集(附錄一),依據不同的韻律邊界停 頓同時將所有音節的pdn、edn、pjn、dln和dfn做好分類。 有了上述四種韻律模型後,最後將使用韻律標記及韻律模式(PLM)演算法[14]從一 群未經標記的語料中來訓練出這些韻律模型;PLM 演算法能同時估測韻律模型的參數 及對所有語句作韻律標記,過程中先是經過一初始化程序,對所有語句作初始的韻律標 記及韻律模型的參數估計,然後在根據ML法則做一連串的最佳化程序、反覆更新所有 韻律標記和韻律模型的參數,直到收斂為止。
第四章
使用階層式語音韻律模型於中文
大詞彙語音辨認系統
本章第一節會說明如何將這些韻律模型以 two-stage 的方式加入到語音辨認中,這 裡我們會先利用傳統 HMM-based 語音辨認器來做 first-stage 語音辨認,待辨認完成後產 生辨認結果及 word lattice ,本研究之作法就是在第二個 stage 中利用上述章節所介紹過 的四種共 12 個韻律模型及一個 factored 語言模型來對 word lattice 作重新評分的動作, 得到新的辨認結果並觀察。第二節說明本論文使用鑑別式模型組合(Discriminative Model Combination)來解決在重新評分過程中針對多個模型之權重問題。
4.1 使用韻律訊息於 two-stage 語音辨認系統
圖 4.1 就是本研究之系統流程圖,以下將針對系統第二個 stage 作詳細介紹。
1 2 3
if ( , , , )
otherwise
N f f f f >τ
4.1.1 Joint Syntax Model之架構
由於本研究中會使用到 POS 及 PM 等語言參數資訊來訓練我們的韻律模型,所以針 對辨認系統第二個 stage 中語言模型的部份,我們將原本傳統的語言模型(bigram or trigram LM)取代成一個 factored 語言模型(FLM),用以描述詞序列 W、詞性序列 POS
及標點符號序列 PM 之間的關係。我們最終將這個 factored 語言模型拆解成一個 word
trigram 模型、一個 factored POS 模型及一個 factored PM 模型,其數學公式如下所示:
1
2 1 1 1 1
1
word-trigram LM factored POS model factored PM model
1 1 1 2 1 2 1 2 1 ( , , ) ( | ) ( | , ) ( | , ) ( ) ( | ) ( | ) ( | , ) ( | M i i i i i i i i i i i P
P W W P POS POS W P PM POS W
P W P POS W P W W P POS POS W P PM P
− − − − − − = ⎧ ⎫ ⎪ ⎪ ≈ ⎨ ⋅ ⎬ ⎪ ⎪⎭ ⎩ ≈
∏
W PM POS 14243 144424443 14444244443{
}
2 1 1 1 2 1 1 1 1 3 , ) ( | ) ( | , ) ( | , ) M i i i i i i i i i i i OS W P W W−− P POS POS− W P PM− POS− W− =⋅
∏
(4.1)。
這裡我們是使用FLM approach [18]來建構(4.1)式中的兩個factored語言模型(POS及 PM),並使用SRILM toolkit [19]及利用Witten-Bell smoothing的方式來訓練(4.1)式中的三 個模型,其中FLM approach的最主要的概念是利用其他相關資訊(factor)的輔助來預估目 標,所以這裡將充分利用語言知識來提升預估POS或PM的準確性。當然,若使用多種資 訊作預估時恐會面臨到資料量不足的問題,因此FLM會採取backoff的架構來應對,其 FLM的Generalized backoff的數學式如 (4.2)式: 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ( , , , ) ( | , , ) ( | , , ) ( , , ) ( , , , ) N ML GBO d f f f f P f f f f P f f f f f f f g f f f f α ⎧ = ⎨ ⎩ (4.2), (4.2)式中各項份子代表意義如下: 1. 1 2 3 1 2 3 1 2 3 ( , , , ) ( | , , ) ( , , ) ML N f f f f P f f f f N f f f
= ,它是代表 maximum likelihood distribution。
2.g f f f( , 1, 2,f 代表 backoff distribution。 3)
檻值τ 時,PGBO( |f f f1, 2,f3)=dN( ,f f f1, 2, f P3) ML( |f f f1, 2,f3)。
4.dN( ,f f f1, 2,f3)代 表 discount , 它 是 一 個 介 於 0 到 1 的 值 , 其 作 用 會 轉 移 部 分
1 2 3
( | , , )
ML
P f f f f 的機率值給 backoff distribution g f f f( , 1, 2,f 做平滑化(smoothing)。 3)
5.α( ,f f1 2,f3)代表 backoff weight,它是為了確保 GBO( | 1, 2, 3) 1
f P f f f f =
∑
,經由推導可得 下式: 1 2 3 1 2 3 1 2 3 ( , , , ) 1 2 3 : ( , , , ) 1 2 3 1 2 3 : ( , , , ) 1 ( | , , ) ( , , ) ( , , , ) N f f f f ML f N f f f f f N f f f f d P f f f f f f f g f f f f τ τ α > <= − =∑
∑
(4.3)。在本研究裡,factored POS model的backoff路徑結構如下圖4.2所示,在最上層的情
況,期望以目前的詞W 及前一個POS等語言factors來預估i POS ,若此機率的組合沒有出i
現,則丟棄一個factor POSi−1,若仍是沒有出現的話,就退化到最下層的狀態,此時就
一定有此機率;
圖 4.2:factored POS model 的 backoff 路徑
factored PM model亦是如此,其backoff路徑的架構如圖4.3。我們使用了前一個 word、前一個POS及目前POS的資訊,來預估前一個PM的機率為何,依照圖4.3設定,
圖 4.3:factored PM model 的 backoff 路徑
4.1.2 第二級辨認器之實作
如上圖 4.1 所示,經由辨認器第一個 stage 流程,會產生 bigram word lattice,接下 來我們利用 HTK[23]中的指令及搭配 trigram 語言模型,將 bigram word lattice 展開成 trigram word lattice 輸出,由於本研究未來要加入的韻律資訊是 syllable level,所以在提 供 word lattice 給第二個 stage 使用前,要先將 word lattice 中標示出音節切割位置。
至於從第二個 stage 開始,要加入的韻律模型及 joint syntax model 之種類高達 16 種, 為了觀察每個模型分別所貢獻的影響力,本研究將分成三階段逐次加入模型資訊並觀察 實驗結果,詳細流程圖如下所示:
圖 4.4:辨認器第二級三階段實作流程圖
如上圖 4.4 所示,辨認器第二級第一個階段是引入更多語言參數資訊(POS 及 PM), 需要加入的模型為 joint syntax model,未來在加入韻律資訊時除了需要更多語言資訊 外,整套系統最終是希望能解碼出多種語言參數,如詞(word)、詞性(POS)及標點符號 (PM);第二個階段我們主要是引入韻律邊界停頓的資訊,要加入的韻律模型分別是 break syntax model 及停頓聲學模型,在這一階段最後除了會解碼出多種語言參數外,同時會 將每個詞中每個音節後所接的韻律邊界停頓一併解碼出;最後一個階段是引入音節韻律 狀態資訊,要加入的韻律模型分別是音節韻律模型及韻律狀態模型,在這一階段最後除 了會解碼出如同上一階段的語言參數及韻律邊界停頓外,每個詞中每個音節所屬的三種 韻律狀態也將一併解碼出。
4.1.2.1 參數正規化
針對圖 4.4 中第二級辨認器第二個階段開始,工作過程中如有牽涉到音節能量、音 節長度或音節音高等參數資訊時,必須要先經過正規化的步驟,這是為了要克服不同語 者先天發音上的差異。首先我們利用第一級系統所產生的最佳(top 1)辨認結果來做正規 化,利用此辨認結果及 HTK 中之指令對抽取好的測試音檔特徵參數作 force alignment, 接下來就是計算各測試音檔的音節能量、音節長度或音節基頻等統計平均值,完成後方 可執行正規化,如下所示: 經過高斯正規化後第 s 個音檔的第i個音框之對數基頻數值 f 如下: i ^ s s i s i average global s f f μ σ μ σ ⎛ − ⎞ =⎜ ⎟⋅ + ⎝ ⎠ (4.4), 其中μs及σs分別為第 s 個音檔基頻數值之平均值及標準差,其數學式分別如下: ( ) 1 ( ) I s s i i s f I s μ =∑
= (4.5), ( ) 2 1(
)
( )
I s s i s i sf
I s
μ
σ
=−
=
∑
(4.6), 在(4.5)式及(4.6)式中I s( )為第 s 個音檔基頻之總音框數,而μglobal及σaverage分別為訓練 韻律模型時所統計出的結果,代表所有語者基頻之總體平均及平均標準差。 最後要對音節能量、音節長度作正規化,方法與上述基頻正規化相同,對音節能量 而言,(4.4)式中的μs、σs、μglobal及σaverage分別改為代表第 s 個音檔音節能量之平均 值、標準差、訓練韻律模型時統計之所有語者能量之總體平均及平均標準差;對音節長 度而言,(4.4)式中的μs、σs、μglobal及σaverage則分別改為代表第 s 個音檔音節長度之 平均值、標準差、訓練韻律模型時統計之所有語者音節長度之總體平均及平均標準差。4.1.2.2 各階段 lattice 之展開
在圖 4.4 當中,第二級辨認器中的三個階段會各自針對上一階段或第一級所產生的 lattice 依據所需之資訊作展開以方便未來作重新評分,這裡本研究是使用維特比搜尋演 算法(viterbi search algorithm)來作 lattice 重新評分,以下將對其 lattice 展開過程作簡單說 明:
z 第一階段:加入多種語言資訊
針對 4.1.2 節一開始所述,產生帶有音節切割資訊的 trigram word lattice,然後再根 據其他語言資訊作展開,展開方法如下:
(1).node expansion :
針對原始 lattice 中各個 node 所帶有的 word 資訊,找出相對應的 POS 數目(P)及 PM 數目(M),再將各個 node 展開至 P*M 倍。
圖 4.5:第一階段 lattice 之 node expansion (2).arc expansion :
針對原始 lattice 中各個 arc 所帶有的 word 資訊,找出相對應的 POS 數目(P)及 PM 數目(M),並對上一個 arc 中所帶有的 word 資訊,找出相對應的 POS 數目(P2)及 PM 數 目(M2),再將各個 arc 展開至 P*M*P2*M2 倍。
圖 4.6:第一階段 lattice 之 arc expansion
經過以上的展開流程後,產生的 lattice 裡每一個 arc 和 node 中皆包含了 word、POS、 PM 等三種語言資訊。
z 第二階段:加入韻律邊界停頓資訊
針對第一階段所產生的 lattice 作展開,由於這一步是引入停頓聲學模型及 break syntax model,所以如何作 lattice 展開必須先觀察數學式(3.3)及(3.12),由於韻律資訊是 syllable level,所以現在 lattice 中每一個 arc 上會累積除 LM score、POS score、PM score、 AM score 外,還有各個音節的 prosodic score,但由式(3.3)及(3.12)可發現,針對 intraword syllable 的部分,可由程式內部處理,不需要將 lattice 作展開的動作,但是針對 interword syllable 的部分就要多加考量,因此我們必須先對各 differential 參數所包含到的數學式 (3.13)、(3.14)及(3.15)作觀察,從這三式中發現為了計算某個音節的 prosodic score,我 們必須取得前後各一個音節的資訊,也就是說整個 lattice 將會根據每個 word 中第一個 音節及最後一個音節的資訊作展開,也就是 interword syllable 的部分,但為了考量實作 中記憶體用量有限,所以這裡將只針對前一個音節資訊,也就是針對 word 中最後一個 音節的長度(duration)作展開,當然如果要針對音節長度作展開,那音節聲調(syllable tone) 的部分為何不用展開,因為每一個 arc 如果最終是進入同一個 node,其語言參數是一樣 的。接下來,要解釋為何可以不需要針對後一個音節資訊作處理,也就是不用將 word 中第一個音節的資訊作展開,因為我們利用到 viterbi search 的特性,以下將詳細說明。
經由上述停頓聲學模型及 break syntax model 的數學式(3.3)及(3.12)可發現,word 中 每個音節的分數可以獨立計算,所以我們可以先算出每一個 word 中 intraword syllable 的 prosodic score,並結合 LM score、POS score、PM score 及 AM score 於 lattice 中各個 arc 上。接下來就是跑 backward viterbi search,這一步將會針對 interword syllable 的部分 作處理,以下我們將以圖形解說的方式解釋整套演算法:
首先,由於是使用 backward viterbi 的關係,所以是先從 leaf node 開始往前推算出 每一個 node 的 backward score,如下圖 4.7 所示:
圖 4.7:第二階段 lattice 之架構範例
觀察上圖 4.7 中,由於 leaf node 所連接的 arc 中並未包含語言參數,所以 lattice 中 最後一個 word 的資訊便是在 node7、node8 或 node9 的來源 arc 中,針對 node4 當例子, 經由它分出的 arc 共有三條,如下圖 4.8 所示,這時我們將各路徑所累積分數的作比較 後選出一條最佳路徑(如下圖 4.8 中深色部分所示),並將這一條路徑上所帶的 word 資 訊,也就是第一個音節的資訊以及所找出的最佳 backward score,記錄在 node4 中(如下 圖 4.8 中紅線部分所示),因為從倒數第二個 word 開始就要計算 interword syllable 的 prosodic score。而 node5 及 node6 也沿用相同作法算出其 backward score。
圖 4.8:第二階段 lattice 之內部工作流程範例 1
接下來我們針對圖 4.8 中的 node1 作分析,經由它分出的 arc 共有三條,如下圖 4.9 所示:
圖 4.9:第二階段 lattice 之內部工作流程範例 2
這時原本應將各路徑所累積分數的作比較後選出一條最佳路徑,但從倒數第二個 word 開始,每一個 arc 上的最後一個音節的 prosodic score 還沒計算,因為它會相依於 下一個音節資訊,所以理論上要將 lattice 作展開,但在上一段的敘述中,已分別在 node4、 node5 及 node6 中存入了下一個 word 的第一個音節資訊,所以根本不需要對 lattice 作展 開,直接沿用這些 node 所傳遞過來的資訊來計算出目前最後一個音節的 prosodic score, 這正是 viterbi 的精神所在,針對每一個 node 都找出到達終點的最佳路徑,所以對上一 個 word 的而言,下一個 word 的第一個音節早已決定好了,不需要再對 lattice 作額外的 展開,如此一來,我們便可針對 node1 找出一條最佳路徑,如下圖 4.10 所示,圖中紅線 的部分就是代表訊息傳遞:
往後針對 lattice 中每一個 node 的 backward score 的計算都如同上述所言,如下圖 4.11 所示,圖中紅線的部分就是代表訊息傳遞: 圖 4.11:第二階段 lattice 之內部工作流程範例 4 當計算到起始節點(start node)時,也就等於找到了最佳路徑,經由最終的路徑回溯, 即可解碼出最佳的詞序列(word sequence): 圖 4.12:第二階段 lattice 之內部工作流程範例 5 經由以上解說,現在 lattice 只須對 word 中最後一個音節的長度作展開,以下為展 開流程: (1).node expansion :
針對原始 lattice 中各個 node,觀察其來源 arc 中所帶有的 word 資訊(最後一個音節 的長度),現假設來源 arc 中最後一個音節的長度共有 M 種,則原始 node 將展開至 M 倍。 以下為範例圖 4.13,圖中左側右邊的 node 根據來源 arc 中最後一個音節的長度作展開, 假設一共有兩種不同的長度,則右側就是針對 node 進行展開後的結果:
(2).arc expansion :
針對原始 lattice 中各個 arc,觀察其 start node 的特性,假設從第(1)步中,已知 start node 將被展至 M 倍,則原始 arc 也將展開至 M 倍,如下範例圖 4.14 所示:
圖 4.14:第二階段 lattice 之 arc expansion z 第三階段:加入音節韻律狀態資訊
針對第二階段所產生的 lattice 作展開,由於這一步是引入音節韻律模型及韻律狀態 模型,所以如何作 lattice 展開一樣要先觀察其數學式(3.4)及(3.5),從這兩式中發現為了 計算某一音節的 prosodic score,必須得到前後各一個音節資訊,而針對 intraword syllable 的部分,處理方式可能不像第二階段中只加入韻律邊界停頓資訊那樣簡單(註:計算 intraword syllable 的 prosodic break score 不用考慮到上一個音節的韻律邊界停頓類型,所 以可以在跑 backward viterbi search 以前就先計算完) ,因為現在每一個音節的 prosodic state score 會相依於上一個音節的韻律狀態,所以 intraword syllable 的處理方式也較複 雜,基本上為了實作上對記憶體的有效控制,在 intraword syllable 的部分我們不將 lattice 作展開(如何處理將會在稍後作補充說明),但對 interword syllable 而言就要多加考量, 所以說整個 lattice 將會根據每個 word 中第一個音節及最後一個音節的資訊作展開,但 同樣為了考量實作中記憶體用量有限,在這只根據後一個音節資訊作展開,也就是 lattice 將根據每個 word 中第一個音節資訊作展開,而參照以上數學式(3.4)及(3.5),word 中第 一個音節資訊正好就是音節所對應的聲調資訊。
接下來要解釋為何不需要針對前一個音節資訊作展開,其原理如第二階段中敘述相 同,利用 viterbi search 可以將資訊傳遞的特性,只是這一次我們是採用 forward viterbi search,跟第二階段的方式比較起來只是演算法運算的方向相反,其於觀念是一樣的, 以下同樣以圖解的方式作說明:
首先,由於是使用 forward viterbi 的關係,所以是先從 start node 開始往前推算出每 一個 node 的 forward score,如下圖 4.15 所示:
圖 4.15:第三階段 lattice 之架構範例
觀察上圖 4.15 中,針對 node1 當例子,它的來源 arc 只有一條,因為是第一個 word, 如下圖 4.16 所示,這時我們將這一條路徑上所帶的 word 資訊,也就是最後一個音節的 資訊(包含三種 prosodic state)以及所找出的最佳 forward score,記錄在 node1 中(如下圖 4.16 中紅線部分所示),因為從第二個 word 開始就要計算 interword syllable 的 prosodic score。而 node2 及 node3 也沿用相同作法算出其 forward score。
圖 4.16:第三階段 lattice 之內部工作流程範例 1
接下來我們針對圖 4.16 中 node4 作分析,它的來源 arc 共有三條,如下圖 4.17 所示:
圖 4.17:第三階段 lattice 之內部工作流程範例 2
這時原本應將各路徑所累積之分數作比較後選出一條最佳路徑,但從第二個 word 開始,為了計算每一個 arc 上的第一個音節的 prosodic score,必須知道上一個音節資訊, 所以理論上要將 lattice 作展開,但在上一段的敘述中,已分別在 node1、node2 及 node3 中存入了上一個 word 的最後一個音節資訊,所以根本不需要對 lattice 作展開,直接沿 用這些 node 所傳遞過來的資訊來計算出目前第一個音節的 prosodic score;針對每一個 node 都找出從多條來源 arc 中的最佳路徑,所以對下一個 word 的而言,上一個 word 的 最後一個音節早已決定好了,不需要再對 lattice 作額外的展開,如此一來,我們便可針 對 node4 找出一條最佳路徑,如下圖 4.18 所示,圖中紅線的部分就是代表訊息傳遞:
圖 4.18:第三階段 lattice 之內部工作流程範例 3
往後針對 lattice 中每一個 node 的 forward score 的計算都如同上述所言,如下圖 4.19 所示,圖中紅線的部分就是代表訊息傳遞:
圖 4.19:第三階段 lattice 之內部工作流程範例 4
當計算到終止節點(leaf node)時,也就等於找到了最佳路徑,經由最終的路徑回溯, 即可解碼出最佳的詞序列(word sequence):
經由以上解說,現在 lattice 只須對 word 中第一個音節的聲調作展開,以下為展開 流程:
(1).node expansion :
針對原始 lattice 中各個 node,觀察其分出的 arc 中所帶有的 word 資訊(第一個音節 的聲調),現假設分出的 arc 中第一個音節的聲調共有 M 種,則原始 node 將展開至 M 倍; 以下為範例圖 4.21,圖中左側左邊的 node 根據分出的 arc 中第一個音節的聲調作展開, 假設一共有兩種不同的聲調,則右側就是針對 node 進行展開後的結果:
圖 4.21:第三階段 lattice 之 node expansion (2).arc expansion :
針對原始 lattice 中各個 arc,觀察其 end node 的特性,假設從第(1)步中,已知 end node 將被展至 M 倍,則原始 arc 也將展開至 M 倍,如下範例圖 4.22 所示:
圖 4.22:第三階段 lattice 之 arc expansion
以上是介紹 lattice 中面對到 interword syllable 的必要展開動作;但若是針對 intraword syllable 的部分,我們之所以不將 lattice 作展開,是因為我們將各個 word 中 intraword syllable 的部分獨立處理,可以說是在 lattice 中的一個 arc 內跑一個 viterbi search,將最 後一個音節所累積的最佳資訊傳遞到下一個 node 中,以下將以圖解的方式作說明:
下圖 4.23 為一範例,是針對一個三字詞作範例,圖中最左邊的 node1 會傳遞給下一 個 word 的第一個音節一些訊息(如圖中左側紅線所示),這些訊息代表上一個 word 最後
一個音節的韻律狀態,所以當計算第一個音節的 prosodic state score 時就需要上一個 node 所傳遞的訊息才能計算分數,然後就如同跑 viterbi 的方式,針對一個音節中的每一種 prosodic state 都找到最佳的分數(如圖中深綠線所示),當跑完最後一個音節時,再從這 個音節中 16 個 prosodic state 裡選出一個累積分數最多的 state,並將這個 state 資訊存到 下一個 node(node2)中供下一個 arc 來擷取(如圖 4.23 中右側紅線所示),而最終當下的 arc 所累積的分數就包含上一個 node 的 forward score、目前 word 的 FLM score (包含 LM score、POS score 及 PM score)、目前 word 的 prodosic break score 及之前所累積最高的 prosodic state score。
圖 4.23:第三階段 lattice 之內部工作流程範例 6
4.2 鑑別式模型組合
在本研究裡,第二個 stage 中拿來作重新評分的模型共有 16 個,因此如何找出一組 權重使這 16 個模型作結合後能夠得到最小的詞錯誤率便是非常重要之課題,如果使用 trail-and-error 的方式來決定 16 個模型的權重將非常耗費時間且缺乏效率,所以本研究 使用鑑別式模型組合(Discriminative Model Combination) [20]的方法(簡稱 DMC)來決定 權重,以下將作簡單的說明: