INTERSPEECH 2022——基于层级上下文语义信息的多尺度语音合成风格建模

news2024/11/17 17:40:04

本文由清华大学与虎牙信息科技有限公司、元象唯思控股(深圳)有限公司和香港中文大学合作。 人类语音的风格表达是多尺度的,不仅包括全局尺度的情感表达,还包括局部尺度的韵律表达。 而现有关于表现力语音合成的工作只考虑了单一尺度的说话风格。 针对该问题,本文提出一种基于不同层级上下文语义信息来建模 段落级别、句子级别和字级别 等不同尺度说话风格的方法,以进一步提升合成语音的表现力。 在中文有声小说数据集上,与只考虑单一尺度说话风格的基线模型相比,本文所提方法的用户偏好率最多可 提升38% 、主观意见得分最多可 提升0.377 

扫码阅读论文

https://arxiv.org/abs/2204.02743

合成样例试听

https://thuhcsi.github.io/interspeech2022-msc-tts/

01 背景动机

随着深度学习的发展,基于神经网络的语音合成模型已经可以合成具有中性说话风格的高质量语音。 然而,合成语音的表现力和真人录音相比仍然有明显差距。 这阻碍了语音合成技术在许多领域的应用,如有声读物、播客和语音助手。

基于文本预测说话风格,是实现表现力语音合成的主要方法之一。 有的工作根据当前句子的文本或者上下文预测句子级别的风格表征,实现了全局尺度的说话风格建模; 另一些研究进一步将风格建模粒度细化,对词级别或者音素级别韵律信息进行预测。

但是,上述工作只考虑了单一尺度的说话风格,这对完全建模人类语音的表现力是不够的。 一些研究已经揭示,人类语音的风格表达是多尺度的,其中全局尺度的风格通常被视为情感,而局部尺度的风格则更接近于韵律变化,这些不同尺度的风格共同产生了语音中丰富的表现力。

02 贡献

本文提出了一种多尺度说话风格建模方法,其核心是基于不同层级上下文语义信息来建模段落级别、句子级别和字级别等不同尺度的说话风格,以进一步提升合成语音的表现力。 该方法在FastSpeech 2的基础上增加了一个多尺度风格提取器和一个多尺度风格预测器。 多尺度风格提取器被用于从全局、句子和每个字对应的语音片段中提取三个不同层级的说话风格表征。 在提取器的基础上,多尺度风格预测器从上下文中提取不同层级的语义信息,然后以残差连接的方式依次预测这各个层级的说话风格表征。 特别地,为了减少不同层级说话风格表征之间的冗余,本文提出用语音表征的残差来表示不同层级的风格变化。 实验表明,本文提出的方法可以显著提升合成语音的自然度和表现力。

03 解决方案

本文提出的模型结构如上图所示,它主要包括: (1) 多尺度风格提取器 (Multi-scale Style Extractor); (2) 多尺度风格预测器 (Multi-scale Style Predictor); (3) 基于FastSpeech 2的声学模型 。 提取器将用于提取三个不同层级的说话风格表征,而预测器用于从上下文中预测这些风格表征。 声学模型在提取器或者预测器的帮助下合成当前句子的语音。

多尺度风格提取器

多尺度风格提取器由三个与不同层级的参考编码器和风格标记层组成。 本文考虑了与上下文文本范围对应的整段音频,并按照句子边界、字边界切分得到当前句子和句子内每个字对应的音频片段,不同层级的音频片段将通过对应层级的参考编码器获得相应的语音表征。 接下来,不同层级语音表征之间的残差将被视作风格变化,送入对应的风格标记层。 最后,不同层级风格标记层的输出,就是我们得到的当前句子不同层级的风格表征。

为了避免训练时多尺度风格的学习相互干扰,段落级别、句子级别和字级别的参考编码器和风格标记层将依次训练,当训练其中一个层级的模块时,其余层级的模块被冻结。 当多尺度风格提取器训练完毕后,我们将冻结多尺度风格提取器,以提取器提取的风格表征作为预测器的训练目标,使得预测器能更好的建立不同层级语音风格和文本语义之间的联系。

