380 likes | 535 Vues
Free Syllable Decoding 在全文資訊檢索及語句辨識上之應用. 指導教授:張智星 學生:張展嘉. 大綱. 簡介 音節辨識器之製作 FSD 在應用上的困難與解決方法 應用一:唐詩詩句之辨識 應用二:全文資訊檢索 未來工作 其他應用 Demo. 簡介. 國語的特色 一個字就是一個 syllable 若以不帶 tone 的 syllable 表示,共有 411 種 Free Syllable Decoding
E N D
Free Syllable Decoding在全文資訊檢索及語句辨識上之應用 指導教授:張智星 學生:張展嘉
大綱 • 簡介 • 音節辨識器之製作 • FSD在應用上的困難與解決方法 • 應用一:唐詩詩句之辨識 • 應用二:全文資訊檢索 • 未來工作 • 其他應用 • Demo
簡介 • 國語的特色 • 一個字就是一個syllable • 若以不帶tone的syllable表示,共有411種 • Free Syllable Decoding • 使用411個Syllable為單位,自由(Free,也就是沒有文法)地把使用者所講的音(Syllable)解碼(Decode)出來 • 利用此音節辨識器,可以針對文字的發音,搭配一些特別的機制,來檢索文件以及其他之應用
End point detection Feature extraction 音節辨識器之製作 Preprocessing speech Syllable recognition Syllable sequence
HMM(Hidden Markov Model)的三個基本問題 • observation sequence O=(o1,o2,…..,oT),HMM λ=(S,A,B,) • 如何有效率地計算 P(O| λ) ? • 如何選擇最佳的 state sequenceq = (q1,q2,……, qT) ? • 如何調整 λ=(A,B,) 使得 P(O| λ) 最大?
音節辨識器之製作 • 以411音節為基礎,由數個model組成一個音節,即一個大的HMM,例如: • doG : sil+d d+o o+G G+sil • 每個 model由數個state 組成,經由大量語料的訓練,產生各個model內state之間的Transition Probability 及其 State Probability
Viterbi search(由一個音節來看) 此column初始成 -INF G+sil o+G doG state d+o sil+d frame
Viterbi search(把411個HMM並排) 此column初始成 -INF 此column初始成 -INF 此column初始成 -INF 此column初始成 -INF jiou state hua doG Decode lst syllable Decode 2nd syllable Decode 3rd syllable frame
何時該將一個音節解碼出來? • 當一個frame進來,算完該column所有state的機率之後 • 基本原則 • 挑選機率最大的state,接著檢查該state是否為某syllable的最後一個state,若是,則將該syllable解碼出來
何時該將一個音節解碼出來? • 輔助機制及參數 • KEEP_NO_JUMP_FRAME_NUM • 預防太早decode syllable出來 • 保留機率最大的前五名作為候選人 • BESTJ_THRESHOLD • 後四個候選人的機率值,必須某個程度上接近最大機率值,才予以保留 • BOUNDARY_FRAME_KEPT • 在decode出第一組syllable後,下一個frame進來時仍繼續decode
輔助機制及參數示意圖 此column初始成 -INF BOUNDARY_FRAME_KEPT=1 jiou state hua doG frame hua,jiou KEEP_NO_JUMP_FRAME_NUM=14 doG
調整參數 – Data driven • 實驗:唐詩詩句辨認 • 固定兩個參數,改變第三個參數去跑實驗,求取音節辨識器最適當的參數值 • 測試資料:實驗室九位成員錄製之詩句,每個人大約300句 • 實驗之參數 • 實驗1:變數-KEEP_NO_JUMP_FRAME_NUM , BOUNDARY_FRAME_KEPT=1, BESTJ_THRESHOLD=0.0053 • 實驗2:變數-BOUNDARY_FRAME_KEPT, KEEP_NO_JUMP_FRAME_NUM=20, BESTJ_THRESHOLD=0.0053 • 實驗3:變數-BESTJ_THRESHOLD, BOUNDARY_FRAME_KEPT=0, KEEP_NO_JUMP_FRAME_NUM=20
FSD在應用上遇到的困難 • 單個syllable辨識率 • 辨識器的辨識率不高,因此要如何利用有限的音節辨識率,做最有效的應用,便成了一個重要的問題 • 一段語音之辨認 • 一段語音資料利用此辨識器作辨認之後,和正確答案相比,可能會多或少一兩個音節,也需要設計一些機制來克服
如何解決上述兩個問題? • 辨識率不高的問題 • 製作「音節相似程度表」,增加音節辨識器的容錯性,製作的方法可以用data driven或rule based的方式 • 多出syllable或少了syllable的問題 • 視應用而定 • 唐詩詩句辨識:DTW • 憲法本文條文檢索:文件交集
音節相似度的制定-rule based • 首先,根據經驗或需要,訂定某些子音字母或鼻音之間的相似度,例如 • 計算兩個音節間的相似度 • 將兩個音節,也就是兩個字串,配合上表的規則,拿去計算LCS分數
LCS(Longest Common Subsequence) • LCS • X = {A, B, C, B, D, A, B} Y = {B, D, C ,A ,B, A} LCS = {B, C, B, A} has length(score) 4 • 稍作修改的LCS • Ex.計算 jiou(ㄐㄧㄡ)與ciou(ㄑㄧㄡ)的相似度X = { j, i, o, u } Y = {c, i, o, u } LCS score = 3.8相似度 = score/max(|X|,|Y|)=3.8/4 = 0.95
音節相似度的制定-data driven • 錄製單音節測試資料,紀錄其測試結果 • 相似度之計算 • 例如: similarity(bai,pai)=(把bai辨識成pai的個數)/(測試的bai總數)
Rule-based和data-driven實驗比較 唐詩詩句辨識的結果比較(正確答案出現在第一名)
End point detection Feature extraction 唐詩詩句辨認 speech Syllable sequence Preprocessing String matching (DTW) Poem sentences Syllable recognition The answer
字串比對 • 將音節辨識器辨認的所有可能結果,去和每句唐詩做比對計算其相似度,選出分數最高的(最相似),即是答案。例如 • 程式結果: {du}-{liau, diau}-{hrN}-{ciaG} • 可能之字串du – liau – hrN – ciaG du – diau – hrN – ciaG • 由於音節辨識器可能會少辨識、或多辨識一兩個音節,所以我們選擇DTW(Dynamic Time Warping)
DTW (Dynamic Time Warping) sYe 資料庫詩句 jiaG haN diau du du liau hrN ciaG 測試字串
End point detection Feature extraction 全文資訊檢索 speech Syllable sequence Preprocessing Query Expansion Evaluate doc score Inverted File Syllable recognition Ranked Doc
製作反轉檔 • 先將文件編號 • 以syllable為單位製作較精細的反轉檔(word-level inverted file) • 格式舉例 • cieN <0;0><10;5,17><108;251>…..ieN <0;1><101;11,35>….
Query Expansion • 參考音節相似程度表,將和音節辨識器產生的結果相似的syllable也包含進Query之中,然後將其syllable的相似程度,當成是此Query term的權重,例如 • Syllable recogizer : {sieN, ieN} • Query expansion : [sieN:1.0, cieN:0.8] [ieN: 1.0] • 可能的組合 • {sieN:1.0, ieN: 1.0} • {cieN:0.8, ieN: 1.0}
計算各文件的分數 • 基本概念 • 查看反轉檔,將每個Query entry所記載的文件編號做類似交集的動作, 「包含得」愈多則該文件的分數愈高 • 輔助機制 • 搭配weight • Syllable在文件中是否連續出現
搭配weight 查看反轉表{sieN <100;17,33,50><101;95>…, ieN<0;1><101;11,35>…. }{cieN<0;0,20><10;5,17><108;251>,…ieN<0;1><101;11,35>.. } Query expansion{sieN:1.0, ieN: 1.0}{cieN:0.8, ieN: 1.0} • Example sieN-ieN cieN-ieN
Syllable在文件中是否連續出現 • 多出一個欄位,紀錄文件中,上一個符合查詢的syllable出現在哪些位置 • 若音節在文件中連續出現,則將weight加重,例如將分數乘以1.2
Example {sieN:1.0, ieN: 1.0}{cieN:0.8, ieN: 1.0} {sieN <100;17,33,50><101;95>…, ieN<0;1><101;11,35>…. } {cieN<0;0,20><10;5,17><108;251>,…ieN<0;1><101;11,35>…. }
辨識效能簡單測量 目的:憲法本文全文檢索,共176個文件 測試資料:一百句長短不一的語音資料
未來工作 • 從語料訓練著手 • 將音節辨識器加入文法結構,使之解碼出來的句子,盡量符合該應用的文法,應可提高整體的精確度
其他應用 • 翻譯名詞之文件檢索 • 麥可喬丹,麥克喬登 • 錯別字文章的檢索 • 肚子好惡才吃了幾支烤雞幾科西瓜幾片pizza我還是惡的不行啊我還要吃啊 • 唇語辨識系統