APP下载

结合数据平衡和注意力机制的CNN+LSTM的自然语音情感识别①

2021-05-21张石清赵小明

计算机系统应用 2021年5期
关键词:集上样本注意力

陈 港,张石清,赵小明,

1(浙江理工大学 机械与自动控制学院,杭州 310018)

2(台州学院 智能信息处理研究所,台州 318000)

人类的语言不仅包含了丰富的文本信息,同时也携带着包含人们情绪表达的音频信息,如语音的高低、强弱、抑扬顿挫等变化.如何让计算机从语音信号中自动识别出说话人的情感状态,即所谓的“语音情感识别”方面的研究,已成为人工智能、模式识别、情感计算等领域中的一个热点研究课题.该研究旨在让计算机通过分析说话人的语音信号对用户的情感信息进行获取、识别和响应,从而实现用户与计算机之间的交互更加和谐与自然.该研究在智能人机交互、电话客服中心、机器人等方面具有重要的应用价值.

目前,在语音情感识别领域中,大量的前期工作[1-4]主要是针对模拟情感而进行的,因为这种模拟情感数据库的建立相对自然情感而言,要容易得多.近年来,针对实际环境下的自然语音情感识别方面的研究备受研究者的关注,因为它更接近实际,而且比模拟情感的识别要困难得多.

语音情感特征提取,是语音情感识别中的一个关键步骤,其目的是从情感语音信号中提取能够反映说话人情感表达信息的特征参数.目前,大量语音情感识别文献[5-10]采用手工设计的特征用于情感识别,如韵律特征(基频、振幅、发音持续时间)、音质特征(共振峰、频谱能量分布、谐波噪声比),谱特征(梅尔频率倒谱系数(Mel Frequency Cepstrum Coefficient,MFCC))等.近年来,也出现了一些代表性的包含几千个手工设计特征的声学特征集,如Interspeech-2010 特征集[11],ComParE 特征集[12],AVEC-2013 特征集[13]以及GeMAPS 特征集[14].尽管这些手工设计的特征参数已经取得了较好的语音情感识别性能,但它们是低层次的,对于情感的判别力还不够高,与人类理解的情感标签还存在“语义鸿沟”问题.

为了解决这个问题,近年来新出现的深度学习技术[15]可能提供了线索.近年来,一些代表性的深度学习方法,如深度信念网络(Deep Belief Network,DBN)[15]、卷积神经网络(Convolutional Neural Networks,CNN)[16]和长短时记忆单元(Long Short-Term Memory,LSTM)[17]都已经用于语音情感识别.当使用深度学习方法时,其输入一般为手工设计的声学特征参数,或者原始的语音频谱.例如,文献[18]采用DBN 直接从提取的MFCC等声学特征参数中提取高层次的属性特征,然后使用极限学习机(Extreme Learning Machine,ELM)实现情感的分类任务.文献[19-22]也开始成功使用CNN 从原始的语音频谱中提取出合适的特征参数用于语音情感识别.例如,文献[19]采用稀疏自动编码器和1 层CNN 结构的方法从原始的语音频谱中学习情感语音特征.

值得指出的是,文献[19-21]采用样本数量非常有限的情感语音数据集来训练自己的浅层CNN 模型(1 或2 个卷积层).然而,在计算机视觉领域,利用已训练好的深度CNN 模型,如AlexNet[16],在目标图像数据集进行迁移学习往往取得比浅层CNN模型更好的性能.主要原因是,深度CNN 模型可以通过采用多层的卷积和池化操作来捕获图像的高层属性特征.为了充分发挥深度CNN 模型的优势,我们之前的一个工作[22]提出将一维的情感语音信号转换成类似于RGB 图像的三通道语音频谱片段作为深度CNN 模型的输入,然后将在ImageNet 图像数据集已训练好的AlexNet 模型在目标语音情感数据集进行跨模态的迁移学习,取得了比浅层CNN 模型更好的语音情感识别性能.此外,文献[23]提出一种多尺度的CNN+LSTM的混合深度学习模型,获得了较好的语音情感性能.

然而,现有基于深度学习方法的语音情感识别研究存在一些问题:

(1)没有考虑语音数据集客观存在的情感类别不平衡问题,即数据集中各种情感类型的样本数量极不均衡.在这种数据类别不平衡的情况下,深度学习方法训练时对样本少的情感类型容易出现过拟合的现象.

