kaldi中文件的寫入及讀取

文件名有“ rxfilename”和“wxfilename” 兩種類型

-” 或者“ ” 表示標準的輸入;

filename:12345  定位到12345



Table 有兩種形式: “ archive”和“ script”文件。 它們之間的差別在於:archive

包含實際的數據, 而 script 文件則指出數據的具體位置       

Tabla中讀數據的程序需要一個“ rspecifier” 輸入, 該字符串指明瞭如何讀取索引數據

寫數據到Table 中的程序需要一個“ wspecifier” 輸入, 該字符串指示如何寫數據 

常用的“rspecifiers” 有“ ark:-” , 表示從標準的輸入中讀取archive數據

scp:foo.scp” 表示 script 文件“ foo.scp” 會告訴我們從哪裏去讀取數據

rspecifiers文件參數:

s:keys是有序的

cs按順序訪問數據 (程序不滿足會崩潰)

p :忽略錯誤

Kaldi 程序有多個“ rspecifiers” 輸入時, 程序會輪流訪問相應的對象; 其中第一個使用順序訪問, 而後面的採用隨機訪問, 因此,第一個“rspecifier” 不需要“ s, cs” 選項


Table 有三種訪問方式:

  • TableWriter
  • SequentialTableReader 
  • RandomAccessTableReader(RandomAccessTableReaderMapped)

訪問表的代碼可將表看作通用的映射或者列表。 數據的格式以及讀過程中的其它方面( 例如誤差容忍度) 可通過“rspecifiers” 和
wspecifiers” 中的選項來控制, 而不必在調用代碼中處理; 在上述代碼示例中,選項“t” 指明以文本形式進行寫數據

 Table的柏拉圖式設計是將字符串映射爲對象的一種映射。 但是, 若我們並不是進行隨機訪問一個特定的表, 並且該表包含重複的實體串時, 這種代碼設計並
不好


例子:

ark,scp:/some/dir/foo.ark,/some/dir/foo.scp
會輸出一個 archive 文件及一個script 文件


ark,t,f:data/my.ark

ark,scp,t,f:data/my.ark,|gzip -c > data/my.scp.gz

ark:o,s,cs:-

scp,p:data/my.scp









       
                


發佈了55 篇原創文章 · 獲贊 18 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章