多尺度风格预测器

本文考虑了固定数量的上文句子、当前句和下文句子组成的上下文文本。 上下文文本先通过预训练的BERT模型获得字级别的语义表征序列,再作为多尺度风格预测器的输入。

多尺度风格预测器首先利用包含两层注意力网络的层级上下文编码器,对上下文的字间关系和句间关系进行建模,得到段落级别、句子级别和字级别的上下文语义表征。 接下来,模型将根据不同层级上下文语义表征预测对应层级的风格表征,以还原人类语音中多尺度的说话风格。 此外,考虑到更接近全局尺度的高层级语音风格会对低层级的语音风格产生影响,在预测过程我们基于残差连接从高层级到低层级依次对语音风格进行建模。 具体来说,高层级的风格首先被预测,然后被用作低层级风格预测器的条件输入,这种结构与风格提取器的残差策略是对称的。

04实验验证实验数据

本文 在一个内部的普通话有声读物数据集上进行训练和测试,该数据集包含了14500句约30小时的有声读物录音,这些录音是一位专业的男性说话人以丰富的表现力阅读小说时录制的 。

基线模型

我们实现了三种基于FastSpeech 2的模型作为基线模型,其细节如下:

FastSpeech 2: 开源实现的FastSpeech 2模型。

WSV*: 词级风格变(Word-level Style Variatios)模型。 为了进行公平的对比,我们用FastSpeech 2代替原始版本的Tacotron 2作为声学模型。 此外,还通过一个额外的双向GRU来考虑上下文信息。

HCE: 层级上下文编码器(Hierarchical Context Encoder)模型,它从上下文中预测句子级别的说话风格。

对比实验

为了说明本文所提方法的有效性,我们分别通过主观测评和客观测评对合成语音的自然度和表现力进行了比较,如下表和下图所示。 从实验结果可以看到,本文所提方法在多项测评中均优于基线模型。 与FastSpeech 2相比,另外三个模型(WSV*、HCE和我们提出的模型)都表现的更好,这表明考虑上下文信息建模说话风格确实有助于表现力语音合成。 相比只考虑局部说话风格建模的WSV*和只考虑全局说话风格建模的HCE,我们提出的模型取得了更好的性能,证明了对语音中不同尺度的说话风格进行建模的重要性。

 

消融实验

为了证明本文用到的几种技术的有效性,包括利用段落级别风格、多尺度框架和残差表示的风格表征,我们进行了三项消融实验。 首先忽视段落级别说话风格的建模,导致的CMOS为-0.428,进一步去掉多尺度框架(即只建模字级别的说话风格)的CMOS结果是-0.64。 这表明,建模句子级别和段落级别的说话风格对提升合成语音表现力有帮助。 此外,我们还发现,去除残差表示的风格表征的CMOS结果是-0.516,这表明它可以通过降低不同层级说话风格之间的冗余信息来有效地表示语音的风格变化。

样例分析

为了探索多尺度说话风格对合成语音表现力和自然度的影响,我们进行了样例分析。 我们用HCE和提出的模型合成了测试集中同一个语料,并且提供了该语料的真实语音作为参考。 实验结果如下图所示。 从结果可以看到,由HCE合成的语音包含更大的音高波动。 但由于缺乏局部尺度说话风格的建模,它缺乏控制合成语音局部风格特征的能力,导致与真实语音相比,音调的变化趋势有较大差异。 与HCE相比,我们提出的模型所合成的语音在细粒度的风格特征上更接近于真实语音,如语调的趋势和重音模式。

样例分析的结果表明,在多尺度说话风格的帮助下,我们的模型成功地学习了人类说话的风格变化,使合成语音拥有更接近于真实语音的韵律变化。

 

05结语

