【kaldi】chain-model在线解码(以aishell数据集为例)

以aishell数据集为例,演示如何进行chain-model在线解码。

1.首先生成配置文件

steps/online/nnet3/prepare_online_decoding.sh --add_pitch true data/lang_chain exp/nnet3/extractor exp/chain/tdnn_1a_sp exp/chain/nnet_online

aishell训练时提取的特征加入了pitch(音高)特征,所以这里需要将参数--add_pitch设置为true

data/lang_chain为存储chain模型解码网络图中G.fst和L.fst文件以及词汇表words.txt文件的文件夹,内容如下:

 exp/nnet3/extractor文件夹应该为一些中间文件,内容如下:

 exp/chain/tdnn_1a_sp为chain模型储存文件夹

exp/chain/nnet_online为生成的配置文件夹,运行成功后内容如下:

2.准备自己的数据

准备要识别的音频文件,为音频文件生成utt2spk文件,spk2utt文件和wav.scp文件,utt2spk每一行为语音文件名与说话人id的对应,spk2utt每一行为说话人id的与

语音文件名的对应(注意一个说话人id可以对应多条语音,而一条语音只能对应一个说话人),wav.scp为语音文件名与文件储存路径的对应

这里用的aishell的chain-model,所以可以把文件名改成aishell数据集的格式

3.在线解码

需要用到kaldi源码里的三个程序:wav-copy,online2-wav-nnet3-latgen-faster,lattice-scale,这三个程序的路径分别是:

kaldi/src/featbin/wav-copy

kaldi/src/online2bin/online2-wav-nnet3-latgen-faster

kaldi/src/latbin/lattice-scale

执行指令:

/home/rd/gezhao/kaldi/src/online2bin/online2-wav-nnet3-latgen-faster --do-endpointing=false --frames-per-chunk=20 --extra-left-context-initial=0 --online=true --frame-subsampling-factor=3 --config=/home/rd/gezhao/kaldi/egs/aishell/s5/exp/chain/nnet_online/conf/online.conf --min-active=200 --max-active=7000 --beam=15.0 --lattice-beam=6.0 --acoustic-scale=1.0 --word-symbol-table=/home/rd/gezhao/kaldi/egs/aishell/s5/data/lang_chain/words.txt /home/rd/gezhao/kaldi/egs/aishell/s5/exp/chain/tdnn_1a_sp/final.mdl /home/rd/gezhao/kaldi/egs/aishell/s5/exp/chain/tdnn_1a_sp/graph/HCLG.fst ark:spk2utt 'ark,s,cs:/home/rd/gezhao/kaldi/src/featbin/wav-copy scp,p:wav.scp ark:- |' 'ark:|/home/rd/gezhao/kaldi/src/latbin/lattice-scale --acoustic-scale=10.0 ark:- ark:- | gzip -c >lat.1.gz'

若报错:

说明特征维度对不上,需要修改生成配置文件夹的mfcc.conf为下图(与kaldi/egs/aishell/s5/conf/mfcc.conf一致):

之后重新运行上述指令,成功解码:

tdnn模型的在线解码与chain-model类似,只是文件的路径不同而已。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值