INTERSPEECH 2022|CALM: 基于对比学习的表现力语音合成跨模态说话风格建模【语音之家】

news/2024/4/19 22:57:54/文章来源:https://blog.csdn.net/weixin_48827824/article/details/128098192

本文由清华大学与腾讯科技有限公司和香港中文大学合作,并 在腾讯公司落地应用 。 说话风格建模对于表现力语音合成具有重要作用。 现有基于参考音频提取风格表征的方法通常利用文本的语义相似度进行参考音频选择,忽略了语义信息和说话风格的差异性。 本文考虑利用天然成对的文本和语音数据互相作为监督,设计了一种 基于 对比学习 的根据文本选取多个参考音频的 风格建模方法CALM , 从文本中捕捉到真正与说话风格相关的特征 。 与基线方法相比, 在中文情感数据集上,所提方法预测的 风格嵌入相似度提升25.3% ,主观意见得分从2.804提升至3.812, 偏好率提升56.7% ; 在英文有声书数据集上,所提方法预测的 风格嵌入相似度提升11.5% ,主观意见得分从3.160提升至3.625, 偏好率提升13.3% 

扫码阅读论文

https://www.isca-speech.org/archive/interspeech_2022/meng22c_interspeech.html

合成样例试听

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

01 背景动机

为了进一步提升语音合成的风格表现力,目前的语音合成系统通常会利用文本预测或者参考音频的方式来建模说话风格。 然而,由于说话风格是由很多声学成分耦合在一起形成的表征,仅从文本信息预测比较困难,导致预测准确度较低; 并且对于同一句文本,可能存在多种合适的说话风格,因此也可能面临一对多的问题,导致预测的说话风格过平滑。

现有的从参考音频提取说话风格的方法,或使用说话人平均的参考音频,或使用语义信息检索参考音频等方法。 固定参考音频或者使用说话人平均的参考音频,都会忽略不同文本所需要的表达方式不同的需求。 利用语义信息检索参考音频时,忽略了语义信息和说话风格的差异性: 语义信息中包含有很多和说话风格无关的信息,例如文本内容的主题等。 同时,由于使用参考音频的方法在训练阶段通常会使用真实(ground-truth)的语音作为参考音频,而推理阶段使用其他参考音频,也会面临训练推理不匹配的问题,导致合成语音中较低的内容质量。

02 贡献

本文设计了一种通过选取多个参考音频对语音合成中的说话风格进行建模的方法,其核心是从文本内容获得合适的文本嵌入表征用于检索参考音频。

本文提出的 基于对比学习的声学-语言学模块 CALM ),利用对比学习联合训练两个编码器: 风格编码器(Style Encoder)和语言编码器(Linguistic Encoder),对提取出的文本表征和风格表征进行跨模态的优化,可以更好的对来自文本信息的说话风格进行建模,以及提取出更加和风格相关的文本表征。

在两个数据集上的客观和主观评价指标都表明,本文提出方法能够提升合成的语音说话风格与输入文本的匹配度。 最后,我们分析了参考音频个数对于说话风格的影响,并综合考虑性能与计算复杂度选择了合适的参考音频个数。

03 解决方案

本文提出方法的训练过程如上图1所示,图中蓝色框包围的为 基于对比学习的声学-语言学模块 CALM ,主要包含两个编码器: 风格编码器 (Style Encoder)和 语言编码器 (Linguistic Encoder)。 语音合成模型整体基于Fastspeech 2 框架 ,CALM模块负责进行风格建模。

基于对比学习的声学-语言学模块

(CALM)

我们利用CALM中的语言编码器从文本中提取与风格相关的文本特征,利用风格编码器从语音中提取说话风格嵌入。 CALM将说话风格和文本内容映射到同一嵌入空间中,并且利用对比学习来学习它们的表征。 具体地,CALM会强制那些具有相似风格表征的文本具有更相近的文本表征; 相反,不同说话风格的文本表征则尽可能分散在嵌入空间中。

正负样本的选择

为了进行对比学习的训练,首先需要进行正样本和负样本的选择。 我们先在训练集中训练一个风格编码器,然后利用训练后的风格编码器对每个训练数据集中的语音进行风格嵌入提取,这个风格嵌入将被用于衡量不同样本之间的风格相似度。 如图1左侧所示,对于训练数据集中的每一对(语音,文本),我们将训练集中的所有其他(语音,文本)按照与当前语音的风格嵌入余弦相似度降序排序。 最靠前的K对样本作为当前样本的正样本,随机选择K对排在后1/2的样本作为当前样本的负样本。

CALM训练

如图1中蓝框包围的部分所示,给出2K对(语音,文本)作为输入,CALM会预测一个 2K × 2K 的矩阵 M' ,其中第(i,j)个元素表示第i个文本嵌入与第j条语音的风格嵌入的余弦相似度。 Ground-truth矩阵M则只包含1或-1两个值: 当文本嵌入和风格嵌入都来源于正样本,或来源于同一对负样本时,矩阵值为1; 其他情况则为-1。 通过最小化预测矩阵M'和真实矩阵M之间的均方误差(MSE)来对模型进行优化。

