您当前的位置:首页 > 计算机 > 编程开发 > 人工智能

深度学习+语音,基础普及篇笔记(二)

时间:02-04来源:作者:点击数:

接上篇,这里主要讲基于深度学习的语音识别框架。

(一)Kaldi

目前在Github上这个项目依旧非常活跃,可以在https://github.com/kaldi-asr/kaldi下载代码,以及在http://kaldi-asr.org/查看它的文档。

下载kaldi源码,编译,这一步应该没什么问题,过程如下:

$ git clone https://github.com/kaldi-asr/kaldi
$ cd kaldi/tools

$ sudo apt-get install automake autoconf libtool subversion
$ sudo apt-get install libatlas3-base
$ sudo ln -s -f bash /bin/sh

$ extras/check_dependencies.sh
$ make -j 16
$ cd ../src
$ ./configure
$ make depend
$ make -j 16

然后,下载音频数据进行训练和测试,上文有讲,主要中文音频数据集有如下几个:

1、gale_mandarin: 中文新闻广播数据集(LDC2013S08, LDC2013S08)

2、hkust: 中文电话数据集(LDC2005S15, LDC2005T32)

3、thchs30: 清华大学30小时的数据集

前两个暂时还没找到免费的路径,所以开始下载第三个,在http://www.openslr.org/18/下载。

1、下载数据

有3个文件压缩包:data_thchs30.tgz、resource.tgz、test-noise.tgz,下载后,解压。如下:

哦,路径是在“kaldi/egs/thchs30/s5”下面新建一个文件夹thchs30-openslr,然后放在里面。

2、运行

这些工作还是比较基础的,

修改kaldi/egs/thchs30/s5下面的cmd.sh脚本

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"

修改kaldi/egs/thchs30/s5下面的run.sh脚本(这里/home/123/是你的kaldi目录)

#thchs=/nfs/public/materials/data/thchs30-openslr
thchs=/home/123/kaldi/egs/thchs30/s5/thchs30-openslr

在kaldi/egs/thchs30/s5下面执行run.sh脚本

./run.sh

3、结果(等吧)

(二)Tensorflow

git clone https://github.com/tensorflow/tensorflow.git

然后执行

python tensorflow/examples/speech_commands/train.py

就可以,等结果出来吧,我的结果如下:

INFO:tensorflow:Confusion Matrix:
 [[258   0   0   0   0   0   0   0   0   0   0   0]
 [  3 196   7   1   6   2   3  10  14   3   3  10]
 [  3   2 245   5   1   1   3   0   0   0   0   1]
 [  0   8   2 233   4   3   1   0   0   0   2  17]
 [  3   4   0   0 236   0   2   0   0   6   6   3]
 [  0   4   3  15   0 233   0   0   0   0   3   6]
 [  1   5  11   1   0   0 225   4   0   0   0   0]
 [  1   7   0   0   2   1   3 242   0   0   0   0]
 [  4   5   0   0   2   0   0   0 241   4   0   1]
 [  0   2   0   0  19   0   1   3   3 226   1   1]
 [  2   2   0   0   8   1   1   1   0   2 229   0]
 [  7   5   0  20   1   7   1   5   3   1   0 210]]
INFO:tensorflow:Step 18000: Validation accuracy = 89.7% (N=3093)
INFO:tensorflow:Saving to "/tmp/speech_commands_train/conv.ckpt-18000"
INFO:tensorflow:set_size=3081
INFO:tensorflow:Confusion Matrix:
 [[257   0   0   0   0   0   0   0   0   0   0   0]
 [  0 189   3   3   6   8   4  13   7   3   8  13]
 [  1   7 233   2   1   0   9   2   0   0   1   0]
 [  1   4   0 217   2   8   4   3   1   0   1  11]
 [  0   2   0   0 260   0   2   0   0   2   3   3]
 [  2   2   0  17   0 218   0   1   2   0   2   9]
 [  0   6  11   0   4   0 240   4   0   1   1   0]
 [  1   8   0   0   3   0   0 243   0   2   0   2]
 [  0   4   0   0   2   2   1   2 234   1   0   0]
 [  1   5   0   0  12   1   1   4   9 222   6   1]
 [  0   0   0   0   8   1   1   1   0   3 234   1]
 [  0   9   0  28   5   8   4   4   0   1   3 189]]
INFO:tensorflow:Final test accuracy = 88.8% (N=3081)

默认模型在/tmp/speech_commands_train下面:

tensorboard查看结果

tensorboard --logdir /tmp/retrain_logs

是不是也很简单,先这样,后续再写。

(三)附上一些名词解释

ASR(自动语音识别)

WER(文字差错率(Word Error Rate))

CMVN:倒谱均值和方差归一化

FFT:快速傅里叶变换

GMM:高斯混合模型

MFCC:梅尔倒谱系数

PCM:脉冲编码调制

PDF:概率分布函数

PLP:感知线性预测系数

SGMM:子空间高斯混合模型

UBM:通用背景模型

VTLN:特征级声道长度归一化

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门