背景
本文是基于Matconvnet深度学习框架对方言音频文件进行分类,介绍如下:
预处理数据
声谱图
预处理数据都是对音频文件进行处理,我们都知道 CNN 主要是针对二维数据做分类等,因此我们第一步需要做的是将一维的音频信号,通过调用specgram函数将音频文件转换成声谱图,我在实验中的采用过两种参数,分别如下:
- [b,f,t] = specgram(x,512,fs,512,256);
- [b,f,t] = specgram(x,1024,fs,1024,512);
两种参数生成的声谱图 [频谱图]虽然从肉眼的角度可以看出区别,但是从最后的实验结果上来看,可能对分类的结果影响不大。在下面的实验中我会以实验结果作说明。
改变尺寸
上述中提到的声谱图只是由 Matlab 自带函数生成的图片,生成的声谱图片中,存在边缘空白信息,为了提高我们最终的实验结果,我们首先要先将空白边缘信息使用 imcrop 函数进行裁剪,然后使用 imresize 函数对裁剪过的图片进行尺寸的缩放,通常我们需要将图片缩放成经典网络模型需要的尺寸,如:cifar经典数据集、vggnet、alexnet、imagenet等。本文中,我也是采用如下所述的4种尺寸,分别为:32*32、224*224、227*227、256*256.
实验准备
下载编译代码
由于我们使用的是可以在 Matlab 上运行的 Matconvnet 深度学习框架,因此首先要在 Matconvnet 官网上下载最新版本的 Matconvnet</