APP下载

基于卷积神经网络的鸟声识别实验设计

2022-08-06周晓彦李大鹏

实验室研究与探索 2022年4期
关键词:鸟声卷积神经网络

欧 昀, 周晓彦, 李大鹏

(南京信息工程大学电子与信息工程学院,南京 210044)

0 引 言

在深度学习领域,利用卷积神经网络(Convolutional Neural Networks,CNN)对图像进行智能识别分类技术已经愈发成熟,教学案例多为图像相关,鲜有声音识别的案例。鸟声识别研究有助于鸟类监测,有利于生态环境监测,受到越来越多人的关注[1]。在深度学习课程中加入鸟声识别实验,可帮助学生更好地理解语音信号处理和图像信号处理的相关概念,从实践中理解深度学习智能识别的具体应用和实现过程。在教育部所提出的新工科背景下,高校教学计划中都十分重视对学生实践能力和创新能力的培养,只有在教学过程中引入相对应的实验实践课程,才能够培养学生多学科交叉学习的能力和创新实践能力[2-3]。

本实验设计采用了CNN 对鸟声进行识别分类。CNN是一种包含卷积运算的深度前馈神经网络,整个网络核心是通过卷积层和池化层进行特征提取和全连接层进行识别分类,在训练过程中利用梯度下降法更新训练参数,在各个领域均有广泛的应用[4-7]。实验将原始鸟声分为训练鸟声和测试鸟声,对原始鸟声信号进行预处理,并利用短时傅里叶变换(Short-Time Fourier transform,STFT)的结果绘制STFT 语谱图,同时提取梅尔倒谱系数(Mel-Frequency Cepstral Coefficient,MFCC)特征参数,将MFCC特征和STFT语谱图特征放入CNN 进行训练,获取最优的训练参数,利用训练好的CNN完成对鸟声的识别分类,整个实验过程如图1 所示。

图1 鸟声识别实验流程图

实验时既可使用已训练好的CNN 对MFCC 特征和STFT语谱图特征进行鸟声识别实验,分析比较两者的结果,也可由学生自行编程设计CNN模型进行鸟声识别实验,通过识别结果验证模型的优劣。

1 鸟声特征提取

常见的鸟声数据库均为在自然环境下采集的鸟声信号,环境噪声复杂多变,鸟声音频多样,在分析处理前需先进行预加重、分帧加窗等处理,通过短时分析技术绘制STFT语谱图和提取MFCC系数特征。

1.1 预处理

(1)切割读取。为使鸟声数据规格统一,将原始鸟声信号切割为2 s整音频信号,并以22.05 kHz进行读取。

(2)预加重。为弥补传输过程中鸟声高频部分的损耗,需对鸟声数据进行预加重处理[8]。

(3)分帧加窗。任意一个音频信号从整体来看都是一个非平稳的时变信号,其频域特性和表征信号的各时频域特征参数均是动态的,无法直接进行分析,而在一个短时范围10 ~30 ms内音频信号的各特征参数变化较小,可以将其作为稳态来处理[9]。因此需对鸟声数据进行分帧加窗处理,本实验中选用汉明窗[10]。

1.2 特征提取

(1)STFT语谱图绘制。STFT是与快速傅里叶变换(Fast Fourier Transform,FFT)密切相关的一种变换,用于对非平稳的时变信号进行分析。本质上STFT 就是加窗的FFT,通过窗函数在时间轴上移动来对信号进行分帧加窗,对各帧信号进行FFT[11],则有

式中:x(k)为输入信号;w(k-l)为移动了l的窗函数;X(l,ω )为时移l和频率ω的二维函数,对其取绝对值可得到幅度,通过幅可以绘制出STFT 语谱图。语谱图表征了幅值关于时间和频率的变化,绘制时以频率为Y轴,时间为X轴,在X与Y组成的二维平面中,一个点(x,)y的幅值大小用色系深浅来表示,如图2 所示。

图2 STFT语谱图

(2)MFCC特征提取。MFCC 特征是一种在语音识别中应用较为广泛的特征,其基础是基于人听觉特性所提出的梅尔变换,通过梅尔变换模拟出非线性的人耳对声音的感知能力[12]。MFCC 提取原理如图3所示,其核心是对梅尔变换后的频谱进行倒谱分析,将频谱的包络和细节分开[13-14]。

图3 MFCC特征提取原理框图

其提取步骤如下:

步骤1以22.05 kHz读取鸟声数据;

步骤2对鸟声数据进行预处理,包括采用一阶FIR高通数字滤波器进行预加重,采用汉明窗进行分帧加窗;

步骤3对每一帧进行傅里叶变换求频谱;

步骤4用频谱求能量并通过梅尔滤波器组过滤;

步骤5对滤波器组输出做对数离散余弦变换得到MFCC特征系数。

2 CNN搭建

