从客观角度来说,情感信息难以被标记和量化,大多数方法不能准确衡量同一类情感语音之间的强弱差异,多数数据集只有根据情绪分类的粗粒度标签,直接利用标签信息参与训练往往会导致合成情感语音的风格较为平均,表现力相对较差
这篇文章的目的就是在于增强文本情感的蕴含程度,文章的代码还提供了ESD数据外文语音的强度信息,便于训练。

Abstract

近年来,情感语音合成技术取得了令人瞩目的成绩。利用情感属性排序函数得到的情感强度描述,可以灵活地控制合成语音的情感强度。
然而,针对特定数据训练的排序函数泛化能力较差,限制了其对更实际情况的适用性。在本文中,我们提出了一个基于深度学习的情绪强度评估网络,用于情绪强度预测。
我们的模型符合一个多任务学习框架,其结构包括一个声学编码器,一个强度预测器和一个辅助情绪预测器。采用数据增强策略提高模型的泛化能力。实验表明,所提出的StrengthNet所预测的情绪强度与可见和不可见的数据集真实值高度相关。

Introduction

情感语音合成(Emotional speech synthesis, ESS),如情感文本到语音、情感语音转换等,旨在产生具有期望情感类别的表达性语音。在话语中控制情绪的强度是情绪渲染的关键。一般情况下,可以使用预定义的强度描述符灵活地控制合成语音的情感强度。

最简单的情绪强度控制方法是将情绪表示向量加权为一个标量[1],该标量的可解释性较差。为了得到一个有意义的强度描述符,一些研究[2,3]试图遵循“相对属性”[4],基于<中性、情绪性>言语对量化情绪强度。排名[4]的属性学习了在某一特定属性上有显著差异的两个样本之间的差异,这在计算机视觉中得到了广泛的研究[5,6]。
在语音处理中,Zhu等[2]提出,从配对的语音特征中学习一个情感属性排序函数R(·),然后用一个可学习的权重向量对情感特征进行加权,返回一个加权和i,表示某一特定情感言语的情感强度。
Lei等人[3]将话语级情感属性排序函数进一步扩展到音素级,得到一个细粒度的排序函数。通过这种方式,我们可以获得一个特定数据集的情感语言的有意义的强度得分,这与人类的感知有关。
我们注意到,对于特定数据,经过训练的排序函数R(·)泛化能力较差。换句话说,基于特定数据训练的排名函数R(·)无法计算出看不见的或我们的领域的语音的准确强度得分。为了匹配新数据,我们需要对新数据中提取的<中性,情绪化的>配对样本重新训练一个新的排序函数。我们还注意到,如果没有并行样本,新数据的排序函数的学习是不可能的。以上问题限制了言语情绪强度评估对于更现实案例的适用性。最近,深度学习在许多不同的应用中显示了其强大的学习映射函数的能力[7,8]。基于深度学习的网络可以学习复杂的非线性映射关系,并在大量模型参数[9]的支持下表现出良好的泛化能力。

StrengthNet由基于卷积神经网络(CNN)的声学编码器,声学编码器从输入的mel-spectrum中提取high-level特征。
基于双向长短时记忆(BiLSTM)的强度预测器,强度预测器旨在预测输入光谱的强度得分。
基于BiLSTM的辅助情绪预测器组成,情绪预测器被用来预测情绪类别。
我们引入了多个情感语音数据集,并采用了数据增强策略。
本文的主要贡献如下:
1)提出了一种基于深度学习的语音情感强度评估模型,称为StrengthNet;
2)实验表明,所提出的StrengthNet预测的情绪强度与见言语和看言语的地面真值分数高度相关。
3)这些结果证明了,所提出StrengthNet可以作为一个计算评估器来评估情绪语音合成的情绪强度。
据我们所知,这是第一个基于深度学习的情绪强度评估模型,用于情绪语音合成。
基于深度学习的情感强度评估需求