(2)语音信号是一种时间序列信号,但不同时间上的片段区域对情感识别的作用大小是不一样的.现有文献大都忽略了一句语音中不同片段区域在情感识别方面作用的差异性,从而限制了深度学习方法的特征表征能力.因此,有必要将人类视觉注意力机制(attention mechanism)与深度学习方法相结合[24,25],用于语音情感识别的特征学习.

针对上述问题,本文提出一种结合数据平衡和注意力机制的CNN+LSTM的语音情感识别方法,并且用于自然语音情感类型的识别.首先,采用欠采样和过采样的方式实现情感语音数据集中的样本片段数量的类别平衡.所谓欠采样是在多数类中的语音样本进行部分采样,而过采样是在少数类中的语音样本进行部分重复采样.其次,采用在大规模音频数据集上已训练好的VGGish[26]模型在目标语音情感数据集上进行迁移学习.最后,通过对VGGish 学习到的一句语音中不同的片段特征区域,生成时间分布上的权重,然后和特征图进行加权求和运算,从而监督双向LSTM 网络(Bi-LSTM)的学习,以便给一句语音中不同片段特征区域分配不同的注意力权重值.这样,该方法能够聚焦于一句语音中对情感识别起作用的目标片段区域的特征学习,从而改善深度神经网络的特征表征能力,进一步提高语音情感识别性能.

在自然情感语音数据库BAUM-1s[27]和CHEAVD-2.0[28]的试验结果表明,本文方法取得的语音情感识别性能优于其它方法.

1 提出的方法

图1给出了结合数据平衡和注意力机制的CNN+LSTM的语音情感识别方法的系统流程图.由图1所示,该方法包括4 个步骤:(1)对数梅尔频谱(Log Melspectrogram)的创建和数据平衡(data balance);(2)基于CNN的深度片段特征学习;(3)基于注意力机制的Bi-LSTM的情感分类.图1中每个步骤的实现,具体如下所述.

图1 结合数据平衡和注意力机制的CNN+LSTM的语音情感识别方法

1.1 对数梅尔频谱的创建和数据平衡

对原始的一维情感语音信号重采样为16 kHz的单声道格式,然后采用帧移为10 ms,时长为25 ms的汉宁窗进行短时傅里叶变换,计算出整句语音信号的声谱图.将声谱图映射到64 阶Mel 滤波器组(Filter banks)中计算出Mel 声谱并取对数,得到稳定的对数Mel 频谱.

考虑到用于后续特征学习的VGGish[26]模型输入的片段大小是96×64,其时长为0.96 s (含96 帧,每帧0.01 s),因此需要通过控制时长进行欠采样或重采样,以便实现训练数据的平衡.图2和图3分别给出了BAUM-1s和CHEAVD2.0 上的数据平衡示意图.

图2 BAUM-1s 数据集上的数据平衡

图3 CHEAVD2.0 数据集上的数据平衡

如图2,图3所示,由于数据集中的每个语音样本的时长是不同的,然而模型的输入大小是固定的,因此使用数据平衡方法对输入的语音样本进行规范化处理,数据平衡的实现分为3 种情况:(1)对于时长小于0.96 s(时长<0.96 s)的语音样本,在其后面进行重复补值为零的帧,从而得到一个时长为0.96 s的片段,即含有96帧的对数梅尔频谱图;(2)对于时长大于0.96 s的语音样本,会根据其所属类别的样本总数占数据集总样本数的比例的多少进行欠采样或重采样.例如,对于BAUM-1s 上类别样本数量较多的高兴(Joy)和悲伤(Sadness)的语音样本采用欠采样方式减少片段数,即只在它们的首尾段处各取一个0.96 s的片段,而对于样本数量不多的语音样本采用重采样方式进行片段数的放大.对于样本数最少的害怕(Fear)和惊奇(Surprise)语音样本,片段重叠长度为0.24 s,而样本数较少的生气(Anger)和厌恶(Disgust),其片段重叠长度为0.48 s.数据平衡中产生的片段样本的类别等于其所在整句语音的情感类别.表1和表2分别列出了采用数据平衡前后在BAUM-1s和CHEAVD2.0 训练数据集上的各种情感类型的样本片段数量的对比.由表1和表2可知,在数据平衡之前,每个类别的样本数量差异较大,如害怕(Fear)和惊奇(Surprise)类别的语音样本数量,与其他类别的样本数量相差较大,在数据平衡之后,数据集中的每个类别的样本数量达到一种近似的数据平衡状态,从而能训练出更具鲁棒性的网络模型.作为举例,由于BAUM-1s包含30 人,实验时采用5 次交叉验证方法,即所有数据平均分成5 组,使用其中一组用于测试,剩下的4 组用于训练,共循环5 次,最后取5 次的平均结果作为最终的结果.因此,表1只列出了第一次交叉验证时的数据平衡前后结果,其中测试数据包含随机选择的6 人(S03、S19、S20、S24、S28、S29).