CNN通常是由卷积层、池化层和全连接层交叉组合而成的深度前馈神经网络,利用卷积层提取特征,池化层降低特征数量,利用全连接层完成识别分类[15]。为便于计算机运行,本实验以VGG(Visual Geometry Group)网络为原型,减少了层数和卷积核数量,所搭建CNN模型如图4 所示。

图4 实验CNN网络模型图

2.1 卷积层

卷积可看作一种提取图像特征的方法[16]。当给定图像X∈RM×N、卷积核W∈Rm×n时,图像卷积即二维卷积的定义式为式中:通常情况下m<<M,n<<N;M×N是输入图像的尺寸;m×n是卷积核尺寸。与卷积类似的还有互相关,互相关和卷积的不同在于卷积核不进行翻转的操作,卷积神经网络中卷积核的参数是待训练参数,是否翻转不影响提取特征的能力,实际操作时常直接使用互相关操作,简化运算量。

通常情况下卷积层中的卷积运算也指互相关,即不进行核翻转的运算,卷积层中一个二维卷积的运算过程如图5 所示。

图5 卷积过程示意图

2.2 池化层

池化层一般分为2 种,最大池化可提取图片纹理,均值池化可保留背景特征,池化的目的是降维,通过特征选择减少特征的数量。最大池化的过程如图6所示。

图6 最大池化示意图

2.3 全连接层

全连接层可将相邻两层之间的神经元全部相连,即先将卷积池化所提取的特征拉直作为全连接层的输入,与全连接层所有神经元相连,最后一层全连接层选择softmax作为激活函数进行概率输出[17]。softmax函数定义如下

式中:n为该层共有n个神经元;ak为第k个输入信号;yk为第k个神经元的输出。

3 实验方案设计

3.1 实验步骤

步骤1将鸟声数据集进行2 s整的切割读取,并按7∶3分为训练集和测试集。

步骤2对原始数据进行预加重和分帧加窗,预加重系数选为0.966 5,帧长为23 μs,帧移为帧长的一半,共可分为173 帧,窗函数选为汉明窗。

步骤3利用Python中librosa库中函数对所有鸟声数据提取MFCC 系数特征,梅尔滤波器数量选为128,得到的结果取前40 个数据值,为使网络收敛更快,对数据进行归一化处理,使其分布在[-1,1]之间。每个鸟声数据得到[40,173]的MFCC特征系数。

步骤4利用Python中librosa库中函数对鸟声数据进行STFT,将结果取绝对值得到幅度,将幅度单位转为dB,绘制语谱图,保存为[256,256,3]的数据并进行归一化处理,使数据分布在[0,1]之间。

步骤5将2 种特征的训练集分别放入2 个CNN模型中进行训练,保存各自的最优训练参数。

步骤6利用PyQt5 库编写GUI 界面,分别加载CNN模型和各自保存的最优训练参数,通过2 个不同特征所得的模型对测试集中任一鸟声进行识别分类,对比分析2 种模型的识别结果。

3.2 训练与识别

(1)训练部分。在Python的Tensorflow 框架下搭建CNN网络[18]。训练配置如下:

即优化器选择adam,损失函数选择多分类交叉熵损失函数,小批量数量选择32,迭代次数100。MFCC特征和语谱图特征的训练结果分别如图7、8 所示。

图7 MFCC训练结果

图8 STFT语谱图训练结果

图7、8 中,图(a)为正确率随迭代次数的变化,图(b)为损失熵函数随迭代次数的变化。由图7、8 可知,经100次迭代后,MFCC特征训练集准确率为97.53%,损失熵为0.097 9,测试集准确率为87.46%,损失熵为0.578 1。STFT语谱图训练集准确率为98.14%,损失熵为0.032 9,测试集准确率为90.36%,损失熵为0.462 8。

(2)识别部分。在PyCharm 软件中编写Python代码,加载CNN 模型并导入最优参数,并利用PyQt5库编写GUI界面,保存为mygui.py 文件并运行,选择测试集中任一音频,输出对鸟声的识别预测结果,如图9 所示。

4 结 语

图9 鸟声识别系统运行界面

本实验设计基于卷积神经网络的鸟声识别系统,利用MFCC特征和STFT语谱图2 种特征通过CNN网络进行鸟声识别,实验结果可知,STFT语谱图的准确率更高,但自身的数据量也更大;MFCC系数特征的准确率虽然略低,但是自身数据量较小。通过实验设计和运行,可整体性地帮助学生梳理语音处理、图像处理和卷积神经网络的相关知识,从实践中逐步掌握多学科交叉研究的能力,还可让学生通过改变网络层数、卷积核大小和数量等方式自主搭建CNN 网络完成鸟声识别,以此提高学生的创新能力和实践动手能力。

猜你喜欢

鸟声卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
七种鸟声
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
闲情
早 晨