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目录下生成 单音素、双音素、三音素等目录。
5、进入想要测试的目录,找到三个文件:HCLG.fst final.mdl word.txt 如进入tri3目录(这里注意如果要测试tri2、tir3还需要找到final.mat):
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中其他的例程运行过程类似,如根据以上步骤运行mini_librispeech,得到以下结果:
运行thchs30结果:(有两种输出,一种是基于词的,另一种是基于音素,由词典决定words.txt)