kaldi 在线中文识别系统搭建

我的书:
在这里插入图片描述
淘宝购买链接
当当购买链接
京东购买链接

##原始数据下载
http://www.openslr.org/18/
kaldi 在线中文识别系统搭建_第1张图片
总共三个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.pl
export 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文件:

kaldi 在线中文识别系统搭建_第2张图片

然后执行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.注释
kaldi 在线中文识别系统搭建_第3张图片
2.修改模型类型

ac_model_type=tri2b_mmi 改成ac_model_type=tri1

3.更改命令行
图中注释掉的是tri2b模式时的命令调用格式
kaldi 在线中文识别系统搭建_第4张图片

4.运行run.sh --test_mode live在线识别。
kaldi 在线中文识别系统搭建_第5张图片

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

###其它模型
运行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
kaldi 在线中文识别系统搭建_第6张图片
这里写图片描述

中文分词
在网上下载Chinese模型文件,http://download.tensorflow.org/models/parsey_universal/Chinese.zip
kaldi 在线中文识别系统搭建_第7张图片
导出所在路径:

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

你可能感兴趣的:(语音识别)