A Speech Emotion Recognition Framework for Better Discrimination of Confusions-语音论文阅读

本文介绍了一种用于改进情绪识别中混淆问题的框架。该框架通过使用triplet loss和数据增强技术来提升模型对于相似情绪标签的区分能力。实验结果显示,此方法有效改善了happy和neutral标签之间的混淆。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章介绍

  1. 论文名字 A Speech Emotion Recognition Framework for Better Discrimination of Confusions来自interspeech_2021
  2. 作者 Jiawang Liu, Haoxiang Wang
  3. 论文背景 当前许多的研究中,比较常见的问题是一些特定的情绪被严重错误分类,从数据集IEMOCAP数据集中给出的混淆矩阵中可以知道,普遍的一个问题是 大多数的happy标签的话语被误分类为中性,这种情况 作者认为是由于neutral和happy两个标签的激活水平比较相似,而导致模型不能够区分出来,一般而言,在数据量多的情况下,预测的标签一般都是会向数量级多的量进行偏移,这就是作者设计这个基础的来源
  4. 相关论文来源,比如triplet loss 和triplet selection 是来自这篇CV方向的论文FaceNet: A Unified Embedding for Face Recognition and Clustering,data augmentation 部分的论文来自于interspeech_2019SpecAugment: A Simple Data Augmentation Method for Automatic Speech Recognition,而主体架构CNN-LSTM架构是参考自Efficient Emotion Recognition from Speech Using Deep Learning on
    Spectrograms

结构分析

  • 系统结构图

在这里插入图片描述
在这里插入图片描述

  • 虽然说这个系统结构里面的文献也给出了 可以自己看看里面的结构情况,但是有的方面还是不能让人那么理解,整个系统流程是
    1、将整个数据集的语音分成三个组块儿(triplet模式),
    2、Data Augmentation 比如时间偏移(将对数mel谱图在图像的时间步长(W,t-W)上随机一个点选择一个点随机像左边或者是右边移动);频率遮蔽(在连续的mel频率通道上将一部分进行评比);时间遮蔽(同理),在我的理解上 认为就是横轴和竖轴进行随机的一个区间直接进行掩蔽掉
    3、将1通道的图像输入的CNN里面,一共四个CNN 每个CNN都有一个batch normalization 在这里插入图片描述
    4、输出的结果开始输入到双向的LSTM(BI-LSTM)
    5、接着直接进入到不同的triplet选择中分别有两种,第一种是semi-
    hard triplets
    在这里插入图片描述
    第二种是 hard triplets
    在这里插入图片描述
    这两种其实是进行分别计算loss的
    6、直接开始进入全连接层进行计算,两种loss分别进行损失函数计算,Adam进行优化器优化
    7、最后直接进行判断结果了
    在这里插入图片描述

实验结果

  • 未使用triplet loss后的结果
    在这里插入图片描述
  • 使用triplet loss后的结果
    在这里插入图片描述
  • 具体每次增加的方法进行实验结果对比
    在这里插入图片描述

总结讨论

这篇论文里从前人的文章里总结出了大体的架构即CNN-LSTM,然后利用数据增强和triplet的方法进行处理,在方法上能够让我知道,数据的预处理对应着结果可能有着重要的影响,利用GAN生成对抗式网络来进行另一种方法来进行数据的混淆,可能是使得数据特征变得更加清晰,这也是作者最后阐述的一些相关想法

### SDTF-Net 的架构及其在语音情感识别中的应用 #### 1. **SDTF-Net 网络架构概述** SDTF-Net 是一种静态和动态时间频率网络(Static and Dynamic Time-Frequency Network),专门设计用于处理语音信号的时间频率特性。该网络的核心思想在于结合静态特征与动态特征,从而更全面地捕捉语音的情感信息。 静态特征主要指 MFCC 特征[^1],这些特征能够反映语音的频谱分布情况;而动态特征则包括一阶差分和二阶差分,可以描述语音随时间变化的趋势。这两种特征被非线性融合后输入到层次化神经网络中,进一步提升模型的表现能力。 #### 2. **SDTF-Net 实现细节** SDTF-Net 的实现主要包括以下几个部分: - **特征提取层** 在这一阶段,原始语音信号经过预处理后分别提取出静态特征(MFCC)和动态特征(一阶差分、二阶差分)。随后,通过特定方法将两者进行非线性融合,形成综合特征向量。 - **多尺度卷积模块** 卷积操作广泛应用于时间频率域上的模式学习。为了更好地适应不同长度的情绪表达,SDTF-Net 设计了多尺度卷积核结构,允许模型在同一层捕获多种粒度的信息[^2]。 - **注意力机制引入** 考虑到情绪的关键帧可能仅占整个录音的一小部分,因此在网络内部嵌入了自注意力机制(Self-Attention Mechanism)。这种机制有助于突出重要时刻并抑制冗余背景噪声的影响[^5]。 - **全连接分类器** 经过上述各步处理后的高维表示最终送至全连接层完成类别预测任务。损失函数通常采用交叉熵形式指导参数更新过程直至收敛为止。 #### 3. **优势分析** 相比传统方法或者单一依赖某类特征的方法而言,SDTF-Net 展现出如下几方面优点: - 更加充分挖掘了语音数据潜在价值; - 对复杂场景下的鲁棒性强于单纯基于幅度谱的传统方案; - 利用了最新的深度学习组件如残差链接等改进基础框架性能边界达到新高度。 以下是 Python 中构建简单版本 SDTF-Net 的伪代码示例: ```python import tensorflow as tf from tensorflow.keras import layers, models def create_sdtf_net(input_shape=(None, None)): inputs = layers.Input(shape=input_shape) # Static Feature Extraction Layer mfcc_features = extract_mfcc(inputs) # Placeholder function # Dynamic Feature Extraction Layer delta_1st = calculate_first_order_difference(mfcc_features) delta_2nd = calculate_second_order_difference(delta_1st) combined_features = concatenate([mfcc_features, delta_1st, delta_2nd]) # Multi-Scale Convolution Block conv_block_output = multi_scale_conv(combined_features) # Self Attention Module attention_applied = apply_self_attention(conv_block_output) flatten_layer = layers.Flatten()(attention_applied) dense_out = layers.Dense(units=8, activation='softmax')(flatten_layer) model = models.Model(inputs=inputs, outputs=dense_out) return model model = create_sdtf_net() model.compile(optimizer='adam', loss='categorical_crossentropy') ``` --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值