在目前情绪语音合成阶段,将ESS模型与其他相关模型(如语音情绪识别[10])联合训练,可以实现可控的ESS[1]或增强情绪表现力的[11]。然而,现有的联合训练模型只考虑情绪类别,而忽略了情绪强度。传统的基于排序函数的情绪强度预测方法仅在数据预处理阶段进行[2,3],无法在ESS模型的训练阶段进行深度整合。因此,我们希望获得一个基于深度学习的情绪预测模型,可以作为情绪语音合成的前端模块(aims for可控)或后端模块(作为感知损失[12]等),以提高情绪表达性能。
我们注意到有一些尝试试图从基于神经网络的模型中提取情绪强度得分来改进ESS模型。然而,非监督方法提取的帧级强度分数仍然缺乏可解释性。

STRENGTHNET

3.1.1 声学编码器
以声学特征序列,即本工作中的mel-spectrum为输入,提取high-level特征表示。声学编码器由12个卷积层组成。通过叠加更多的卷积层来扩大CNN的接收域的策略已经被广泛应用于时间序列数据建模,并产生了令人满意的性能[7]。给定一个输入mel-spectrum序列X,基于CNN的声学编码器的目标是提取一个高阶特征H,然后将高阶特征H输入两个预测器,分别预测情绪强度得分和情绪类别

3.1.2 强度预测器
强度预测器然后读取高级特征表示来预测情绪强度得分。最近的研究已经证实了结合CNN和BiLSTM对[7]分类和识别[12]任务的有效性。强度预测器由一个BiLSTM层、两个FC层和一个平均池化层组成。BiLSTM层以高级特征H为输入,输出每个时间步的隐藏状态S。然后,我们使用两个FC层将帧级隐藏状态S回归到一个帧级标量αf,(L_(f-str))以表示每帧的强度分数。最后,对帧级得分进行平均池化层,得到话语级强度得分α。(L_(utter-str))

为了监督强度预测器的训练,我们在平均池化层后面定义了一个平均绝对误差(MAE)损失L_(utter-str),以迫使预测的话语级强度得分α接近地面真值。
为了提高StrengthNet的收敛性,我们进一步在最后一层FC层后面定义另一个MAE损耗[7] L_(f-str),称为帧级约束,以最小化帧级预测强度评分αf与地面真实强度之间的差异。

3.1.3 情感预测器
利用辅助情绪预测器读取编码器输出,对情绪类别进行预测。与强度预测器相似,情绪预测器也由BiLSTM层和softmax层组成。BiLSTM将高级特征H的时间信息总结为另一种潜在状态ˆS。最后,softmax层将潜在状态ˆS转换为所有情感类别的输出概率。据此,我们可以得到预测的情绪类别θ。我们定义了一个“分类交叉熵”损失L_cat

3.2 数据增强
具体来说,我们假设D1 D2…, DK表示K个情感语音数据集。我们为所有数据集训练情感属性排名函数R(·),因为它们都提供了中立的、情感的、成对的语言样本。

为此,我们首先构建两个集合,分别为O和S,分别包含有序和相似的配对样本。具体来说,

对于每个数据集Dk (k∈[1,k]),从中性言语中抽取一个样本,从情感言语中抽取另一个样本,构建有序集o。我们期望情感样本的情感强度高于中性样本。
对于相似集S,我们从中性言语(或情绪性言语)中选取两个样本。我们假设来自同一领域的两个样本(中性或情绪性)具有相似的情绪强度。

最后,我们按照[2]构建支持向量机[16],学习情绪强度属性的排序函数R(·)。然后,我们提取所有数据集的强度分数作为地面真实强度标量,作为网络的训练目标。注意,强度评分被规范化为(0,1),其中1为最高强度。所有数据集的melspectrum特征都被视为输入。

增强后的数据将代表一个更全面的集,从而最小化训练集和验证集之间的距离,以及任何未来的测试集。

3.3 Run-time Inference

在推理过程中,网络以任何情绪言语提取的mel-spectrum作为输入特征,预测其情绪强度得分和情绪类别,此外,我们的网络可以直接用于预测新的情绪言语数据集的情绪强度,而无需再训练,我们认为这是显著的
ESD + SAVEE + RAVDESS

