将ISNet用于分离情绪语音中的个体声纹和表达特征

原文链接:​​​​​​https://ieeexplore.ieee.org/abstract/document/9767771/

一、研究内容

        现有的相关算法中常用说话人识别作为辅助任务来做情绪识别,虽然这些方法能减少个体间的声纹差异,但无法减少个体间的表达差异。这里的表达差异指不同的人对同一种情绪的演绎有所不同,比如同样是高兴,有的人会哈哈大笑,而有的人只会呵呵一笑。

        本文假设个人基准可以被建模为个体重型言语的表示,利用已有的个体中性语音做减法,从而消去声纹以及个体表达的差异。

二、模型架构

1.模块解释:

1.Emotion Encoder: 情绪编码器,输入为声谱图,由提取深度信息的残差卷积层和聚合时间的平均池化层组成,输出为情绪嵌入。

2.Neutral Encoder: 中性编码器,结构与情绪编码器相同,输入为同一个人的 K 条中性语音,输出为 K 个嵌入。

3.Averager:用于平均中性编码器的输出的 K 个嵌入,同一个人的中性语音嵌入呈正太分布。

4.Translator: 用于将情绪编码器输出的嵌入转换为基准嵌入,内含多个注意力块,用于情绪特征的分离和个体基准信息的保留。

5.Standardizer: 已经证明,人脸图像可以表示中性人脸和情感人脸的叠加,此标准器用于标准化情绪嵌入。

6.Classifier: 将提取到的情绪信息用于情绪分类。

        这里已经有了中性语音嵌入,却不直接将情绪语音嵌入减去已有的中性语音嵌入,而是将情绪语音嵌入做转换得到自己的基准嵌入,把这个基准嵌入用到减法当中,能取得更好的效果。

2.三个损失函数:

1.Le 为中性编码器得到的同一个人的多个嵌入之间的距离之和,由于L2距离容易使得相似的距离变小(?),会导致梯度消失问题,因此此处选择L1距离。

2.Lt 为已有中性语音嵌入和由情绪语音得到的基准嵌入之间的距离。

3.Lc 为分类损失,采用交叉熵损失函数。

三、训练

        若将上图中的结构统一训练,Lc 的训练会导致中性编码器失效。因此,需要先用 Lc 对中性编码器单独训练。总体的训练步骤如图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值