Kaldi中特征文件格式的转换

1、kaldi中的ark文件与htk中的mfcc文件的互相转换
     (1)、ark转mfcc  
               使用底层命令copy-feats-to-htk
                Save features as HTK files:
               每个发音会转化为一个对应的htk格式的特征文件,后缀可以自己定义
               用法: copy-feats-to-htk [options] in-rspecifier
               比如: copy-feats-to-htk --output-dir=/tmp/HTK-features --output-ext=fea scp:feats.scp
               --output-ext是扩展名,一般写mfcc,可以自己定义。
     (2)、mfcc转ark
               使用命令行copy-feats
               Copy features [and possibly change format]
               用法: copy-feats [options] <feature-rspecifier> <feature-wspecifier>
               或者: copy-feats [options] <feats-rxfilename> <feats-wxfilename>
               例如: copy-feats --htk-in=true scp:mfcc.scp  ark,scp:foo.ark,foo.scp
                   这里的输入是mfcc文件的地址文件,这样作为一个输入流传到copy-feats中转化为ark格式的kaldi文件。
 
2、ark文件与txt文件互相转换
      这个很简单,也只需要用到copy-feats命令
                     copy-feats ark:train.ark   ark,t:/train.txt           ark转化为txt
                     copy-feats ark,t:train.txt  ark:train.ark              txt转化为ark
 
总结:主要的文件转化是通过copy-feats这个命令,它的主要功能是将文件变成数据流,这样方便对数据进行处理。
     比如你想查看kaldi中提取的mfcc特征到底是什么样子,同样可以用copy-feats,如:
          copy-feats ark:train.ark   ark,t:-  | less
     通过一个管道用less来查看ark里面的内容。 
     其他的和特征有关的命令还可以再src/featbin/中自己查看,还有很多很有用的命令。比如copy-matrix可以把矩阵的特征转化成ark格式。
     初学kaldi的同学们我们可以一起学习,一起讨论。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kaldi可以使用多种工具来生成ASR词汇表。其一种方法是使用Kaldi提供的工具来生成音素级别的词汇表,然后将其转换为单词级别的词汇表。以下是使用Kaldi生成ASR词汇表的步骤: 1. 准备数据:首先,需要准备一个包含训练数据的语料库。这个语料库应该包括音频文件和相应的文本转录。 2. 分词:使用文分词工具将文本转录分成单独的词语。可以使用jieba或pkuseg等分词工具来执行此操作。 3. 音素级别的词汇表生成:使用Kaldi提供的工具g2p-seq2seq来将每个单词转换为音素序列。g2p-seq2seq是一个基于神经网络的工具,可以根据给定的输入生成音素序列。可以使用如下命令将文本转录文件(transcription.txt)的每个单词转换为音素序列: ``` cat transcription.txt | awk '{for(i=2;i<=NF;i++) printf "%s ",$i; print ""}' |\ g2p-seq2seq --model models/grapheme2phoneme/seq2seq_cmu_bpe5000.mdl --apply_bpe 5000 > lexicon.tmp ``` 这将生成一个名为lexicon.tmp的文件,其包含每个单词的音素序列。 4. 单词级别的词汇表生成:使用Kaldi提供的工具phonetisaurus-apply来将音素级别的词汇表转换为单词级别的词汇表。可以使用如下命令将音素级别的词汇表(lexicon.tmp)转换为单词级别的词汇表(lexicon.txt): ``` phonetisaurus-apply --model g2p.fst --word_list lexicon.tmp > lexicon.txt ``` 这将生成一个名为lexicon.txt的文件,其包含每个单词及其对应的音素序列。 5. 格式转换:将生成的词汇表转换Kaldi所需的格式。可以使用如下命令将生成的词汇表(lexicon.txt)转换Kaldi格式的词汇表(lexicon.txtp): ``` utils/prepare_lang.sh --position_dependent_phones false data/local/dict "<unk>" data/local/lang data/lang ``` 这将生成一个名为lexicon.txtp的文件,其包含Kaldi所需的词汇表格式。 这些步骤将生成一个包含文单词及其对应的音素序列的词汇表,该词汇表可以用于训练文ASR系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值