对于每个数据集,我们选取快乐、悲伤、愤怒、惊讶和中性5个情绪类,构建<中性、情感>配对言语,训练排名函数。在“网络”的训练过程中,我们进行了4个情绪班的研究,分别是快乐、悲伤、愤怒和惊讶。
我们提取帧大小为50ms、帧移12.5ms的80通道mel-spectrum特征,进一步归一化为零均值和单位方差,作为模型输入。所有数据集的话语水平强度得分都是使用其排名函数获得的,并作为地面真实值得分,或作为网络络中强度预测器的训练目标。我们利用开放微笑[20]对每个话语提取384维特征,进行排序功能训练。在计算帧级MAE时,对语音中所有帧使用地面真强度评分。“网络”的情绪预测器旨在预测四种情绪类别,包括快乐、悲伤、愤怒和惊讶。
声学编码器由4个Conv2D块组成,滤波器大小分别为[16,32,64,128]。每个块包括3个Conv2D层,其步长形状分别为{[1,1],[1,1],[1,3]}。所有层共享相同的内核大小[3 × 3]和ReLU激活函数。对于两个预测因子中的BiLSTM层,每个方向包含128个单元。
所有的语音样本被重新采样到16khz。我们使用Adam优化器训练模型,学习率为0.0001,β1 = 0.9, β2 = 0.98。我们将批大小设置为64。辍学率设置为0.3。对于每个数据集,我们按8:1:1的比例将语音数据划分为训练集、验证集和测试集。我们基于具有30个epoch耐心的验证集的MAE应用early stopping

4.3 实验结果
4.3.1 架构对比实验结果

1)网络(拟议),是我们提出的模型,由声编码器、力量预测器和辅助情绪预测器组成;
2)网络络w/o Lcat,即提出的无辅助情绪预测器模型;
3)网络w/o Lf str,即在强度预测器中没有框架强度约束项Lf str的模型

图3显示了这些系统在话语水平上的整体表现。利用实验数据报告情绪强度预测的MAE值和情绪类别预测的准确性。提出的网络优于强度w/o Lcat和强度w/o Lf str,并获得最佳性能,这归因于多任务和框架约束策略。具体来说,我们发现,网络达到最低的MAE分数为0.072,最高的情绪识别准确率(SER Acc)为0.874。综上所述,多任务学习与框架约束相结合可以有效地学习输入melc -spectrum中的情绪强度线索,并进行类别预测

4.3.2 数据增强实验

我们在ESD、ESD+RAVDESS、ESD+SAVEE三种数据集设置上训练。
分别用“esd”、“esd +RAVDESS”和“esd +SAVEE”来代表三个训练过的模型。R-RAVDESS(·)、R-SAVEE(·)、R-ESD(·)分别为三个数据集训练的三个排序函数。我们采用所有训练好的排序函数和模型,利用RAVDESS或SAVEE的未见测试数据预测情绪强度得分,并将MAE结果报告于表1。

如表1所示,我们观察到我们的网络在RAVDESS和SVAEE数据集上的MAE低于排名函数。更重要的是,在“StrengthNetESD+RAVDESS”和“StrengthNetESD+SAVEE”的情况下,MAE在SVAEE和RAVDESS上分别达到了最低的0.173和0.102。从结果可以看出,我们提出的强度方法可以通过数据增强策略降低对不可见数据的总体MAE,比属性排序函数具有更好的模型泛化性能。

总结

本文提出了一种基于深度学习的语音情感强度评估模型,用于情感语音合成任务,简称“力量网”。实验结果表明,在多任务框架和框架约束策略下,本算法能够实现对情感强度的准确预测。在数据增强策略的帮助下,模型泛化效果也很好。据我们所知,所提出的力量网是第一个端到端言语情绪强度评估模型。在未来的工作中,我们打算将我们的力量网集成为情感语音合成模型的前端或后端,以增强输出情感语音的情感表现力。

原文代码 LINK