通过这些设置,CALM可以通过联合训练一个风格编码器和一个语言编码器来学习一个多模态嵌入空间,最大化正样本之间嵌入的余弦相似度,最小化负样本之间嵌入的余弦相似度,使得语言编码器能够从文本中提取出与说话风格 最 相关的表征。

04 实验验证

实验数据

本文使用了两个数据集来验证本文提出方法的有效性。 第一个是单说话人的中文情感数据集,包含六种情感(喜、怒、悲、厌、惊、惧)每种1500句,共9000句。 第二个是英文的Blizzard-2013有声书数据集中的四个故事,共9741句。

基线模型

我们复现了Gong等人提出的Multiple Reference TTS (MRTTS)作为基线方法。 MRTTS在训练和推理阶段都使用语义相似度来检索多个参考音频以得到风格表征。  

对比实验

为验证本文所提出方法的有效性,我们分别通过客观评测和主观评测对各个模型进行比较。 其中,客观评测在中文情感数据集上以被选择的参考音频的情感类别准确率作为评测标准,在中英两个数据集上都以预测的风格嵌入与真实风格嵌入余弦相似度作为评测标准。 主观评测对合成语音的说话风格和输入文本的匹配程度采用ABX测试和MOS打分。 表1展示了客观实验结果。 表2和表3展示了主观实验结果。

客观评价指标和主观评价指标都表明,我们的模型可以生成比基线更适合输入文本的风格的音频。

参考音频个数N的实验

我们在中文情感数据集上观察了参考音频个数N对模型推理时性能的影响。 如图3所示,随着N的增大,预测的风格嵌入与真实风格嵌入的余弦相似度先增大后减小。 转折点出现在N = 1500左右。 在训练集中,每种情感都有1450句。 因此,CALM中的语言编码器提取了与说话风格更相关的文本特征。 说话风格的余弦相似度随着N增加而提高,但同时计算复杂度也随着N增加而提高。 综合考虑到性能和计算复杂度之间的权衡,我们选择N为20,此时相似度的提高开始放缓。

05 结语

本文设计了一种选取多个参考音频对语音合成中的说话风格进行建模的方法,基于对比学习,联合训练两个编码器: 风格编码器和语言编码器,以生成跨模态的表征。 这个跨模态表征在推理阶段会用于检索到风格适合当前输入文本的多个参考音频,多个参考音频的风格嵌入的加权和会作为最终的风格表征。 客观实验表明,在中英两个数据集上,相比基线方法,本文所提出的方法可以提升所预测的风格嵌入与真实风格嵌入之间的余弦相似度。 主观实验表明,在中英两个数据集上,相比基线方法,基于本文所提方法合成的语音说话风格与输入文本更加匹配。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大厂都在用MyBatis,跳槽的时候MyBatis更是面试必问的内容,那你对于MyBatis又掌握了多少呢?这份MyBatis源码解析值得拥有!

MyBatis作为一个流行的半自动ORM框架,里面融合了许多优秀的设计理念,分析其源码骨架能够帮你建立良好的项目设计经验。由于其比较复杂,我会分成几篇来讲,一起踏上征服的旅程吧! 首先把MyBatis源码包导入到idea&#x…

python+django汽车租赁系统pycharm项目

目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 4 2.3 B/S结构简介 4 2.4MySQL数据库 5 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可行性 6 3.2系统现状分析 6 3.3功能需求分析 7 …

Apollo 应用与源码分析:Monitor监控-软件监控-时间延迟监控