本文提出了一种多尺度说话风格的建模方法,从不同层级上下文语义信息中建模段落级别、句子级别和字级别等不同尺度说话风格,以提高语音合成的表现力。 此外,我们提出了一种基于残差表示的多尺度说话风格提取方法,有效降低了不同尺度风格表征之间的冗余信息。 实验结果表明,本文提出的方法通过从上下文中更准确的预测全局尺度和局部尺度的说话风格,显著提升了合成语音的表现力,使得合成语音拥有更接近于真实语音的韵律变化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/63455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 静态成员变量与静态成员函数

在C的类中&#xff0c;有静态成员变量和静态成员函数 #include <iostream> #include <string>using namespace std;class test { private:static int m_value; //定义类的静态成员变量public:static int getValue() //定义类的静态成员函数{return m_value;} };in…

Mybatis-Plus中的and和or用法

先看Mybatis-Plus官网中对这两个关键字用法的介绍 数据库文件&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1KzY32Jq0srDQU9m-a-YtBQ?pwdrsdg 提取码&#xff1a;rsdg 表数据&#xff1a; 比如我们想查age等于23并且school_id等于300的 sql语句为&#xff1a;select…

FL Studio 20音乐制作教程

FL Studio 20音乐制作教程 FL Studio 20 中的音乐制作 – 制作 3 首完整曲目 – 只需一天即可管理 FL Studio&#xff0c;音乐、混音和母带制作 课程英文名&#xff1a;FL Studio 20 Music Production In FL Studio for Mac & PC 此视频教程共20.0小时&#xff0c;中英双…

【C++11多线程】线程的创建、结束、传递参数

文章目录1.普通函数作为线程函数1.1 thread1.2 join()1.3 detach()1.4 joinable()2.函数对象作为线程函数3.lambda表达式作为线程函数4.类成员函数作为线程函数5.向线程函数传递参数1.普通函数作为线程函数 程序运行起来&#xff0c;生成一个进程&#xff0c;其中主线程从 mai…

毕业设计 基于单片机的地震探测器系统 - stm32 物联网 嵌入式

文章目录0 前言1 简介2 主要器件3 实现效果4 硬件设计3轴加速度计ADXL335ADXL335加速度计的工作原理电路图和连接5 部分核心代码最后0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕…

[附源码]计算机毕业设计基于Springboot物品捎带系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

拳头游戏教程

文章目录一、初谈游戏美术游戏美术师的作用视觉效果二、概念创造1.项目前期准备2.生成创意3.获取反馈三、角色设计从概念到3D模型3D建模的过程表面改变解剖学协作改变四、环境设计什么是环境美术创建的过程视觉层次可信度效率五、技术美术骨骼制作定制化工具移植开发流程shader…

模拟百度网盘

linux下基于多线程和tcp去实现了一个模拟网盘,实现cs之间的下载互传大文件,实现断点续传,秒传,利用md5进行校验,实时显示百分比 整体框架: 整个项目是在Linux环境下用C语言开发的,基于TCP协议,采用多线程的socket通信方式。 普通上传和秒传:客户端会先计算文件的MD…

(六)Vue之MVVC

文章目录MVVCVue中的MVVCVue代码中的MVVMVue学习目录 上一篇&#xff1a;&#xff08;五&#xff09;Vue之data与el的两种写法 MVVC MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。 MVC参考&#xff1a;MVC架构模式 MVVM 就是将其中的View 的状态和行为抽象…

YOLOv5实现车辆检测(含车辆检测数据集+训练代码)

YOLOv5实现车辆检测(含车辆检测数据集训练代码) 目录 YOLOv5实现车辆检测(含车辆检测数据集训练代码) 1. 前言 2. 车辆检测数据集说明 &#xff08;1&#xff09;车辆检测数据集 &#xff08;2&#xff09;自定义数据集 3. 基于YOLOv5的车辆检测模型训练 &#xff08;1…

【Python】-- Turtle绘图(使用代码画喜欢的图形!)

