Decoding-graph creation recipe (training time) (kaldi翻譯+個人理解)

kaldi的圖創建過程在訓練階段與測試階段相比而言要相對簡單一點,主要是因爲不需要消歧符號,我們假定你已經讀了這個recipe的test階段,然而我沒讀,,,。

在訓練過程中我們採用和test階段相同的HCLG形式,除了G是由一個符合訓練transcript的linear acceptor(當然這個setup和容易擴展到transciptes中的不確定情況)

Command-line programs involved in decoding-graph creation (在解碼圖中涉及到的命令行)

在這裏,我們將解釋在一個典型的訓練腳本中腳本級別發生的事情;接下來我們挖掘項目內部發生的情況。假設我們已經構建了一個樹和模型。接下來的命令會創造一個archive,其中包含對應的每一個訓練transcripts的圖HCLG

(第一個token是語音id,即011c0201)。項目的輸出格式爲archive形式的graphs.fst;對於訓練集中的每條語音而言,它以包含一個FST(以二進制性質)。此archive中的FSTs對應HCLG,但沒有過渡概率(默認:compile-train-graphs中,-self-loop-scale=0,且-transition-scale=0)。這是因爲這些graph將用於訓練的而多個階段,並且過渡概率將會發生變化,所以我們稍後再添加。但是archive(可理解爲數據的存檔)中的FSTs將具有silence 概率產生的概率(此處難以理解)(這些概率被編碼進L.fst)。如果我們使用發音概率,這些也將出現。

解釋了gmm-align-compile命令

閱讀這些archives,解碼訓練數據,從而產生狀態級對齊的命令如下所示,我們簡短地回顧一下這個命令,儘管這頁我們主要的關注點在於創建圖的本身:

 其中,前三個參數是概率尺度。transition-scale和self-loop-scale再這裏出現是因爲這個項目在解碼前添加了轉移概率。下面的參數是beam和retry-beam;我們用一個初始化的beam,且如果對齊沒能達到最終狀態,我們將用另一個beam。因爲我們將聲音的比例設置爲0.1,我們需要以10來乘這些beams來獲得可與聲學可能性相媲美的數字。這個項目要求這個模型如下:根據迭代,$x.mdl會擴大到1.mdl或2.mdl;從archive(存檔,graphs.fst)中讀取圖。引號中的參數被視爲管道(不包括ark和I),並解釋爲由語音id索引的存檔,其中包含特徵。輸出到cur.ali,且如果以文本形式編寫,則看起來像上述的.tra文件,儘管證書現在不對應於單詞id,而是對應於過渡id(transition-ids,個人以爲最好理解爲轉移id)。

我們注意到兩個階段(圖創建和解碼)可以通過單個命令行程序gmm-align來完成,該程序可以根據需要來編譯圖。由於圖的創建需要相當長的時間,因此在任何時候都需要圖,而不僅僅是將他們寫入磁盤中。

未完待續

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章