当前位置: 首页 > news >正文

Tacotron:[Tacotron: A Fully End-To-End Text-To-Speech Synthesis Model]

前言

介绍

语音合成系统通常包含多个阶段,例如TTS Frontend,Acoustic model和Vocoder,如下图更直观清晰一点:
在这里插入图片描述
构建这些组件通常需要广泛的领域专业知识,并且可能包含脆弱的设计选择。在很多人困扰于繁杂的特征处理的时候,Google推出了Tacotron,一种从文字直接合成语音的端到端的语音合成模型,虽然在效果上相较于传统方法要好,但是相比Wavenet并没有明显的提升(甚至不如Wavenet),不过它更重要的意义在于end-to-end(Wavenet是啥将在后面对比vocoder的时候讲解,顺便提一下Tacotron使用的是Griffin-Lim算法,而Tacotron2使用的是修改版Wavenet)。此外,相较于其他样本级自回归方法合成语音,Tacotron和Tacotron2是在帧级生成语音,因此要快得多。

在传统的Pipeline的统计参数TTS,通常有一个文本前端提取各种语言特征,持续时间模型,声学特征预测模型和基于复杂信号处理的声码器。而端到端的语音合成模型,只需要对文本语音进行简单的处理,就能喂给模型进行学习,极大的减少的人工干预,对文本的处理只需要进行文本规范化以及分词token转换(论文中使用character,不过就语音合成而言,使用Phoneme字典更佳),关于文本规范化(数字、货币、时间、日期转完整单词序列)以及text-to-phoneme可以参见我的另一篇利器:TTS Frontend 中英Text-to-Phoneme Converter,附代码。端到端语音合成系统的优点如下:

  • 减少对特征工程的需求
  • 更容易适应新数据(不同语言、说话者等)
  • 单个模型可能比组合模型更健壮,在组合模型中,每个组件的错误都可能叠加而变得更加复杂

端到端语音合成模型的困难所在:
不同Speaker styles以及不同pronunciations导致的对于给定的输入,模型必须对不同的信号有着更大的健壮性,除此之外Tacotron原本下描述:

TTS is a large-scale inverse problem: a highly compressed source (text) is “decompressed” into audio

上面这句是Tacotron原文中说的,简单来说就是TTS输出是连续的,并且输出序列(音频)通常比输入序列(文本)长得多,导致预测误差迅速累积。想要了解更多关于语音合成的背景知识,可以参考文章Text-to-speech

模型结构

Tacotron

Tacotron的基础架构是Seq2Seq模型,下图是模型的总体架构,该模型包括编码器,基于注意力的解码器和post-processing net,从高层次上讲,模型将字符作为输入,并生成频谱图,然后将其转换为波形。
在这里插入图片描述
要特别说明的是架构中,raw text经过pre-net后,将会把输出喂给一个叫CBHG的模块以映射为hidden representation,再之后decoder会生成mel-spectrogram frame。所谓CBHG就是作者使用的一种用来从序列中提取高层次特征的模块,如下图所示:
在这里插入图片描述

CBHG内部结构说明

CBHG使用了1D卷积、highway、残差链接和双向GRU的组合,输入序列,输出同样也是序列,因此&


http://www.mrgr.cn/news/42360.html

相关文章:

  • protobuf 讲解
  • 螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习03(网络及IP规划)
  • 使用 Python 模拟蒙特卡洛实验
  • python泵站设备运行预警信息管理系统
  • 虾皮Shopee大数据面试题及参考答案
  • Java第二阶段---10方法带参---第二节 方法重载(Overloading)
  • 通信协议的选择:UART、SPI、I2C与CAN的比较
  • 各省-城镇化率(2001-2022年)
  • CSP-X复赛基础框架
  • 大数据分析案例-基于逻辑回归算法构建抑郁非抑郁推文识别模型
  • C++——输入一个2*3的矩阵, 将这个矩阵向左旋转90度后输出。(要求:使用指针完成。)
  • list的模拟实现
  • 实现TCP Connect的断线重连机制:策略与实践
  • C++ 语言特性13 - 强枚举类型
  • 银河麒麟V10如何关闭定期锁屏功能?
  • C++网络编程之TCP协议
  • 0基础学习CSS(十六)尺寸和Display(显示) 与 Visibility(可见性)
  • 前缀和——从LeetCode题海中总结常见套路
  • Python 循环跳出模式
  • WarehouseController