kaldi 在线中文识别系统搭建

来源:互联网 发布:java写接口供别人调用 编辑:程序博客网 时间:2024/05/20 14:43

原始数据下载

http://www.openslr.org/18/
这里写图片描述
总共三个tgz文件:
data_thchs30.tgz [6.4G] ( speech data and transcripts )
test-noise.tgz [1.9G] ( standard 0db noisy test data )
resource.tgz [24M] ( supplementary resources, incl. lexicon for training data, noise samples )
下载后随便解压到哪个目录文件夹下。
我解压的目录路径是:

/media/gsc/kaldi_data/thchs30-openslr

训练生成模型

该example在我的电脑上的目录是:

/home/gsc/kaldi/egs/thchs30/s5

PC编译的cmd.sh按如下方式更改以使用pc进行编译:
至少4核4G内存。

export train_cmd=run.plexport decode_cmd="run.pl --mem 4G"export mkgraph_cmd="run.pl --mem 8G"export cuda_cmd="run.pl --gpu 1"#export train_cmd=queue.pl#export decode_cmd="queue.pl --mem 4G"#export mkgraph_cmd="queue.pl --mem 8G"#export cuda_cmd="queue.pl --gpu 1"

修改run.sh文件:

这里写图片描述

然后执行run.sh,由于编译时间较长,可以参看run.sh文件跟踪过程;
该文件进行了不同声学模型的训练。最简单的就是单音素模型了。

可以在任何时间停止,但是至少mono训练结束后停止,因为下面在线识别依赖至少一个模型。

安装portaudio

gsc@X250:~/kaldi/tools$ ./install_portaudio.sh ./src/下 , make ext

在线识别

创建相关文件

从voxforge把online_demo拷贝到thchs30下,和s5同级,online_demo建online-data和work两个文件夹。online-data下建audio和models,audio放要识别的wav,models建tri1,讲s5下/exp/下的tri1下的final.mdl和35.mdl拷贝过去,把s5下的exp下的tri1下的graph_word里面的words.txt和HCLG.fst也拷过去。

修改脚本

修改online_demo 下的run.sh
1.注释
这里写图片描述
2.修改模型类型

ac_model_type=tri2b_mmi 改成ac_model_type=tri1

3.更改命令行
图中注释掉的是tri2b模式时的命令调用格式
这里写图片描述

4.运行run.sh –test_mode live在线识别。
这里写图片描述

单音素识别结果如上,基本不准,但是对“为什么”识别很好。

其它模型

运行tri2(tri3,tri4同理):把s5下的exp下的tri2b下的12.mat考到models的tri2b下,把final.mat考过来,再拷贝其他相应的文件,修改,
这里写图片描述

        online-gmm-decode-faster --rt-min=0.5 --rt-max=0.7 --max-active=4000 \        --beam=12.0 --acoustic-scale=0.0769 --left-context=3 --right-context=3 $ac_model/final.mdl $ac_model/HCLG.fst \        $ac_model/words.txt '1:2:3:4:5' $trans_matrix;;

不截屏结果了,显示比前面一个好,且如果听过wav,就会发现wav文件里高频词汇,识别的结果相对准一些。

dnn模型

运行dnn:首先要将nnet1转成nnet2,如何转换,上面的文章里有,再贴一下链接:http://kaldi-asr.org/doc/dnn1.html#dnn1_conversion_to_dnn2,https://sourceforge.net/p/kaldi/discussion/1355348/thread/1ff78ec8/

syntaxnet(和文章标题无关,请跳过)

无关的两张图,syntaxnet
这里写图片描述
这里写图片描述

中文分词
在网上下载Chinese模型文件,http://download.tensorflow.org/models/parsey_universal/Chinese.zip
这里写图片描述
导出所在路径:

gsc@X250:~/envtensorflow/deep_learn/models/syntaxnet$ MODEL_DIRECTORY=~/Downloads/Chinese

执行如下命令,查看分词结果;

gsc@X250:~/envtensorflow/deep_learn/models/syntaxnet$ echo '然而,中国经历了30多年的改革开放' | syntaxnet/models/parsey_universal/tokenize_zh.sh $MODEL_DIRECTORY | syntaxnet/models/parsey_universal/parse.sh $MODEL_DIRECTORY
原创粉丝点击