Lattice对于语音识别ASR的意义就不在此赘述了,直接进入主题。很多时候我们看一些教程在解释Lattice的时候会给出某一个句子的lattice图,我们在运行了一些kaldi的例子或者编写了自己的脚本运行以后,也会希望看一下某一个句子的lattice图是什么样。Kaldi里已经自带了实现这个功能的脚本show_lattice.sh具体位置在wsj实例下面的utils文件夹里,基本上每个egs下的实例都有一个软链接指向这个文件夹。

实现这个功能必须安装Graphviz

sudo apt-get install graphviz

我的经验是只要你本地编译过Kaldi,那这个包是已经安装好了的,就算没装那就运行一下上面这句,很快装好。

脚本执行也很简单,先看下Usage:

usage: utils/show_lattice.sh [--mode display|save] [--format pdf|svg] <utt-id> <lattice-ark> <word-list>
e.g.:  utils/show_lattice.sh utt-0001 "test/lat.*.gz" tri1/graph/words.txt

所以基本上就是 给三个参数: 句子的ID,lattice的压缩文件,还有词典。
我给一下我的例子:

./utils/show_lattice.sh F1031F1031_USA_USA_004_F1031_spkr1_004_6 exp/nnet2_online/nnet_a_online/decode_test_use_asr003_3k_l
m_tgsmall.arpa/lat.1.gz exp/nnet2_online/nnet_a_online/graph_3-gram.arpa.libri_use_asr001_asr003_uke_asr001_openslr83_voxforge_british/words.txt 

最后产生的图如下
在这里插入图片描述
脚本里有几个参数可以调整:

format=pdf # pdf svg
mode=save # display save
lm_scale=0.0
acoustic_scale=0.0

很明显,format可以选择pdf或者svg,如果你用的机器有GUI那就可以在mode里选择display,另外两个参数是声学模型和语言模型的权重,用于综合打分,修改这两个参数以后,在生成的图上就可以显示出分数,这里就留给有需要的人自己去play with吧。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