一种语音情感深度迁移识别算法
2022-03-07王继东李慧琪
王继东,李慧琪
(湖州师范学院教师教育学院,浙江湖州 313000)
0 引言
近年来,人工智能技术飞速发展,在众多领域中应用广泛。其中,情感计算作为计算机科学、心理学、神经科学等多学科交叉的新兴研究领域,已成为人工智能发展的重要方向。而语音情感识别作为情感计算的重要分支是当前人工智能应用研究的热点。
语音情感识别是指利用计算机分析情感,提取其表达情感的声学特征,利用该特征进行建模并识别,寻找情感与特征之间的映射关系,实现情感分类。早在21 世纪初,Nwe 等使用隐马尔科夫链模型对语音进行情感分类,实验表明在语音情感分类上LFPC(Log Frequency Power Coefficients)特征优于MFCC(Mel Frequency Cepstrum Coefficient)特征,但隐马尔科夫链未能考虑音频特征的前后关系,导致可参考数据较少,预测准确率较低。Jain 等使用支持向量机划分语音情感,降低无关维度的影响,提高了情感识别率,然而该方法无法大规模处理训练样本,对核函数及相关参数的敏感性使得划分结果随机性较大。Mirsamadi 等构建了基于注意力机制的双向长短时记忆网络(Bidirectional Long Short-Term Memory,BLSTM)模型用于语音情感分类,该模型通过分析音频特征的前后关系以提高准确率,但模型较为复杂,训练时间较长。
由于人类在语音情感表现及主观判断上的个体差异性较大,传统识别分类算法通常需要足够量级的数据才能较为准确提取语音情感的共同特征。目前,缺少大型语音情感训练数据集是语音情感识别的瓶颈。鉴于此,文献[7-9]尝试将迁移学习技术与神经网络相结合以解决该问题。其中,利用迁移学习将源域资源作为先验信息迁移至目标域任务中,以提高资源利用率,解决资源不足的问题。当前,迁移学习方法在计算机科学领域引起了广泛的研究和探讨。在语音情感识别方面,Badshah 等使用CNN 卷积神经网络对语音进行情感分类,先将语音转化为语谱图的二维形式,然后使用预训练的Alexnet 网络对自身进行迁移学习,以避免发生过拟合。Liu 等将FaceNet 模型改进后用于语音情感识别,先将语音信号转化为波形图和频谱图,随后将其分别送入FaceNet 模型进行端到端训练,以获得较高的识别准确率。宋鹏等提出一种结合最大均值差异法与半监督判别法算法。文献[16-17]则使用了迁移学习技术对前人提出的语音情感识别算法进行改进,取得了一定的效果。然而,以上迁移学习算法大多只在测试集上表现良好,在具体实践中泛化能力较低。
针对上述问题,本文提出了一种语音情感深度迁移识别算法。首先利用手工提取特征的CNN 模型在源域中较大的语音情感数据集上进行训练拟合,得到预训练模型;然后,基于迁移学习技术冻结预训练模型的卷积层,同时动态增减输出层语音情感分类数量以形成新的分类模型;最后,将新模型在目标域中较小的语音情感数据集上进行测试,以实现低资源数据集条件下的语音情感识别。
1 本文算法
本文基于卷积层特征相关性提取功能和迁移学习方法,以下将按照算法运行步骤详细介绍其中的关键处理环节。
算法主要包括确定源域数据集和构建语音情感分类模型两步,如图1 所示。首先,确定源域数据集,以目标域D
中的语音情感数据集C
为参考,通过分析数据集属性,选择备选数据集C
。之后,计算C
与C
的相关性,若相关性较高则令C
为源域D
中的数据集C
,否则重新选择C
。在确定源域数据集C
后,进行语音情感分类模型构建。接下来,建立一个卷积神经网络训练拟合C
中提取的特征,以获取预训练模型N
。最后,在目标域D
中修改N
形成最终的迁移学习模型N
。1.1 确定源域数据集
通过选择源域数据集、特征提取及相关性计算确定合适的源域数据集C
,具体如下:1.1.1 构建属性分析表
构建属性分析表是确定源域数据集的前提。本文基于语音情感分类的群体特异性、表现特异性和环境特异性,构建数据集属性集Attr
,如式(1)所示。Fig.1 Algorithm steps图1 算法步骤
At
tr={语言,语音长度,录制环境,性别比例,基于提取特征和相关性计算两步操作以分析目标域D
中语音情感数据集C
与备选数据集C
的属性,并最终确定源域D
中语音情感数据集C
。1.1.2 特征提取
为了多角度提取语音情感特征,借鉴文献[18]的语音情感特征归纳方法,分别从数据集C
和C
中提取每条语音的1 582个情感特征形成特征集,如表1 所示。其中,“基頻个数”和“持续时长”为全局基本特征描述,直接作为新特征;局部基本特征描述则通过特征统计函数处理而成。为了保证源域D
和目标域D
中提取特征的相关性,使用式(2)将语音情感的特征向量v
进行归一化处理。Table 1 Speech emotion feature set表1 语音情感特征集
1.1.3 相关性计算
1.2 语音情感分类模型构建
在确定源域数据集C
后,利用迁移学习和CNN 构建语音情感分类模型,具体包括构建预训练模型和迁移学习训练两部分。1.2.1 构建预训练模型
参照LeNet5设计一个深度可满足数据集拟合且便于迁移的CNN,如图2 所示。先通过卷积层处理输入特征,然后经过全连接层进行特征拟合。由于语音情感信息较稀疏,在卷积层之间使用了Maxpool 层以突显优势特征,并且在全连接层间加入Dropout 层,通过随机丢弃一半特征以避免发生过拟合现象,增强网络的泛化能力。在网络末端插入6 分类的Softmax 层,通过式(4)交叉熵损失函数的计算结果进行反向传播训练。
其中,C
为损失值、n
为样本数量、y
为样本标签、a
为样本正确的概率。在训练网络构建完成后,使用C
提取的特征向量进行拟合训练。当训练准确率开始震荡且与测试准确率相接近时,将分类层Softmax 之外的拟合参数和训练网络以文件形式分开保存,形成预训练模型N
。Fig.2 Training network and hyperparameters图2 训练网络与超参数
1.2.2 迁移学习训练
将预训练模型用于迁移学习训练时,若源域与目标域相关性较高,则预训练模型中卷积层的特征相关性提取可在不改变该层拟合参数的条件下,将卷积层直接应用于目标域。为此,构建了迁移学习训练模型N
,如图3 所示。其中,预训练模型N
的具体组成见图2;迁移学习模型N
基于N
改造而成。具体修改操作包括:①冻结N
中卷积层Conv_1 和Conv_2 的拟合参数,使其在迁移学习训练过程中始终保持不变;②动态增减分类层Softmax 的超参数,以满足语音情感分类要求。在迁移学习训练模型N
构建完成后,使用目标域数据集C
提取的特征进行训练,以实现语音情感分类。1.2.3 复杂度分析
卷积神经网络包含多个隐藏层,其计算主要是矩阵乘法,时间复杂度为O
(d
d
),其中d
表示第l 层的维度。因此,CNN 的时间复杂度可表示为:其中,t
为模型训练的迭代次数,L
为卷积层数。本文语音情感分类识别算法中预训练和迁移训练都基于CNN,因此时间复杂度可表示为:其中,n
和n
分别为预训练和迁移训练的迭代次数。Fig.3 Construction of transfer learning training network图3 迁移学习训练网络构建
2 实验与分析
实验环境为Intel Core i3-8145U 2.3GHz,4GB RAM,Window 10 操作系统,基于Pytorch 框架实现本文算法,并进行相关实验和分析。由于语音情感在自然状态和表演状态下的表现存在差异,因此选择2个表演数据集CASIA和EMO-DB作为研究对象。其中,CASIA 库是普通话语音情感数据库,包括4 名演员愤怒、惊讶、恐惧、快乐、嫉妒和悲伤6 种情绪,共1 200 条数据;EMO-DB 库为德语语音情感数据库,包括10 名演员生气、高兴、害怕、悲伤、厌恶、无聊和中性7 种情绪,共535 条数据,但由于厌恶语句过少无法进行训练,本文予以剔除,仅使用剩下的6 种情感,共489条数据进行训练。
2.1 测试迁移学习
选择CASIA 库1 200 条数据作为源域数据集,选择EMO-DB 库106 条数据作为目标域数据集。根据式(3),从源域数据集中随机抽取两批106 条数据,计算的距离值为0.458 3;从源域数据集中随机抽取106 条数据,计算其与目标域数据集的距离值为0.480 3;从源域数据集中随机抽取106 条数据,计算其与同等规模的全1 分布距离为1.508 1。可证明源域与目标域之间的距离较短,适合语音情感迁移学习。
本文从CASIA 库中随机抽取的方法是将数据按大小升序排列后进行编号,以系统时间为随机种子,使用随机函数从[1,1 200]范围内产生所需数量的数据。为取得预训练模型,本文将CASIA 中抽取的1 200 条数据,随机选择1 080 条数据作为训练集,其余数据作为测试集。采用Adam 优化器,学习率设置为0.001,批尺寸为50。
图4 是预训练模型混淆矩阵,可见模型在预判“生气”情绪时效果较好,在预判“惊讶”情绪时效果一般,模型的总体效果较好。
Fig.4 Pre training model confusion matrix图4 预训练模型混淆矩阵
在迁移学习训练时,选择EMO-DB 库中106 条数据模拟日常可收集的数据量进行训练,从中随机选择74 条数据作为训练集,剩余32 条作为测试集。采用Adam 优化器,学习率设置为0.001,批尺寸为20。训练混淆矩阵如图5 所示,可见当改变情感位置与种类时,预训练对迁移学习训练会造成较大影响,例如在本次预训练过程中,预判正确率较高的伤心情感准确率为100%,而其中不存在的无聊情感,则大部分被模型误判为中性情感。
由图4-图5 可见,当源域与目标域较接近时,迁移学习对提高语音情感识别训练准确率存在较大的正向影响。
Fig.5 Transfer learning model confusion matrix图5 迁移学习模型混淆矩阵
2.2 算法比较
为了检验迁移学习提升准确率的效果,在设置相同优化器、学习率等参数条件下,使用BLSTM 和CNN 模型与本文算法进行了比较实验。实验输入数据分别为EMO-DB中1 男1 女共106 条数据与CASIA 中120 条数据,以模拟低资源数据集。如图6 所示,当BLSTM 和CNN 仅训练EMODB 的106 条和CASIA 的120 条数据时,容易发生过拟合现象。而本文算法可有效提升低资源数据集的泛化能力,以获取更高准确率。
Fig.6 Comparison of recognition rate图6 识别率比较
3 结语
本文基于CNN 和迁移学习提出了一种语音情感识别算法。该算法在目标域数据集不足的限制条件下,通过确定源域数据集和构建语音情感分类模型两个步骤实现了对低资源数据集的语音情感分类。对比现有传统算法,本文算法识别率达到60%以上。未来工作中,将寻找适用于语音情感识别的预训练模型对其进行迁移学习,以进一步提升语音情感识别的精度。