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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章