学术咨询

让期刊论文更省时、省事、省心

声学技术杂志投稿格式参考范文:基于双通道特征融合网络的语音情感识别

时间:

  0 引 言

  语音是人类最直接简单的交流方式,除了基础的语义信息之外,也包含着人类所要表达的情感信息。发掘语音中隐含的情感信息,对于人机交互具有重要作用。语音情感识别旨在通过计算机对语音特征进行处理、分析、理解人类语音的情感内容,已被广泛应用于医疗陪护 [1]、智能交通 [2] 和影视文化 [3] 等领域,以提高用户体验和交互效果。

  目前,通过语音信号来研究情感状态已经受到越来越多的关注,但现实世界中的语音情感是丰富多样、微妙复杂的,因此提取语音情感中的有效特征信息是一项具有挑战性的任务 [4]。语音情感特征分为四类:声学特征、语义特征、语境特征、声学特征和其他信息结合的特征,其中声学特征是非常重要的因素,包含韵律学特征、基于谱的相关特征、音质特征和基于非线性 Teager 能量算子特征 [5]。近年来,二维时频特征如频谱图、对数梅尔 (logMel) 频谱图常被用作输入特征,它能够反映语音信号的频谱随时间变化的信息以及声学特征,如共振峰、基音频率、能量和振幅等,这些信息可以帮助深度学习网络更好地区分不同的情感状态。Badshah 等 [6] 将语音信号转化为语谱图作为模型输入,通过由三个卷积层和三个全连接层组成的卷积神经网络 (convolutional neural networks, CNN) 模型从语谱图中提取特征,输入到 Softmax 分类器进行分类,最终在 EMO-DB 数据集上得到 84.3% 的准确率。Wang 等 [7] 提出一种双序列长短期记忆网络 (long short-term memory, LSTM), 该网络模型能同时处理两个梅尔谱图,在 IEMOCAP 数据库上的准确率比单模型提高了 6 个百分点。Du 等 [8] 提出一种改进的类 transformer 模型 [9] 用于提取对数梅尔过滤器组能量特征,在 EMO-DB 数据库上达到 74.9% 的准确率。但是以上研究 [6-8] 在提取声学特征时,只利用 CNN 网络提取局部频域特征或者只利用 LSTM 网络、transformer 网络提取上下文全局序列特征,并没有同时兼顾到局部特征和全局上下文特征,不能充分利用情感特征。Bautista 等 [10] 构建了 CNN 网络提取局部特征,并利用基于注意力机制的 transformer 网络学习情感信息的全局特征,再通过并行结构对语音情感进行识别。该方法采用的 CNN 网络层数较少、结构简单,不能充分提取图像数据包含的局部特征;所采用的视觉 transformer (vision transformer, ViT)[11] 网络可以捕获全局序列特征,但是图像分块的输入方式会产生序列特征过长的问题。

  针对以上问题,本文提出一种基于卷积神经网络和带有序列池化的卷积 transformer (convolutional neural network and convolution transformer with sequence pooling,CNN-CTSP) 的双通道特征融合网络。首先向 CNN 网络中加入倒瓶颈结构构建 CNN 模块通道,并引入类 transformer 训练策略,更好地提取 log-Mel 谱图中的局部细粒度频谱特征。其次,对 ViT 网络进行改进得到 CTSP 模块通道,提取 log-Mel 谱图全局序列特征,改变输入方式,利用卷积变换代替线性变换,能够避免语音序列过长和模型计算量大的问题。然后利用多头注意力 (multi-head attention, MHA)[12-13] 从关键的语音帧中快速关注到判别性强的情感,加入序列池化汇集特征信息。最后将局部特征和全局特征进行融合,增加情感信息量,提高模型识别精度。

  1 CNN-CTSP 语音情感识别模型

  本文所提语音情感识别模型整体框架如图 1 所示。该模型识别的具体流程如下:

  (1) 对语音信号进行预处理操作,提取 log-Mel 谱图特征,直接在 log-Mel 谱图的基础上进行数据增强,得到扩充后的 log-Mel 特征集;

  (2) 将 log-Mel 特征集输入到上通道 CNN 模块,通过卷积层进行下采样操作,再依次输入到不同的阶段 (Stage) 中提取局部频谱特征;

  (3) 同时将 log-Mel 特征集输入到下通道 CTSP 模块,通过卷积块 (Conv Block) 直接提取整个 logMel 谱图的特征,然后输入到 transformer 编码器,利用 MHA 和多层感知机 (multilayer perceptron, MLP) 将特征向量映射为高维连续表征序列,通过序列池化将不同部分的情感序列相关信息汇集,得到全局序列表示;

  (4) 将 CNN 模块提取的局部频谱特征和 CTSP 模块学习到的全局序列特征通过拼接操作连接起来,综合利用不同特征在捕捉情感表达方面的优势,获得情感信息更丰富的融合特征后,经过 Softmax 层得到最终情感分类结果。

  1.1 对数梅尔 (log-Mel) 特征

  语谱图包含信号中时频域的相关性,在语音情感识别中起到重要作用,因此将语音信号的 logMel 谱图作为模型输入特征。log-Mel 特征的获取步骤如下:

  (1) 将音频信号进行预加重处理,然后进行分帧、加窗操作,得到帧信号x(n), n 表示帧中的时间索引,帧长为 25 ms、帧移为 10 ms;

  (2) 对加窗后的语音信号利用快速傅里叶变换计算每一帧频谱,得到频域表示X(k);

  (3) 对每一帧频谱信号取幅度平方得到功率谱G(k), 将G(k)输入到梅尔滤波器组Hm(k), 得到滤波器的输出E(m), 其中m=0,1,⋯,40[14]表示滤波器的个数,然后将E(m)取对数即可得到 log-Mel 特征,以W×H×C的图像格式保存,其中 W、H、c 分别代表图像的宽度、高度和通道数。

  1.2 CNN 模块通道提取局部特征

  CNN 网络能结合局部感知野、共享权重和下采样提取图像数据包含的局部特征。在 CNN 模块中引入类 transformer 训练策略提取 log-Mel 特征集的局部频域特征:遵循 Swin transformer [15] 中 Stage 计算比例为 1∶1∶3∶1 的原理,CNN 模块四个 Stage 中 Conv Block 的堆叠次数为 (1, 1, 3, 1), 每个 Stage 通道数为 (96, 192, 384, 768), 在 Stage2、3、4 中,堆叠 Conv Block 之前都有一个下采样操作,是由层归一化 (layer normalization, LN) 和一个逐点卷积组成。

  采用倒瓶颈结构,即中间粗两头细,可以避免下采样过程中高维情感特征信息的丢失,以 Stage1 中 Conv Block 为例,输入通道维度为 96, 经过深度卷积后维度不变,经过第一个逐点卷积维度从 96 变为 384, 第二个逐点卷积将维度变回 96; 采用具有更大感受野 7×7 卷积核大小替换标准 3×3 卷积核,能够减少激活函数和归一化层数;将激活函数 GELU 代替 ReLU, 考虑到一层输出的变化会在下一层总输入中产生强相关的变化,通过设置每一层总输入的平均值和方差消除协变量偏移的问题。

  1.3 CTSP 模块通道提取全局特征

  ViT [11] 网络结构中将输入图像均匀划分为多个补丁块 (patch), 当 patch 的数量非常多时,会影响之后的序列长度。面对过长的序列时,初始的序列特征和后续序列特征的相关性会逐渐减弱,训练过程会出现不稳定和梯度消失的现象,因此对于捕获非常长的序列之间的依赖性变得困难。

  为解决以上问题,利用卷积块对 ViT 模型进行改进,替换 ViT 模型中的 “patch 嵌入” 层,将 log-Mel 特征集经过卷积块操作提取特征向量。卷积块中同样采用更大的 7×7 卷积尺寸,获得更大的感受野,同时避免过长序列导致出现训练不稳定和梯度消失的现象,其中包括单个卷积层、ReLU 激活和最大池化操作。将卷积块输出向量加入位置嵌入来保证语音帧的时序顺序能够正常送入 transformer 编码器中,其中的 MHA 能够关注上下文相关情感显著部分。自注意力 (self-attention) 模块 [9] 首先对输入向量进行线性变换,得到 query(q)、key(k)

  和value(v), 然后将来自不同输入的 v 线性投影成三个不同的矩阵,即 Q、K 和 V。MHA 首先将加入位置嵌入后的卷积块特征向量转换成三组不同的向量:q、k 和 v, 然后将不同输入组导出的向量线性变换成不同的矩阵,分别进行 self-attention, 将不同的组输出hi拼接得到 MHA 最终的输出。

  将 MHA 的输出矩阵送入 MLP 结构,先经过全连接层线性变换,再通过 ReLU 激活函数非线性变换,最后线性变换得到输出。编码器输出的情感序列信息为ZL∈Rb×n×d, 其中 b 代表批量大小,n 代表序列长度,d 代表嵌入维度,L 代表 transformer 编码器的层数,将其送到线性层g(ZL)∈Rd×1, 并应用 Softmax 进行激活,然后沿着第二维度进行合并,得到线性层最终的输出S∈Rb×d。序列池化能够权衡潜在空间的序列信息,更好地关联空间稀疏情感数据中的信息。

  CTSP 模块的优势在于抛弃原始 ViT 网络的图像分块。对 1.1 节中预处理操作提取的 log-Mel 特征集,利用卷积块进行情感特征提取,避免了过长的序列导致的梯度消失的问题,然后通过一系列由 transformer 组成的编码器将情感特征信息映射到高维连续表征序列,最后利用序列池化将整个不同部分的情感序列相关信息汇集,不需要类别令牌标记,使模型更加紧凑,能够降低对大量数据样本的需求。

  2 实验设置与分析

  2.1 情感数据库

  选用 EMO-DB [18] 和 CASIA [19] 情感数据库进行模型有效性验证。EMO-DB 是语音情感识别中使用最广泛的数据库之一,由德国柏林工业大学进行录制。该数据库由 10 名专业演员进行录制,总共 535 条语音,包含中性 (neural)、生气 (anger)、害怕 (fear)、高兴 (happiness)、伤心 (sadness)、厌恶 (disgust) 和无聊 (boredom) 共 7 种情感。CASIA 情感数据库,是由中国科学院自动化研究所录制的汉语情感数据库,共 1 200 条语音,包含生气 (angry)、害怕 (fear)、高兴 (happy)、中性 (neutral)、伤心 (sad) 和惊讶 (surprise) 共 6 种情感。

  2.2 实验设置及评价标准

  网络模型基于 PyTorch1.11.0 版本深度学习框架进行搭建,硬件操作系统使用 MistGPU 平台的 NVIDIA RTX 2080Ti 显卡。网络参数中,单次训练样本参数批大小 (batch size) 为 32, 设置最大迭代次数为 200, 采用余弦退火学习率,初始学习率设置为 0.001, 利用 Adam 优化器更新网络参数。

  为了获得更好的性能,需要使用更多的数据避免过拟合。将 log-Mel 谱图以 224×224×3 的三通道 RGB (即每个像素由红、绿、蓝三个通道组成) 图像的形式存储,相比单通道灰度图的信息量更大。对原始 EMO-DB 数据库的 535 条语音和 CASIA 数据库的 1 200 条语音分别在语谱图的基础上进行数据增强,并扩充到原始数据集中 [20]。通过对 log-Mel 谱图增强色彩饱和度和随机旋转操作,分别得到 1 605 个 EMO-DB 和 3 600 个 CASIA 数据样本,获得扩充后的 log-Mel 特征集。对于数据量在104量级以下的小数据库,数据库划分为训练集和测试集的比例为 8∶2, 利用五折交叉验证方式对数据进行验证。为避免数据存在偶然性,每次实验重复 5 次,求出平均值作为实验最终识别结果。将非加权平均召回率 (unweighted average recall, UAR) 作为评估模型的评价指标,避免对某个类别过拟合。

  2.3 实验评价与结果

  2.3.1 模型结构实验

  本实验采用 EMO-DB 原始数据库 535 条和 CASIA 原始数据库 1 200 条样本数进行模型结构实验,采样率均为 22.5 kHz。实验时整体模型中 CTSP 模块保持不变,改变 CNN 模块中 4 个 Stage 的 Conv Block 堆叠次数,考虑到 CNN 层数的不同会导致识别不同情感的准确率不同。

  Conv Block 堆叠次数为 (1, 1, 3, 1) 时,EMO-DB 和 CASIA 数据库的准确率均为最高,分别为 79.76% 和 85.00%;Conv Block 堆叠次数为 (3, 3, 27, 3) 时,EMO-DB 和 CASIA 数据库的准确率分别为 76.19% 和 78.33%, 均为最低。随着卷积层数的增加,测试集的准确率逐渐下降。对于少样本来说模型过大训练过程会出现过拟合现象,导致准确率下降。对模型进行简化,不仅能减少提取高维特征时的计算量,还可以有效提高识别效率。因此确定 CNN 模块中 Conv Block 的堆叠次数为 (1, 1, 3, 1), 并将该模型确定为最终使用的 CNN-CTSP 模型。

  2.3.2 模型有效性验证

  对模型进行五折交叉验证,将 log-Mel 特征集作为模型输入,使用 CNN-CTSP 模型作为最终识别方法。 EMO-DB 数据库中每组实验的准确率。以 A、B、C、D、E 为例,数据 A、B、C、D 作训练集,E 作测试集,平均准确率为 93.64%。最高准确率在 A、B、C、E 作训练集、D 作测试集时,为 95.27%, 在 A、C、D、E 作训练集、B 作测试集的实验中,平均准确率为 93.46%, 与最高准确率相差 1.81 个百分点。EMO-DB 数据分布不平衡,经过数据增强后,每组的实验结果差距并不大。

  以 A、B、C、D、E 为例,数据 A、B、C、D 作训练集、E 作测试集,平均准确率为 93.61%。CASIA 数据库语音数据分布比较均匀,所以每组数据的五次实验准确率波动不大。将 A、B、D、E 作训练集、C 作测试集的实验中,平均准确率最低,为 92.47%, 和最终平均准确率仅相差 0.58 个百分点。

  为消除训练集和测试集分配的偶然性,采取每等份轮流作测试集的方法,再分别进行 5 次实验,求得均值和标准差之后再求均值的 5 折交叉验证。尤其对于 EMO-DB 类别数量分布不均匀的数据库,这种方法能够避免识别结果的随机性。EMO-DB 数据库和 CASIA 数据库最终的平均准确率分别为 94.24% 和 93.05%, 说明本文所提的网络模型在语音情感识别的性能表现较好。

  本文建立了基于两个数据库的识别结果的混淆矩阵,在 EMO-DB 数据库中,伤心情感的识别准确率最高,达到 100%, 其次是生气、无聊和害怕,准确率分别为 96.05%、97.67% 和 97.22%, 高兴和中性的准确率最低。在 CASIA 数据库中,生气和伤心两种情感的准确率最高,分别为 94.83% 和 96.36%, 其余情感标签的准确率均为 90% 以上,中性情感混淆比较严重,因为中性情感位于唤醒维 / 效价维空间的中心,与各种情感距离较近,与生气、害怕、高兴、伤心等情绪识别容易出现混淆现象。两个数据库中高兴情感标签的准确率均为最低,分别为 85.11% 和 90.76%; 在 EMO-DB 数据库中高兴测试数据有 6.38% 被误判成生气,有 8.51% 被误判成害怕。

  2.3.3 对比实验

  为验证本文提出方法的有效性,将本文模型与其他模型进行对比,使用 log-Mel 特征集作为模型输入。对比模型包括:

  Dense-DCNN 模型:利用 StarGAN 生成数据增强的 log-Mel 谱图,通过密集连接的 CNN 提取特征。

  2D CNN-LSTM 模型:CNN 提取局部特征,LSTM 学习长期依赖关系。

  CNN-Transformer 模型:并行使用 CNN 和 Transformer 分别提取局部和全局特征。

  ViT 模型:直接将 log-Mel 谱图分块输入视觉 Transformer 进行分类。

  CTSP 模型:改进 ViT 的输入方式为卷积块,引入序列池化。

  CNN 模型:仅使用改进后的 CNN 模块进行特征提取和分类。

  结果显示,本文提出的 CNN-CTSP 模型在 EMO-DB 和 CASIA 数据库上的准确率分别为 94.24% 和 93.05%,显著优于其他对比模型。例如,与 Dense-DCNN 相比,EMO-DB 准确率提升 3.18 个百分点,CASIA 提升 0.19 个百分点;与 CNN-Transformer 相比,两者分别提升 2.2 个百分点和 2.2 个百分点。消融实验表明,CTSP 模块相比原始 ViT 模型准确率提升超 20 个百分点,验证了卷积块和序列池化对避免过拟合和提升全局特征提取的有效性。此外,双通道融合相比单一 CNN 或 CTSP 模块,进一步提升了特征互补性和识别精度。

  3 结 论

  本文提出一种基于 CNN-CTSP 网络的语音情感识别模型,通过以下创新点提升性能:

  双通道特征融合:CNN 模块通过倒瓶颈结构和类 Transformer 策略提取局部细粒度频谱特征,CTSP 模块通过卷积块和序列池化提取全局序列特征,解决了传统方法单一特征提取的局限性。

  模型轻量化改进:CTSP 模块抛弃 ViT 的图像分块,避免序列过长导致的梯度消失问题,减少对大规模数据的依赖,提升小样本场景下的鲁棒性。

  高效特征交互:通过多头注意力和特征拼接,实现局部与全局特征的深度融合,增强情感信息的判别性。

  在 EMO-DB 和 CASIA 数据库上的实验结果表明,模型平均准确率分别达到 94.24% 和 93.05%,优于现有主流方法,验证了方法的有效性和先进性。未来可进一步探索跨语言情感识别和端到端模型优化,以拓展实际应用场景。

周晓彦;王丽丽;邵勇斌;鞠 醒,南京信息工程大学电子与信息工程学院,202406