目录 代码 分析 RunOnce 函数分析 UpdateState函数分析 发送时间延迟报告函数分析 备注 代码 class LatencyMonitor : public RecurrentRunner {public:LatencyMonitor();void RunOnce(const double current_time) override;bool GetFrequency(const std::string& ch…

Git---idea中git的基本操作

idea中使用git仓库 idea中配置git仓库: 首先idea配置git仓库的位置 配置完成之后,有两种创建仓库的方式 从本地配置git仓库: idea本身设置好的,直接下一步就好 从远程克隆仓库: 如果远程仓库没有的话可以绑定完…

CDMP考试时间与报名方式

CDMP“数据管理专业人士认证”证书国际通用,行业认可度极高,是一项涵盖学历教育、工作经验和专业知识考试在内的综合资格认证,也是 目前全球唯一数据管理方面权威性认证 。CDMP考试时间是什么时候?怎样报名?今天小编来…

从ChargePoint到能链智电,充电服务商的价值创新

近日,吉林长春出租车雨雪之中排队换电艰难的视频引起热议。 新能源汽车充换电困难,一方面说明电池在寒冷天气下的性能有优化空间,另一方面也反映出国内新能源汽车配套基础设施仍然存在较大需求缺口。 充电基础设施建设对新能源汽车推广意义…

使用Spark的foreach算子及UDTF函数实现MySQL数据的一对多【Java】

使用Spark的foreach算子及UDTF函数实现MySQL数据的一对多【Java】 背景 我们的数仓项目中遇到了这样一种场景,脱敏后内容大致如下: col1col2time1time2a1b12022-01-01 00:00:002022-01-05 00:00:00a2b22022-01-28 00:00:002022-02-03 00:00:00a3b3202…

设计模式——模板方法模式

模板方法模式 一、基本思想 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。 二、应用场景 算法的整体步骤很固定,但其中个别部分易变时,这时候…

数据结构学习:Trie树

Trie一、概念二、代码实现三、Tire树的时间复杂度和空间复杂度四、Tire树的优势一、概念 Trie树,也叫"字典树",顾名思义,是一种专门处理字符串匹配的树形结构,用来解决在一组字符串集合中快速找到某个字符串类似于这种字符串匹配问题,可以使用RF暴力匹配、RK哈希匹配…

数字孪生技术栈的应用场景的优点

技术栈是一个IT术语,本意是指某项工作需要掌握的一系列技能组合的统称。那么对于如今炙手可热的数字孪生技术而言,数字孪生技术栈都会包括哪些底层技能?它又是如何构成和运行的呢? 北京智汇云舟科技有限公司成立于2012年&#xff…

【Rust日报】2022-11-28 使用 Rust 编写解释型语言

使用 Rust 编写解释型语言这是一本关于使用 Rust 来编写解释型语言的指导书.从理论基础, 内存分配, 真实实践, GC 等方面循序渐进的指导如何使用 Rust 来编写解释型语言.原文链接: https://rust-hosted-langs.github.io/book/introduction.htmlRust的所有权和生命周期这是一篇从…

黄佳《零基础学机器学习》chap2笔记

黄佳 《零基础学机器学习》 chap2笔记 第2课 数学和Python基础知识 文章目录黄佳 《零基础学机器学习》 chap2笔记第2课 数学和Python基础知识2.1 函数描述了事物间的关系机器学习中常用的一些函数2.2 捕捉函数的变化趋势2.3 梯度下降2.4 机器学习的数据结构--张量2.4.1 张量的…

面板模型进行熵值法分析

背景说明 熵值法(熵权法)是一种研究指标权重的研究方法,比如有5个指标,分别为指标1到指标5,并且有很多样本(比如100个样本),即100行*5列数据,此时研究该5个指标的权重分…

WSL2 请启用虚拟机平台 Windows 功能并确保在 BIOS 中启用虚拟化

bcdedit /set hypervisorlaunchtype autoC:\WINDOWS\system32>bcdedit /set hypervisorlaunchtype auto 操作成功完成。

使用nohup命令 或者 代码创建守护进程

目录 一、什么是守护进程? 1、守护进程的概念 2、为什么需要守护进程 二、理解进程组、会话、终端 三、创建守护进程的两种方式 1、nohup命令创建守护进程 2、代码创建守护进程 (1) 创建子进程,父进程退出 (2) 子进程创建新的会话 (3) 更改守护…

车载电子专用DC-DC方案PL5501

PL5501是一个同步4开关Buck-Boost能够调节输出电压的控制器高于或低于输入电压。PL5501运作输入电压范围从3.6 V到32 V (36 V Maximum)以支持各种应用程序。PL5501 buck采用恒ON时间控制,上位机采用升压和升压两种操作方式负荷和线路调节。开关频率可以设置为150kHz…

链式二叉树

链式二叉树一,相关函数接口实现1,前序遍历2,中序遍历3,后序遍历4,节点个数5,叶子结点个数6,树的高度7,第K层结点个数8,查找值为X的结点9,通过前序遍历数组构建…

关于虚拟机中IPI中断的思考

前言 感谢intel的vt-x技术,让虚拟机大部分指令可以直接运行在CPU中,只有少部分敏感指令需要有VMM来模拟执行。其中,每个CPU的LAPIC接收到的中断是虚拟化的开销一个大头。 LAPIC接收到的中断分为外部中断,内部中断,IP…

【SQL Server + MySQL三】数据库设计【ER模型+UML模型+范式】 + 数据库安全性

极其感动!!!当时学数据库的时候,没白学!! 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固真的是语雀分享要花钱,要不一定把笔记给贴出来(;༎ຶД༎ຶ) ,除…

第2-4-8章 规则引擎Drools实战(1)-个人所得税计算器

文章目录9. Drools实战9.1 个人所得税计算器9.1.1 名词解释9.1.2 计算规则9.1.2.1 新税制主要有哪些变化?9.1.2.2 资较高人员本次个税较少,可能到年底扣税增加?9.1.2.3 关于年度汇算清缴9.1.2.4 个人所得税预扣率表(居民个人工资、…