Kaldi的關鍵詞搜索(Keyword Search,KWS)


本文簡單地介紹了KWS的原理——Lattice中每個詞生成索引並進行搜索;介紹了如何處理OOV——替補(Proxy,詞典內對OOV的替補)關鍵詞技術;介紹了KWS的語料庫格式;介紹了KWSKaldi中的示例訓練腳本和搜索腳本。

   

  1. KWS系統示例:

    論文下載:

    http://www.clsp.jhu.edu/~guoguo/papers/icassp2013_lexicon_value.pdf

    論文標題:QUANTIFYING THE VALUE OF PRONUNCIATION LEXICONS FOR KEYWORD SEARCH IN LOW RESOURCE LANGUAGES

       

    該文介紹了LVCSR和KWS系統、詞典擴充方法、詞典擴充對LVSCR和KWS的影響。

       

  • KWS系統:根據[2],為Lattice進行索引分為以下幾步:
  1. 為測試集(eval, evalution,評估)中每一語句的有限狀態轉換器(FST)轉換為(如何轉換?)泛化因子轉換器結構。該結構中,每個詞的實例都擁有一個三元組(詞的開始時間,詞的結束時間,后驗概率)。因子轉換器,隱含了測試集中所有詞序列的逆序(以后驗概率排序)列表。可以使用Google OpenFST對其進行進一步的處理。
  2. 要在上述因子轉換器中對某個詞或短語進行檢索,首先構建該詞的有限狀態機,然后與因子轉換器進行組合(如何組合?),即得到了上述詞的逆序列表。
  3. 使用[20]提出的方法,通過最大化所有關鍵詞的期望詞權重值(expected term weighted value,ETWV)(是啥?),估計一個決策閾值(如何估計),用於對各個結果作出Yes/No的決策。
  4. 最后,所有關鍵詞命中集合將通過NIST 2006 Spoken Term Detection評估協議計算實際詞權重值(actual term weighted value)(如何計算)。

   

某個關鍵詞在測試集中的出現次數=所有預測命中的后驗概率。

   

  • 詞典擴充對LVCSR和KWS的影響:提高發音詞典詞匯量,能提升1-4%的識別率,能提升KWS中實際的詞加權值約60%的效果。在LVCSR階段的詞典擴充大大優於KWS階段。

    詞典擴充只能適度降低WER,但是能很大程度地提高隨后的ATWV。

   

   

   

   

  1. Lattice索引生成技術:

    論文下載:

    https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenSemester2201314/taslp_2011.pdf

    論文標題:Lattice indexing for spoken term detection

    本文為話語檢測技術構建反向索引,具體的,在確定的WFST中存儲軟命中(soft-hit)信息(utterance-id, start time, end time, posterior score四元組,用於與目標詞匹配)。展示了如何在多個Lattice中(多個語句中)生成所有子字符串的索引。

       

    ASR候選解碼結果通常儲存在帶權有向無環圖——即lattices中。由於有限狀態轉換器框架提供了通用的搜索、優化、合並算法,通常使用有限狀態轉換器來表示ASR Lattice。對以WFST形式的lattice進行索引和搜索的問題,可以被看作是在文本文檔中對模式進行搜索的擴展。搜索問題的有限解決辦法使用了一種稱為因子轉換器的結構[12]。一個因子轉換器是一個組成一篇文檔的字符串集合中子字符串集合的倒排索引。因子轉換器是一個非常有效的順序索引,並且十分適用於需要確切序列匹配的話語檢出應用。話語段和口語詞檢測是兩種話語應用,分別用於找到語句以及包含查詢詞確切序列的語句中的時間間隔。

       

       

       

  2. Proxy關鍵詞技術:

    http://www.clsp.jhu.edu/~guoguo/papers/asru2013_proxy_keyword.pdf

    基於WFST的框架用於處理OOV,單詞級的

       

       

什么是segment

猜測是關鍵詞。為了進行訓練,要為訓練數據的語句進行切分,切分為關鍵詞的序列。切分后的關鍵詞序列可能會有字重疊。

什么是F4DE,KWS哪里用到了?

猜測在關鍵詞搜索腳本local/kws_search.sh中使用。

Kaldi中關於KWS的示例:

babel/s5b

   

KWS的5個階段:

  1. 使用訓練數據集(train)訓練一個LVCSR;
  2. 對測試集進行分段處理;
  3. 使用LVCSR生成測試集的解碼結果(Lattice);
  4. 生成Latiice的倒排索引;
  5. 進行關鍵詞的搜索。

KWS的數據准備

需要在KWS數據目錄中手工准備以下三個文件:

ecf,檢索集相關信息

kwlist,關鍵詞列表

rttm,用於KWS打分

   

   

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM