kaldi文件格式

kaldi文件分两大类:列表表单(.scp结尾)和存档表单(.ark结尾)。它们是配合的。

列表表单的每个元素占一行,每行分两个字段,前一个是索引(index),后一个文件(file)。

audio_index1/paht/to/audio1.wav
audio_index2/paht/to/audio2.wav
audio_index3/paht/to/audio3.wav

但是需要说明一点,“文件”的本质是一个存储地址,它可能是在磁盘上,也可能是在内存上。还可能是一个二进制文件某字节的位置。

要充分了解这点,否则后面遇到具体的用法时会糊涂。

存档表单,用于存储数据,可以是文本数据,也可以是二进制数据。

存档表单的内容是关于索引和数据的组合。在文本型的存档表单中,每个元素是以\n结尾,它与换行符相同,打开后与列表表单非常相似,但本质上只是一种巧合。

如下文本存档表单的内容:

text_index1 this the first text\ntext_index2 this is the second text...

它是一个整体,换行符"\n"本身也是文件内容的一部分。这是与列表表单是不同的。

对于二进制存档表单,情况又 不同。它是在索引+空格之后再添加一个\0B符号,数据和索引的分隔标志位,且在真实数据之前还添加了头<header>,来指示后续的元素数据的大小,以免读取错误。

binary_indext1 \0B<header><content>binary_index2 \0B<header><content>..

对于声学特征存档文件来说,<header>中可以包含特征的帧数、维度、特征类型、占用字节数和是否压缩等等。

Kaldi命令如果需要输入、输出时,需要指定rspecifier和wspecifier,就是读指示符和写指示符。例如compute-mfcc-feats [options...] <wav-rspecifier>  <feats-wspecifier>。而每个指示符要么是列表表单相关的scp,p|s|cs:path/to/file.scp,要么存档列表相关的ark,t|b:path/to/file.ark。

比较特殊的有两点,一是,可以从标准输入或者标准输入作为文件,文件位置用“-”表示,结合管道操作组合变化比较多;二是在输出时,可以同时制定列表表单和存档表单两种方式,以逗号隔开。例如:

ark,scp:/path/to/file.ark, /path/to/file.scp,必须是ark在前,scp在后。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值