什么是Turtle&#xff1f; turtle库是Python语言中一个很流行的绘制图像的函数库&#xff0c;可以想象一个小乌龟在爬行&#xff0c;它的爬行轨迹就是绘制出来的图形&#xff0c;在一个横轴为x、纵轴为y的坐标系原点&#xff0c;(0,0)位置开始&#xff0c;它根据一组函数指令的…

罐头食品市场向好,APS车间排产软件保证食品制造企业有序生产

这些年&#xff0c;随着人们健康意识的不断提升&#xff0c;一些消费者认为&#xff0c;罐头的保质期长是因为添加了大量的防腐剂&#xff0c;但实际上这是一种错误的认知。罐头食品不需要添加防腐剂&#xff0c;而是采用热力杀菌和密封工艺&#xff0c;达到商业无菌和真空保存…

如何管好一个迭代?让数据帮你回答这些关键问题

对软件从业者来说&#xff0c;『敏捷开发』早已不是一个新名词。 相比瀑布模型&#xff0c;敏捷开发模型更强调演进式开发&#xff0c;快速灵活地应对变化&#xff0c;最终交付使客户满意的产品。这就要求研发团队内部、研发团队与产品乃至与业务、客户之间的密切沟通。当变化…

CW6163C车床的三维仿真及加工工艺

目录 1 传动轴分析 - 1 - 1.1 传动轴结构特点 - 1 - 1.2 传动轴的工艺分析 - 1 - 1.3 传动轴的技术要求 - 2 - 2 毛坯的选择 - 3 - 2.1 毛坯的类型 - 3 - 2.2 毛坯余量的确定 - 3 - 2.3 毛坯草图 - 4 - 3 工艺规程设计 - 5 - 3.1 定位基准的选择 - 5 - 3.1.1 粗基准的选择 - 5 …

div做一个简单的自适应布局

div做一个简单的自适应布局 效果 代码&#xff1a; <template><div class"main-page"><div></div><div></div><div></div><div></div><div></div></div> <style lang"le…

深入浅出——spring和AspectJ实现AOP操作

基本概念可看我之前的文章 AOP——基本概念、底层原理&#xff0c;这次直接来实现AOP的操作&#xff0c;在介绍操作之前&#xff0c;我们得先介绍AOP的各种术语 aop操作术语 1、连接点&#xff08;JoinPoint&#xff09;&#xff1a; 类里面哪些方法可以被增强&#xff0c;这…

小白必知必会的几个IP地址知识

小白必知必会的几个IP地址知识1.IP地址的定义2.IP地址的组成3.IP地址的分类4.广播地址5.IP多播6.子网掩码7.CIDR8.全局地址和私有地址1.IP地址的定义 IP地址(IPv4地址)由32位正整数来表示。TCP/IP通信要求将这样的IP地址分配给每一个参与通信的主机。IP地址在计算机内部以二进…

三问HPE,你真的想买下Nu­t­a­n­ix么?

【全球存储观察 | 热点关注】据多个媒体消息报道&#xff0c;慧与科技HPE在近几个月与超融合提供商Nutanix就收购进行了谈判。 在这之前的2017年2月&#xff0c;HPE以6.5亿美元收购了超融合全球老二SimpliVity&#xff0c;后来整合成了HPE重要的超融合产品线&#xff0c;并进一…

全栈测试工程师是怎么样练成的?

不久前&#xff0c;一位朋友让帮忙推荐个测试工程师&#xff0c;于是聊到了他们对测试工程师的诉求。 朋友公司是一家做教育软件的公司&#xff1a;Web端、App端产品都有涉及。 最初的诉求就是想找一位有1-2年相关产品测试经验的人即可。 但经过几轮沟通后&#xff0c;他的诉求…

.NET代码调优让程序占用内存减少

建了一个默认的ASP.NET Core Web API的项目,也就是那个WeatherForecast的默认项目模板,然后他把默认的生成5条数据的代码,改成了生成150000条数据,其他代码没变,如下: public IEnumerable<WeatherForecast> Get(){return Enumerable.Range(1, 150000).Select(index…