表1 BAUM-1s 数据平衡前后的训练数据样本片段数量比较

表2 CHEAVD2.0 数据平衡前后的训练数据样本片段数量比较

1.2 基于CNN的深度片段特征学习

目前,在计算机视觉领域,文献[29,30]已经证明在目标数据集上对预先训练好的CNN 模型进行微调(Fine-tuning),是一种有效的减轻数据不足的方法.具体的实现方式为首先通过一个大型的数据集来训练网络模型,由于网络模型的参数初始化对于模型的训练是至关重要的,因此由大型数据集训练完成保存的模型参数可用于初始化目标任务的模型参数.如文献[30]首先使用Imagenet 数据集训练网络模型,完成训练后,将模型的最后一个全连接层之前的所有参数迁移到目标任务中的模型,以此进行目标任务模型的参数初始化.为此,采用在大规模音频数据集上已训练好的VGGish[26]模型在目标语音情感数据集上进行迁移学习.

VGGish是由Google的语音理解技术团队于2017年3月发布的一个在大规模音频数据集训练得到类似于VGG的模型,旨在为音频事件检测提供常见的大规模评估任务.该模型包括6 个卷积层(Conv1,Conv2,···,Conv6)、4 个最大池化层(Pool1,Pool2,Pool2,Pool3,Pool4)和4 个全连接层(FC1,FC2,FC3,FC4).VGGish的训练数据来自于包括600 多个音频事件类的本体的200 万个人标记的10 s YouTube 视频音轨组成的数据集.VGGish 能够从原始的语音信号片段96×64 中提取高层次的128-D 大小的特征向量.

给定第i个输入片段数据ai及其对应的情感类别yi,对预训练好的VGGish 网络(V)进行微调,则相当于求解下面的最优化问题:

式中,ΥV(ai;θV)表示网络V的最后一个全连接层的输出特征,θV表示网络V的网络参数,WV表示网络V的Softmax 层的权重参数.损失函数L则表示为:

式中,yj表示第j个语音片段样本真实的类别号,yVj表示网络V的Softmax 层所预测的第j个样本类别号,t表示情感类别数目.

1.3 基于注意力机制的Bi-LSTM的情感分类

为了获取一句语音的长时间动态信息,采用基于注意力机制的双向长短时记忆网络(Bi-LSTM)对CNN 在不同语音频谱片段上学习到的128-D 特征序列进行时间上的动态信息建模,并输出整句语音样本的情感识别结果.

给定一个时间长度为T的输入序列(x1,x2,···xT),Bi-LSTM 旨在通过计算网络节点激活函数的输出,将输入序列(x1,x2,···xT)映射到一个输出序列(p1,p2,···,pT),如下所示:

式中,it、ft、ct、σt、ht分别是LSTM 模型中的输入门、忘记门、细胞存储单元和输出门的激活输出向量.xt和ht分别表示第t个时间步长的输入向量和隐层向量.Wαβ表示α和β 之间的权重矩阵.例如,Wxi是从输入xt到输入门it的权重矩阵.bα是的偏置值,σ表示Sigmoid 激活函数σ(x)=1/(1+e-x).

为了采用视觉注意力机制获取需要聚焦的重点语音片段区域,并抑制其他无用的信息,拟在 Bi-LSTM的基础上添加一个注意力层(attention layer).该注意力层首先采用式(8),计算出不同时间序列片段特征的权重参数,然后采用式(9)对不同片段特征进行加权求和,得到整句语音的特征表示μ,紧接着就可以采用Softmax 分类器来预测整句语音的情感类别.

2 实验与结果分析

为了检验所提出方法的自然语音情感识别性能,采用自然情感语音数据集BAUM-1s[27]和CHEAVD2.0[28]进行自然语音情感识别的实验测试.

2.1 数据集

BAUM-1s[27]数据集是一个在2016年建立的音视频情感数据集.它包括1222 个视频样本,来自于30 个土耳其人.实验中拟采用6 种基本情感进行测试,即生气(Anger)、厌恶(Disgust)、害怕(Fear)、高兴(Joy)、悲伤(Sadness)和惊奇(Surprise).这样,最终收集到520 个情感语音样本用于实验测试.

