2025年3月29日 星期六 甲辰(龙)年 月廿八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > 人工智能

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

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

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

(一)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:特征级声道长度归一化

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