如何使用对比预测编码提升语音情感识别性能?( 三 )


用于情感识别任务的数据集名为“瑞尔森情感语音和歌曲视听数据库”(RAVDESS) 。 笔者的研究中只考虑语音数据集 。 该数据集由24位演讲者组成 , 男女演员比例均等 。 用八种情绪读出特定的句子 , 即:中性、平静、快乐、悲伤、愤怒、恐惧、惊讶和厌恶 。
【如何使用对比预测编码提升语音情感识别性能?】笔者选择在验证集和测试集之间平均分配最后两个演员 。 此外 , 音频文件是从其他演员中随机选择并添加的 , 以确保80%的数据用于训练集 , 实现经典的80:10:10分割 。 本次研究中 , 笔者忠实于原始数据 , 因此训练模型以分类八种情绪 。
方法
· CPC系统
标准的80维Fbanks作为输入特征 , 通过一个隐藏大小为512的3层MLP编码器、批量标准和ReLU激活 。 特征编码器(z)的输出通过输出大小为256的单个GRU层馈送 , 生成上下文特征向量(c) , 用于展示训练情绪识别模型 。
CPC系统的训练窗口大小为128(相当于1.28秒 , 因为Fbanks为100赫兹) , 批量大小为64和50万步 。 这相当于图书馆100小时数据集的114个纪元左右 。 RAdam优化器在余弦退火到1e-6之前的前三分之二的训练中 , 以4e-4的平坦学习率使用 。 使用了未来12个时间步长的总范围(k) , 因为其显示出CPC任务中区分阳性样本和阴性样本的最高准确性 。
· 情感识别系统
此外 , 为了研究演示的可访问性 , 以及提升系统的性能 , 笔者使用了多种情感识别模型的体系结构 。 下面的列表给出了所使用的7种架构的更多细节 , 所有模型都已对输入特征应用全球标准化 。
· 线性—单一线性层 。
· MLP-2—2块多层感知器 。 每块包含一个线性层(隐藏大小为1024)、批处理范数、ReLU激活和丢失(概率 0.1) 。
· MLP-4—同上 , 但有4块 。
· RNN(单向)—2层 , 非双向 , 隐藏尺寸512 , 丢失概率0.1 。
· 卷积—带6个卷积层 , ReLU激活 , 丢失概率0.1和最大池层 。
· 波网—扩张的卷积结构 , 呈指数增长 。 超参数隐藏大小64 , 膨胀深度6 , 重复次数5 , 内核大小2 。
· RNN(双向)—与RNN相同 , 但是双向的 。
模型以1024(10.24秒)的窗口大小 , 8批量大小和总共40k个步骤进行训练 。 框架式交叉熵损失用于八种情绪 。 与CPC训练相比 , 优化器和学习速率保持不变 , 但是 , 学习速率计划被关闭 。 笔者分析过程中 , 使用了无CPC预训练的基线情绪识别模型 , 该模型以Fbanks作为特征向量进行比较 。
结果
· CPC的影响
在自我监督的学习文献中 , 经常使用线性架构来说明演示的可获得性 。 本项研究中 , 笔者想说明 , 更复杂的结构也有提升空间 , 例如具有扩展卷积的WaveNet样式模型或双向RNN 。 表1显示了每种推荐架构使用Fbanks和CPC特性时的帧精度 。 在每种情况下 , CPC特征在对语音中的情感进行分类时都会提升准确性 , 而与架构无关 。 相对误差平均下降21.7% , 换句话说 , 消灭了超过五分之一的错误 。
如何使用对比预测编码提升语音情感识别性能?
本文插图
表1:使用CPC特征而不是Fbanks时 , 各种模型架构从RAVDESS数据集对八种情绪进行分类的帧级准确性 。
值得注意的是 , 由于CPC演示比Fbanks具有更大的特征维数 , 以CPC训练的情感识别模型具有更高的参数计数 。 然而 , 运行了一些匹配参数计数的测试后 , 笔者发现Fbanks依然存在被超越的趋势 , 并且差距只缩小了一小部分 。
· 架构的影响
表1中表现最差的三个模型没有利用跨时间的信息——试图在只给出一帧图像的情况下对情绪进行分类 。 使用单向RNN或卷积层的模型可以考虑额外语境 , 这会产生很大的不同 , 尤其是在使用Fbanks时 。