时间:2024-05-04
吴俊清,倪建成,魏媛媛
(曲阜师范大学 软件学院,山东 曲阜 273100)
情感是提升人机交互和谐的重要因素,也是影响人类行为决策的内在驱动。语音中不仅包含大量的语义信息,还蕴含着丰富的情感内涵。语音情感识别的优劣很大程度依赖于特征的构建,而情感作为一种抽象的个体,很难有标准的特征表示,因此如何获取准确的情感特征成为语音情感识别的一大难题。传统的语音特征大致从韵律学特征(如基频、能量、时长)、频谱特征(Mel倒谱系数-MFCC、线性预测倒谱系数-LPCC)和声音质量特征(即人们赋予语音的主观评价指标,用于衡量语音是否纯净、清晰、容易辨识等,如喘息、颤音、哽咽等)[1]提取关联信息,这些特征都是手工构建,需花费大量时间和精力,因此,人们逐渐将注意力放在自动提取特征方面。
谱图可以捕捉语音信号间不同的情感特征,是一种流行的特征表示方式,研究表明,使用深度学习方法从谱图图像中自动学习情感特征可以达到甚至超过手动特征的识别效果。文献[2-3]都构建了一种包含静态系数、一阶系数和二阶系数的三通道的log-mel谱图,文献[2]中使用谱图提取的深度特征较使用韵律和MFCC特征的平均召回率提升了1.7%。文献[4]中使用mel谱图提取深度谱特征,发现利用BLSTM-FCN网络模型计算出的每个频带的深谱特征与传统的语音情感识别的声学特征表示方法相比,在性能上是相当的。
近年来,卷积神经网络在图像识别任务中表现优异[5-7],因此,利用CNN捕捉局部特征的能力实现自动获取识别任务特征,从而代替传统手工特征构建,简化特征提取过程的思想逐渐流行。CNN具有局部连接、权值共享的特性,使模型对平移缩放具有一定的不变性,在各种信号和信息处理任务中的性能优于标准的全连接神经网络[8]。由于它们高精度的识别率,因此在大规模图像识别任务中成为最主要的方法。Mao等人[9]首次使用卷积神经网络(CNN)学习SER的情感显著性特征,并在几个基准数据集上显示出优异的性能。文献[10]通过预训练的AlexNet作为特征提取器对信号生成的谱图提取深度特征,以类似的方式,文献[11]依据caffenet为基准结构删减掉原始三个连续卷积层中的两个,并以灰度谱图作为网络输入,减小训练时间加速模型收敛。
CNN可以有效地获取图像高级特征,但受限于卷积网络自身结构特性,因此很难捕捉到时域方向的特征,近期文献表明,研究者更倾向于构建一种结合CNN和RNN的新型网络结构,以此更好地学习谱图时域和频域特征。在文献[12-13]中,研究人员将卷积层和递归层结合起来,以提高基于时域语音信号或原始信号的语音情感识别任务的性能。文献[14]提出了一种结合CNN和LSTM且用于大量词汇语音识别的卷积递归神经网络(Crnn)。实验结果表明,该模型具有较高的语音识别性能。与此同时,Aharon Satt等人[15]构建了一种三层卷积连接一层LSTM的深层网络结构用于语音情感识别,该系统与以前没有延迟约束(约束≤3秒)的工作相比,在通用基准测试数据集IEMOCAP上达到最先进的识别精度。文献[16]提出一种基于串联CNN和RNN训练的SER方法,该方法无需使用任何传统的手工功能。将所提方法应用于语音情感数据库中,分类结果证明比使用常规分类方法具有更好的准确性。
虽然利用深度学习提取谱图特征成为语音情感识别的一种趋势,但是应用于小数据集上的深度学习研究相对较少,为解决小数据集上存在深度学习过拟合且识别精度低的问题,提出一种基于语音和图像双重增强的卷积神经网络与门控循环单元网络结合的深度学习模型。通过对Emo-DB德语情感语料库进行语音和图像增强,对增强后的Mel功率谱图进行深度学习的模型构建并对识别结果进行评估。
2.1.1 卷积模块
近年来,卷积神经网络在图像识别领域大放异彩,得益于卷积操作强大的特征提取能力,将增强后的语音生成的Mel功率谱图作为卷积神经网络的输入。不同于传统卷积神经网络的结构,在构建前两层卷积层时用BN层代替池化层,这样可以尽可能多地保留局部信息特征,减少池化操作带来的信息丢失,加入的BN层可以加速模型训练并提高泛化性能。尽管卷积网络会学习到不错的抽象特征,但会忽略时间方向的信息,考虑到这个问题,在卷积模块后面接入GRU模块,以便获取时域信息。
2.1.2 GRU模块
图1 GRU单元结构
zt=σ(Wz·[ht-1,xt])
(1)
rt=σ(Wr·[ht-1,xt])
(2)
(3)
(4)
2.1.3 CGRU模型
CGRU模型由卷积模块与GRU模块构成,该模型结构如图2所示。卷积模块利用卷积操作提取Mel功率谱图的抽象特征,然后经过BN层对特征进行规范化操作,使该层数据尽量接近标准分布,再通过ReLU层将数据映射到[0,∞),由于该激活函数不存在“饱和区”,因此可有效避免梯度消失。该结构只在最后一层卷积后加入池化层,可适当地减少特征维度,提升模型训练速度。
图2 CGRU结构
卷积模块后接Flatten层将多维输入转换成一维,再连接dropout层,训练时使部分神经元失活,可有效避免过拟合发生。最后,通过两层GRU获取时间序列层面所包含的信息,对特征作进一步提取,提取后的特征作为全连接层的输入,经过softmax计算出类别概率。
Emo-DB共有535个音频文件,数据存在数据量小且类别不平衡的现象,因此并不适合直接作为深度学习的学习对象。考虑到每个音频时长均不超过三秒,因此,在保持时长不变的前提下对音频进行上移和下移操作以此增强语音数据的丰富性。数据原始采样率为16 kHz,论文重采样至22.05 Hz。音频增强具体操作步骤如下(文中涉及到的上移/下移操作表示分别做上移和下移操作的简称):
(1)对“angry”类别的所有音频分别做上移/下移1个半步、上移/下移2个半步、上移/下移2.5个半步操作;
(2)对其余六类音频均做上移/下移1个半步、上移/下移1.5个半步、上移/下移2个半步、上移/下移2.5个半步、上移/下移3.5个半步操作;增强后的音频数量如表1所示。
表1 EMO-DB增强前后音频数量
Mel功率谱图是原始信号映射到时间和频率区域的一种二维表示方式,文中使用Python的音频分析工具包—librosa实现绘制。首先对原始音频信号yi进行分帧操作并使用汉宁窗进行加窗;然后按照式(5)逐帧进行短时傅里叶变换(STFT),STFT通过在短重叠窗口上计算离散傅里叶变换(DFT)来表示时频域中的信号。函数中FFT窗口大小为2 048个样本点,对应22 050 Hz采样率下93 ms的持续时间;重叠样本512个,相当于22 050 Hz采样率下23 ms的持续时间;对得到的短时傅里叶变换矩阵S(是包含帧t处频率f大小的复值矩阵)按照式(6)计算功率谱,其中M为[m,k/2+1]大小的Mel变换矩阵,m代表Mel过滤器的个数,k表示fft组件的个数,将信号进行Mel变换更贴合人耳对声音响度的听觉特性;最终依照式(7)将功率谱图转化为分贝(db)单位。
S[f,t]=STFT{yi}
(5)
P=M*|S|2
(6)
Pdb=10log10(P/max(S))
(7)
该实验在Ubuntu 16.04.5 LTS环境下运行,使用Python版本为3.6.2,在两块NVIDIA Tesla P100的GPU上训练三天半。实验使用keras框架实现,且后端为tensorflow。
Emo-DB(柏林语料库)是德文情感语料库,由柏林工业大学的10位专业演员录制而成。该数据库包含7类常见情感(愤怒、无聊、沮丧、恐惧、愉悦、中性、悲伤)的535个音频文件,且全部为.wav无损格式,采样率由最初的44.1 kHz下采样至最终的16 kHz。文中实验时将语料库均采样为22.05 kHz。
通过增强后的音频生成的Mel谱图共5 377张,较原始的数量扩展了9倍,为进一步增强数据的丰富性,避免过拟合现象的发生,现对7类数据中的每一张谱图做增强处理。首先,对图像进行归一化操作,使像素值限定在0~1之间,避免数值过大在传播的过程中发生梯度消失;再次,对每一张图片做逆时针剪切0.2度角、图像放大0.2、图像垂直偏移0.1、图像水平偏移0.1、通道偏移10的操作,至此,每张图片增强为原来的5倍。该操作通过keras框架的ImageDataGenerator类完成。
为对比深度谱图特征与手工声学特征在语音情感识别方面的表现,提供eGeMAPS特征集用于语音情感识别任务。eGeMAPS作为语音情感识别中经典的特征集,是GeMAPS的扩展特征集,该表示特征通过openSMILE[18]开源工具包提取,包含频率、能量、光谱、倒谱和动态信息在内的88个高级统计特征。
实验将5 337张Mel谱图按7∶1.5∶1.5的比例划分为训练集、验证集和测试集,划分后的数量为3 761、810和806。该文对输入格式、卷积核数量、训练批次大小等逐一进行设置,模型的超参数细节如下:
(1)输入的Mel功率谱图为128*128大小的三通道彩色图片,且全部为.png格式。
(2)根据卷积层特征提取特点,浅层卷积层关注局部的信息特征,深层卷积层关注更加细致的整体特征,因此滤波器个数分别以32,64和256的顺序递增设置,以适应网络特性更好地提取特征。
(3)设置3*3的卷积核,步长为1,最大池的大小设为2*2。
(4)GRU共两层,单元个数依次为126和35。
(5)Dropout系数设为0.38,使用Adam优化器进行优化,初始学习率为0.000 1,该值过大会导致训练过程中发生震荡现象,β1=0.9,β2=0.999。batch_size设为92,迭代次数为300次。
实验将Mel功率谱图作为CGRU的输入,利用CNN学习谱图的频域信息并结合GRU对序列信息的捕捉特性学习谱图的时域特征,从而加强对Mel功率谱图的特征提取效果。对EMO-DB在CGRU上的表现情况如图3所示。该数据集在提出的方法上表现出了不错的性能,训练集通过迭代训练使精度收敛到0.9以上,损失值稳定至0.1左右。使用验证集对训练模型的效果进行验证,发现验证集的精度和损失值基本与训练集的收敛趋势保持一致,精度由0.301 2上升至0.965 4,损失值由1.781 1减小至0.095 5,该结果显示出了模型较好的拟合能力。最后,对该模型在测试集上的精度和损失值进行计算作为最终的评估结果,实验发现该模型在测试集上也具有良好的性能,结果显示CGRU在EMO-DB上的精度达到98.39%,损失减小到0.048。
图3 EMO-DB损失/精度
文中在相同参数设置下对CLSTM与CGRU的时间性能做了对比,考虑到时序模型存在梯度消失问题,因此,将LSTM和GRU层设为两层。如表2所示,在相同的模型参数下,CGRU用时3.64天完成训练,而CLSTM用了6.22天,比前者多出近一倍时间,这也符合LSTM与GRU模型自身门的特性,由于GRU比LSTM少了一个门操作,因此在处理大量数据时时间要优于LSTM。
表2 CLSTM 与CGRU时间对比
为了验证传统手工特征与深度谱特征在语音情感识别中的作用,在两组特征集上做了四组对比试验,实验结果如表3所示。可以看出,在使用完全相同的训练集与测试集的情况下,谱图特征展现出了有竞争力的表现,两种方法下的谱图特征均达到了90%以上的识别率。XGBoost作为一种强大的集成算法,相比随机森林而言,对数据不太敏感,模型更具鲁棒性,在eEeMAPS特征集上比随机森林表现出更优的性能,精度高出11.79%。实验显示,利用深度学习方法获取到的谱图特征在一定程度上接近甚至超越传统手工特征的识别精度。
表3 四种方法在两种特征下的识别精度
CGRU利用Mel功率谱图在深度学习方法中对EMO-DB情感的识别精度达到98.39%,超过了文献[19]中95.1%的准确率,也比方法2的精度高出了3.85%。虽然使用Mel功率谱图特征的CLSTM识别率低于使用手工特征的XGBoost,但为了便于比较CLSTM与CGRU的模型表现,统一将迭代次数设置为300,由于LSTM较GRU收敛速度较慢,因此方法3还可继续收敛,说明了深度学习下的谱图特征较传统手工特征具有不错的表征能力。
实验使用混淆矩阵对柏林语料库的Mel功率谱图特征在CGRU模型上的效果进行评估,矩阵值为归一化后结果,其中,横向代表模型的“预测标签”,纵向代表数据的“真实标签”,对角线数值表示正确预测类别的数量占预测总类别数量的比率,深色部分表示预测效果良好,浅色部分表示预测结果欠佳,结合混淆矩阵的特性,实验结果应在对角线位置呈最深颜色以达到最佳效果。
由图4可知,“neutral”的预测效果最好,而“disgust”的预测效果最差,且大部分被误分为“fear”类,其主要原因为该两种情感在情绪的“动机-维度”模型中均属于高动机低效价的情感,二者在情感表达方面具有一定的相似度,因此在模型识别时会有一定程度的混淆。
图4 EMO-DB归一化混淆矩阵
借鉴深度学习的思想,使用深度谱特征代替手工特征,提出在小数据集上完成语音情感的深度学习建模。利用卷积神经网络强大的表征能力,将生成的Mel功率谱图作为CNN的输入获取语音的频域特征,再结合语音信号的时序特性,加入GRU模型获取谱图的时域特征,以此构建一种CGRU的融合模型对小数据集进行深度学习。实验在EMO-DB数据集上利用谱图特征与传统语音情感识别的声学手工特征的识别结果相比具有良好的竞争力。该方法摒弃了传统构建特征的繁琐过程,使用深度学习自动提取特征。
未来,将注意力放在融合特征方面,结合深谱特征的潜在信息和声学特征的专业特性构造鲁棒性更加优越的融合特征,以适应更广泛的数据集。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!