PortaSpeech CLAPSpeech: 提升TTS的韵律自然度音质

2023-10-28 15:20

本文主要是介绍PortaSpeech CLAPSpeech: 提升TTS的韵律自然度音质,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

会议:2021 NIPS
作者:ren yi,Jinglin Liu
单位:浙大

文章目录

  • PortaSpeech
    • abstract
    • intro
    • method
      • Linguistic Encoder with Mixture Alignment
      • Variational Generator with Enhanced Prior
      • Flow-based Post-Net
      • Training and Inference
    • Experiments
  • CLAPSpeech
    • abstract
    • method
    • experiment

PortaSpeech

abstract

  • 非自回归TTS——
    • 基于VAE:善于建模长时语义特征(比如韵律),但是生成结果模糊、不自然;
    • normalizing flow:善于建模freq-bin细节,但是参数量少的时候表现不好。
  • motivation:使用少的数据量,生成情感、韵律变化丰富的语音。使用VAE+F
    (1)建模韵律和mel谱细节, we adopt a lightweight VAE with an enhanced prior followed by a flow-based post-net with strong conditional inputs as the main architecture.
    (2)为了压缩模型参数:introduce the grouped parameter sharing mechanism to the affine coupling layers in the post-net.
    (3)为了改善语音的表现力,减少对text和语音精确对齐的依赖:引入linguistic encoder,进行hard word-level和soft phoneme-level的对齐,也精确的提取了字级别的情感;
  • 结果:相比于FastSpeech2,4x模型压缩,3x运行内存减少,

intro

  • VAE可以增强合成语音的表现力,但是生成谱over-smooth
  • flow的应用:Flow-TTS 将fastspeech中的decoder用glow替代,并且用一个单独的网络学习对齐;Glow-TTS引入normalize flow+动态规划单向对齐,实现快速、多样、可控的合成。这种方法生成谱的质量比较高,但是实验发现需要的数据量比较大,如果数据量少,生成质量明显下降。

method

在这里插入图片描述
total_loss = mel_loss + kl_loss + MLE loss + dur_loss + align_loss

Linguistic Encoder with Mixture Alignment

在这里插入图片描述

  • FastSpeech使用对齐工具获得 phoneme-level hard alignment,但是由于一些音素边界天然的模糊,因此phn-level的对齐结果会有一定的误差,然后这些误差会影响duration predictor,进而传导到生成语音的韵律。因此本文使用soft alignment in phoneme level 以及hard alignment in word level.
  • 音素编码得到隐变量 H p H_p Hp,根据分字边界对同一个字的音素进行average pooling,得到字级别的隐变量 H w H_w Hw,根据duration predictor预测的word duration对word embedding进行扩帧。duration predictor是预测每个phn的时长,然后将属于一个word的phn duration累加。
  • H w H_w Hw作为Q, H p H_p Hp作为key,value, 寻找对齐的word-to-phn attention, H p H_p Hp H w H_w Hw送入attention之前都加上word的相对位置编码信息;以找到一个单向的、对角对齐。
  • 优点:避免phn对齐不准确的失误,同时保留了细粒度,soft,close-to-diagonal text-to-spectrogram alignment。

Variational Generator with Enhanced Prior

在这里插入图片描述

  • 本模块本质是利用文本作为条件监督,从mel中提取出韵律相关的表征
    -使用轻量级的结构实现有表现力、多样的语音生成,因此采用VAE结构作为mel-spec generator。传统的VAE使用高斯作为先验,给后验分布很强的约束,从而限制了decoder的多样性和生成能力。为了增强先验分布,引入small volume-preserving normalizing flow,用一系列K可逆映射将简单的高斯分布转换为复杂的分布,此变换后的复杂分布作为VAE先验。
  • 训练阶段:
    • mel+txt condition输入encoder,得到 μ , σ \mu,\sigma μσ分布,重采样得到 z z z,送入decoder(此处起名不太合适),应该就是几层非线性变换。
    • 同时为了训练VP-Flow, μ q \mu_q μq, σ q \sigma_q σq 通过VP-Flow变成标准正态分布,并求KL loss;
  • inference阶段,没有ref-mel,VP-Flow把一个标准正态分布的样本重采样为 z p z_p zp,然后送给decoder。
  • 说明:送给decoder的 z p z_p zp不再是标准高斯的重采样,训练阶段是encoder输出重采样,inference阶段是标准高斯经过flow变换成复杂分布之后的采样。

Flow-based Post-Net

