kaldi运行timit

1、下载timit数据,将数据解压在egs/timit/data 目录下

2、打开s5目录,编辑run.sh 如下(根据timit数据存放的目录修改):

echo ============================================================================
echo "                Data & Lexicon & Language Preparation                     "
echo ============================================================================

#timit=/export/corpora5/LDC/LDC93S1/timit/TIMIT # @JHU
timit=/home/kaldi/egs/timit/data/TIMIT 

3 、打开s5目录,编辑cmd.sh.  如下:()

export train_cmd=run.pl
export decode_cmd=run.pl
export mkgraph_cmd=run.pl

export cuda_cmd=run.pl

4、运行 run.sh, 在exp目录下生成 单音素、双音素、三音素等目录。

kaldi运行timit

5、进入想要测试的目录,找到三个文件:HCLG.fst   final.mdl  word.txt  如进入tri3目录(这里注意如果要测试tri2、tir3还需要找到final.mat):

kaldi运行timit

6、egs下,打开voxforge,里面有个online_demo,kaldi的online模块需要单独编译,编译好之后,直接将online_demo目录复制到timit下。在online_demo里面建2个文件夹online-data  work,在online-data下建两个文件夹audio和models,audio下放你要回放的wav,models建个文件夹tri3,把s5下的exp下的tri3下的final.mat ,final.mdl、words.txt,和HCLG.fst复制到models的tri3下。

7、打开online_demo的run.sh

a)将下面这段注释掉:(这段是voxforge例子中下载现网的测试语料和识别模型的。我们测试语料自己准备,模型就是tri3了)

if [ ! -s ${data_file}.tar.bz2 ]; then
    echo "Downloading test models and data ..."
    wget -T 10 -t 3 $data_url;


    if [ ! -s ${data_file}.tar.bz2 ]; then
        echo "Download of $data_file has failed!"
        exit 1
    fi
fi

b) 然后再找到如下这句,将其路径改成tri3

 # Change this to "tri2a" if you like to test using a ML-trained model
ac_model_type=tri2b_mmi

# Alignments and decoding results  

---------------------------------------------------------------

改成:

 # Change this to "tri2a" if you like to test using a ML-trained model
ac_model_type=tri3

c)

online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 --rt-max=0.85\
            --max-active=4000 --beam=12.0 --acoustic-scale=0.0769 \
            scp:$decode_dir/input.scp $ac_model/model 

————————————————————————————

改成:online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 --rt-max=0.85\
            --max-active=4000 --beam=12.0 --acoustic-scale=0.0769 \
            scp:$decode_dir/input.scp $ac_model/final.mdl

 

d)修改run.sh  :(就是把final.mat考过来,引入命令中)

ac_model=${data_file}/models/$ac_model_type
trans_matrix="$ac_model/final.mat"
audio=${data_file}/audio

if [ -s $ac_model/matrix ]; then
    trans_matrix=$ac_model/final.mat
fi

e)再次修改run.sh成如下这个样子(添加2个参数--left-context=3 --right-context=3)

online-wav-gmm-decode-faster --verbose=1 --rt-min=0.8 --rt-max=0.85 --max-active=4000 --beam=12.0 --acoustic-scale=0.0769 --left-context=3 --right-context=3 scp:./work/input.scp online-data/models/tri3/final.mdl online-data/models/tri3/HCLG.fst online-data/models/tri3/words.txt 1:2:3:4:5 ark,t:./work/trans.txt ark,t:./work/ali.txt online-data/models/tri3/final.mat 

14 运行./run.sh,结果如下。

kaldi运行timit

kaldi中其他的例程运行过程类似,如根据以上步骤运行mini_librispeech,得到以下结果:

kaldi运行timit

运行thchs30结果:(有两种输出,一种是基于词的,另一种是基于音素,由词典决定words.txt)

kaldi运行timit

kaldi运行timit