kaldi中文资料最后一章在线解码器遇到的问题及解决方案

本文假设读者看了《在线解码器》的中文博客,并按照该博客里面的指令来进行操作练习。需要注意的有以下几个地方:

1.为了为了使指令检查更简单,把所需要的文件都copy到同一个路径下比较方便,我是都copy到了digits路径下面。值得注意的是,有时候把final.mdl复制出来之后会上锁(仔细看final.mdl文件有一把小锁),这时候就会报文件读取错误(英文报错我忘记了,差不多就是这个意思)。解决方案是:把final.mdl删除,再把35.mdl复制过来(如果找不到的话,可以在digits里面搜索),然后右键创建一个链接,把名字改成final.mdl。

2.博客里面有一条指令是这样的:
online-audio-server-decode-faster --verbose=1 --rt-min=0.5 --rt-max=3.0 --max-active=6000 --beam=72.0 --acoustic-scale=0.0769 final.mdl graph/HCLG.fst graph/words.txt '1:2:3:4:5' 5010 graph/word_boundary_phones.int final.mat

如果运行这条指令肯定会报错。

首先,在Ubuntu下直接运行命令需要输入 ./  并且需要切换到online-audio-server-decode-faster所在的位置(上文提到我把所需要的文件都复制到digits下面了,所以切到digits下面就可以了),接着运行,依然会报错。此时,报错的时候将报错内容复制到百度去搜索,得出来的第一篇kaldi论坛上的文章就解答了为什么会出错,英语能力足够的读者到时候可以去阅读一下。大致意思就是5010和graph/word_boundary_phones.int 写反了。还有就是,这个final.mat是一个什么矩阵,在这里可以不用传参数,所以可以不用写。

按照我的方法修改之后应该是这样的:
~/kaldi-trunk/egs/digits$ ./online-audio-server-decode-faster --verbose=1 --rt-min=0.5 --rt-max=3.0 --max-active=6000 --beam=72.0 --acoustic-scale=0.0769 final.mdl HCLG.fst words.txt '1:2:3:4:5' word_boundary_phones.int 5010

注意切换成你自己的路径,~/kaldi-trunk/egs/digits$  是我的路径,我所有需要的文件都是放在digits下面的。到这里,这条命令与应该就可以顺利运行了。

3.接下来是运行~/kaldi-trunk/egs/digits$ ./online-audio-client --htk --vtt localhost 5090 scp:test.scp

这句指令是没有问题的 ,但是直接运行肯定会报错,因为你没有test.scp这个文件。好好想想在哪里写过这个类型的文件呢?回到我们之间写的digits里面搜索.scp,会出来一大堆.scp类型的文件,wav.scp文件就是之前写过的,在digits里面新建一个空白文档命名为test.scp然后复制一条wav.scp里面的内容过来,保存。再运行一遍就成功啦。

4.生成的B11_101.vtt文件内容:
WEBVTT FILE

1
00:00:00.630 --> 00:00:06.010 // 这句话的意思是0.6秒以前和6.01秒以后是静音,在0.6秒之间和6.01之间识别到内容
two  //本来应该是三个数据,此处代码有问题,所以输出的是一个值。

 

你可能感兴趣的:(kaldi中文资料最后一章在线解码器遇到的问题及解决方案)