在这里插入图片描述

  • Flow可以生成更真实的mel-spec,但是模型参数量很大。本文的flow作为postnet,不需要关注文本和韵律信息,只需要关注mel-spec的细节。并且引入参数共享的想法,降低对flow建模的参数要求。
  • 训练阶段:postnet将真实的mel-spec映射到latent prior distribution (isotropic multivariate Gaussian,各向同性多元高斯),并计算对数似然估计;
  • 预测阶段:从latent prior distribution中采样,反向送入postnet,得到高保真的mel-spec
  • postnet的条件输入有文本&韵律的信息,所以网络只关注在mel-spec细节的建模;降低了模型建模难度(参数量不需要那么大);为了进一步减少参数量,在affine coupling layers中引入grouped parameter sharing mechanism
  • 参数共享的想法借鉴了Nanoflow的文章,做出改进:
    • 移除flow indication embedding以简化模型:不同flow step的unshared conditional projection layer可以帮助模型确定当前step的位置;
    • 一个group中flow steps的参数共享,而不是所有flow step的参数共享:不需要改变模型结构就可以更好的调整可训练的参数。

Training and Inference

training stage

  • duration loss L d u r = M S E 【 l o g ( g t − w o r d − d u r ) , l o g ( p r e d − w o r d − d u r ) 】 L_{dur} = MSE【log(gt-word-dur), log(pred-word-dur)】 Ldur=MSElog(gtworddur)log(predworddur)
  • VAE的重建loss L V G = L 【 g t − m e l , p r e d − m e l 】 L_{VG}=L【gt-mel, pred-mel】 LVG=Lgtmelpredmel
  • VAE的kl loss L K L L_{KL} LKL
  • postnet的 L P N L_{PN} LPN negative log-likelihood

inference stage

  • text seq(phn+word 边界)——【linguistic encoder】预测word duration + 使用mix align做hidden state扩帧—— linguistic emb H L H_L HL——【VAE】 根据vae-encoder输出采样+ H L H_L HL,送给vae-decoder生成粗粒度的mel-spec M c M_c Mc——【postnet】根据 H L H_L HL和重采样的分布,生成细粒度的mel-spec M f M_f Mf

Experiments

  • LJSpeech作为训练&测试数据集
  • NAR-TTS基础验证实验
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

CLAPSpeech

abstract

在这里插入图片描述

  • 作者认为韵律和上下文文本有关系,传统的基于BERT的改进,只停留在文本层面的上下文建模;VAE主要在speech空间。因此仿照CLIP,使用对比学习,训练text-prosody的映射,建立一个共享空间,提取的embedding可以直接plugin的方式,加入到PortaSpeech中,作为输入端的韵律补充。

method

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

在这里插入图片描述

experiment

  • 基于ASR数据训练CLAP,得到的CLAP加入TTS模型测试;
    在这里插入图片描述

这篇关于PortaSpeech CLAPSpeech: 提升TTS的韵律自然度音质的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/294130

相关文章

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

无线领夹麦克风什么牌子好用?揭秘领夹麦克风哪个牌子音质好!

随着短视频行业的星期,围绕着直播和视频拍摄的电子数码类产品也迎来了热销不减的高增长,其中除了数码相机外,最为重要的麦克风也得到了日益增长的高需求,尤其是无线领夹麦克风,近几年可谓是异常火爆。别看小小的一对无线麦克风,它对于视频拍摄的音质起到了极为关键的作用。 不过目前市面上的麦克风品牌种类多到让人眼花缭乱,盲目挑选的话容易踩雷,那么无线领夹麦克风什么牌子好用?今天就给大家推荐几款音质好的

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

提升PrestaShop外贸电商网站安全的几款行业必备工具

提升PrestaShop外贸电商网站安全的几款行业必备工具 PrestaShop发展历程 PrestaShop是一款优秀且强大的外贸开源电商软件,我们开始使用PrestaShop始于2009年,那时PrestaShop还是0.9版本:界面清新,性能强悍,扩展友好等特性,既没有Magento的笨重,也没有ZenCart的古老,更没有OpenCart的脆弱,因此PrestaShop如雨后春笋,迅速

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

【JavaScript】let与var的区别及变量、函数提升

有var与无var的区别   在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口。 let与var的区别   在上面代码中,我们使用var语句声明变量x。因此,变量x的范围是函数范围。if语句内的变量x就是if语句外创建的变量x。因此,在你修改if语句块内变量x的值的时候,也会修改函数中变量x的所有引用的

如何通过食堂采购小程序端降低成本,提升效率?

随着数字化管理工具的普及,越来越多的食堂正在引入小程序来优化采购流程,减少成本和提升效率。食堂采购小程序端通过技术手段实现了自动化、智能化的管理方式,为管理者提供了极大的便利。本文将探讨如何利用技术手段开发一个高效的食堂采购小程序端,并提供一些代码示例,帮助你理解其背后的实现原理。 1. 简化采购流程 在食堂采购小程序中,简化采购流程是核心目标之一。我们可以利用数据库和后端服务来实现快速下单