CHEAVD2.0[28]是中科院自动化所在2017年为多模态情感识别竞赛时提供的音视频情感数据集.它包含8 种情感类型:生气(Anger)、厌恶(Disgust)、害怕(Fear)、高兴(Joy)、悲伤(Sadness)、惊奇(Surprise)、担心(Worry)和焦虑(Anxiety).该数据集共有7030 个样本,分为3 部分:训练集(4917 个样本)、验证集(707 个样本)和测试集(1406 个样本).本文使用训练集和验证集来检验所提出方法的自然语音情感识别性能,因为测试集只对参加竞赛者开放和获取.

2.2 结果分析

表3和表4分别列出了本文方法采用数据平衡前后的试验结果的比较.从表3和表4可见:

(1)不管是否采用数据平衡策略,本文采用的带注意力机制方法(VGGish+LSTM+Attention)取得的语音情感识别性能,都要优于未带注意力机制方法(VGGish+LSTM).这表明采用注意力机制能够改善LSTM的特征表征能力,因为注意力机制能够聚焦于一句语音中对情感识别起作用的目标片段区域的特征学习.

(2)做数据平衡之后,所有方法取得的识别性能都要明显高于数据平衡之前的结果.在数据平衡之前,本文方法(VGGish+LSTM+Attention)在BAUM-1s和CHEAVD2.0 数据集分别取得了44.09%和41.73%.然而,在数据平衡之后,本文方法则分别在BAUM-1s和CHEAVD2.0 数据集上提高了3.18%和2.05%.这说明采用数据平衡策略能够进一步改善深度学习方法的特征学习能力.

表3 数据平衡之前的语音情感识别性能(%)

表4 数据平衡之后的语音情感识别性能(%)

为了进一步给出每种情感类型的具体正确识别率,图4和图5分别列出了本文方法(VGGish+LSTM+Attention)在数据平衡之后的两个数据集上识别结果的模糊矩阵.由图4可知,在数据平衡之后的BAUM-1s 数据集上,高兴(Joy)和悲伤(Sadness)的正确识别率分别达到了64.53%和61.19%,而其它4 种情感类别的识别性能较差,不足40%.由图5可知,在数据平衡之后的CHEAVD2.0 数据集上,生气(Anger)和中性(Neutral)的正确识别率分别达到了65.62%和64.5%,而其它6 种情感类型的正确识别率都不足45%.主要原因可能是这些情感类型学习到的特征表征区分度不高,导致它们相互之间容易混淆.

图4 本文方法在数据平衡之后的BAUM-1s数据集上识别结果的模糊矩阵

为了进一步说明本文方法的优越性,表5列出了本文方法取得的识别结果与其它现有文献报道结果之间的比较.从表5可知,本文方法不仅优于一些采用手工特征的方法,如MFCC[27],GeMAPS ADDIN EN.CITE.DATA[28-31],也优于一些基于深度卷积神经网络CNN的方法,如采用AlexNet的跨模态迁移方法[22,32].以及与含有20 层的ResNet 网络的自训练网络方法[33]获得的准确率相近.

图5 本文方法在数据平衡之后的CHEAVD2.0数据集上识别结果的模糊矩阵

表5 与现有文献报道的结果比较

3 结论与展望

本文提出了一种结合数据平衡和注意力机制的卷积神经网络(CNN)和长短时记忆单元(LSTM)的语音情感识别方法,采用数据平衡方法对语音情感数据集中每个类别的样本进行相应的预处理,再采用预训练好的VGGish 网络在目标数据集上进行微调,从而学习出分段语音特征,再通过带有注意力机制的LSTM从分段语音特征中学习对应的高阶判别性特征,最后通过Softmax 层进行情感分类.本文在两个自然语音情感数据集BAUM-1s和CHEAVD2.0 中的实验证明了提出的语音情感识别方法有较好的识别性能.由于本文提出的网络模型的训练方式并不是端到端的训练方式,因此,在未来的工作中,希望能以端到端的方式训练网络模型;由于高阶注意力生成的全局性特征更具表达力,并能辅助网络模型对语音信息长范围的相关性进行建模,因此,在未来的工作中,希望能将二阶注意力机制或更高阶的注意力机制与现有的网络模型进行结合,以学习出更具判别性的语音情感特征.

猜你喜欢

集上样本注意力
让注意力“飞”回来
关于短文本匹配的泛化性和迁移性的研究分析
规划·样本
随机微分方程的样本Lyapunov二次型估计
A Beautiful Way Of Looking At Things
师如明灯,清凉温润
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
几道导数题引发的解题思考
“官员写作”的四个样本
阅读理解两则