读《STRENGTHNET: DEEP LEARNING-BASED EMOTION STRENGTH ASSESSMENT FOR EMOTIONAL SPEECH SYNTHESIS》相关推荐

  1. 读《Android 安全架构深究》

    Android 安全架构深究 安全是一个非常立体而丰富得概念.在不同的场景下,安全有着不同的含义. 比如对于网络传输,安全指的是传输的数据不会被其他人看到.篡改.伪造及仿冒,传输的数据不会遭到破坏,数 ...

  2. 《最强Android书 架构大剖析》读书笔记

    文章目录 第一章 Android 体系结构的变革之路 1.2 Android系统源码目录 与Linux的异同 Android的框架 原生二进制可执行文件 Android 的原生库 核心(core)库 ...

  3. Android Jetpack架构组件之 Room(使用、源码篇)

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...

  4. 抖音、美团等大厂千万级用户的Android客户端架构演进之路—

    在移动开发中,对开发者来说不同的人具有不同的能力.就像读一本书一样,一千个读者,有一千个哈姆雷特.但不管怎样,只要你是个软件开发者你就必须学习windows或Linux等操作系统的运行原理.Andro ...

  5. Android 图形架构之一 ——概述

    前言 本系列的文章,可以让你明白,一个View最终是如何显示到屏幕上的,从应用层到硬件抽象层.对分析app的卡顿,掉帧等 有很大帮助. 由于图形架构的涉及到的代码量很大,所以本篇先来个总体的概述,有个 ...

  6. Android display架构分析-SW架构分析(1-8)

    参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...

  7. 高通Android display架构分析

    目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...

  8. [Android] Android MVP 架构下 最简单的 代码实现

    Android  MVP 架构下  最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...

  9. Android系统架构-[Android取经之路]

    摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...

  10. Android系统架构图及简单的系统架构介绍

    2019独角兽企业重金招聘Python工程师标准>>> ndroid的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层. ...

最新文章

  1. Spring Boot 单元测试二三事
  2. 线程安全退出 VS PostMessage,SendMessage的区别
  3. 聊一聊mongodb中的 explain 和 hint
  4. 如何用 GitHub Actions 写出高质量的 Python代码?
  5. Detailed Full-Body Reconstructions of Moving People from Monocular RGB-D Sequences
  6. Python+Django数据库配置及使用——执行原始SQL并返回模型实例
  7. linux文件偏移函数实验报告,Linux实验报告二.doc
  8. 对M/M/N排队论模型的matlab代码实现
  9. python编入小学教材_之前纳入小学教材的Python,现在真能学会了!
  10. 这么黄的教程,我看了2小时就关了!
  11. Java聊天室系统(三):图形界面窗口展示
  12. 请问苹果x是如何建文件夹_苹果x怎么创建文件夹相关阅读-苹果x怎么创建文件夹文章阅读-123文学网...
  13. 全球及中国丝蛋白行业研究及十四五规划分析报告
  14. 2023 IAPP影视解析源码
  15. Python爬虫实战,简单的爬虫案例,以及爬取百度贴吧网页原码和360翻译
  16. 搜索技术——遗传算法
  17. 信息安全意识-密码安全
  18. 2019-11-29-git-需要知道的1000个问题
  19. 编程小知识:文件扩展名的作用是什么?通俗易懂的文件扩展名详解
  20. Mac Win7虚拟机

热门文章

  1. 快慢指针判断链表中是否存在环以及查找环的起始位置
  2. OpenEuler安装docker
  3. SpringMvc文件上传和下载
  4. 基于Bootstrap的超酷jQuery开关按钮插件
  5. Google Deepmind的自杀开关研究或缓解人工智能恐慌
  6. matlab中som结果,som 运行结果怎么看啊
  7. c语言写一个会动的爱心图片,一键生成心形bmp图片
  8. 怎样处理 Safari 移动端对图片资源的限制
  9. 现在手机千篇一律,下一个乔布斯的传奇在哪?
  10. 曾经写的俄罗斯方块源码 2021-06-13