Tacotron2

NATURAL TTS SYNTHESIS BY CONDITIONING WAVENET ON MEL SPECTROGRAM PREDICTIONS论文阅读笔记

先推荐一篇比较好的翻译,但不完整机器之心Tacotron2

简介

  1. 历史回顾:

    • 前期方法:级联合成 、统计参量
    • 特点:低沉不自然
    • 方法:Wavenet 时域波形生成模型
    • 特点:音质提高但是输入繁杂
  2. Tacotron2

    • seq2seq 从字符序列到soectrograms,简化了语言声学特征产生的步骤

    • vocoder : tacotron1–使用短时傅立叶逆变换 < wavenet

    • 对比其余网络: Deep Voice3–主观评估低 Char2Wav–使用传统的中间表示形式

模型简介

  • 系统组件:

    1. ​ 注意力机制循环序列到序列特征预测network – 从字符序列预测mel谱图
    2. ​ Wavenet优化版本 – 基于mel谱图生成时域波形样本
  • 中间特征代表选择

    1. mel蘋谱图:在较低的频率中强调细节;使用低频率细节,不强调摩擦音和噪声突发所站主导地位的高频细节。
    2. 选择原因:线性频谱图会丢失相位信息,griffinlim(tacotron1)可以估计该丢弃信息,并且进行短时傅立叶逆变换进行时域转换;mel频谱图会丢弃更多信息,但是与其他声学或者语言特征相比,mel铺图失忆症更简单的低级声学表示,改进的wavenet框架可以从mel频谱中生成高质量的音频
  • 频谱图预测网络

    1. 模仿tacotron1,使用50ms帧12.5ms帧跳和Hann窗函数的傅立叶变换;使用5ms帧跳进行试验,以匹配原始wavenet中的条件输入的频率,时间分辨率的提高导致了发音问题增多

    2. 使用125HZ to 7.6kHz 80通道的mel滤波器组将STFT幅度转化为mel标度,之后进行对数动态范围压缩(取log)

    3. 网络结构

      • 编码器 --将字符序列转换为隐藏的特征表示形式
      • 解码器 --解析隐藏特征表示形式以预测频谱图
    4. WaveNet Vocoder

预测网络详细介绍

  • 编码器

    1. 输入字符:学习的512维字符嵌入表示,字符序列经过3层每层512个5*1的过滤器的卷积层,即每个过滤器跨越5个字符,之后批归一化(batch )和RELU激活函数;卷积层对上下文进行建模,最终输出传递到包含512个单位的单个双向LSTM层(前后两个方向各256个)
    2. 编码器的输出被注意力网络解析,解码器将完整的编码序列总结为固定长度的上下文向量;使用位置敏感注意力机制,将来自先前解码器一定时间步长的累积注意力权重作为附加特征,这有助于模型顺着输入不停向前进行预测,减少了子序列被解码器重复或者忽略的故障模式
    3. 输入和位置特征被投影到128维的隐藏表示形式后可计算出注意力概率;而位置特征是通过32个一维长为31的卷积滤波计算的
  • 解码器

    1. 解码器由一个自回归RNN,将来自编码器的输入序列每次一帧地预测一幅mel频谱图;来自上一步的预测首先通过一个包含256个隐藏relu单元的2层全连接层的小型预网(pre-net),预网的输出和注意力内容向量被连接并且投入2个具有1024单位的单向LSTM层

    2. 单向LSTM层的输出和注意力内容向量被连接之后通过线性变换进行投影,来以此预测目标频谱图帧

    3. 最后,预测的mel频谱图通过5层卷积的post-net(后网),该网络预测了要加到预测中的残差以提高整体性能,后网由512个5×1的过滤器组成,并且进行批归一化,之后在除了最后一层以外的所有层上tanh激活函数

  • 损失函数

    最小化经过后网之前和之后的MSE之和来帮助收敛

  • 与预测频谱图并行的是将LSTM输出和注意上下文被投影到一个标量,并通过S型激活来预测输出序列完成的可能性,允许模型动态却仍何时终止生成,具体我恶言,生成将在此概率值>0.5的第一帧处完成

  • 编码器:网络中的卷积层使用概率为0.5的dropout,LSTM层使用概率为0.1的zoneout;解码器:为引入推断时的输出变化,概率为0.5的丢失仅用于自回归解码器的prenet层中

    Tacotron1 Tacotron2
    使用CBHG和GRU(LSTM变体)模块 使用原始的LSTM和卷积层
    结构较为复杂 架结构更加简单
    使用griffin lim,减少因子 不使用减少因子,每个解码器步骤对应于单个频谱图

wavenet声码器

  • tacotron2的声码器部分使用的是优化后的wavenet,将mel频谱图转换为时域的波形样本,与原始体系一样,具有30个膨胀卷积层,被分为了三个膨胀周期,第k层的膨胀率为

    2

    k

    2^k

    2k ;为适应mel频谱12.5ms的帧跳,调节堆栈中的的上采样层只有两层而不是三层

  • 使用logistic分布的10分量混合生成24khz的16位样本,为计算逻辑混合分布,wavenet输出通过relu激活,之后进行线性投影,以预测每个分量组的各个参数(包括平均值、对数刻度、混合物权重)
  • 损失选择为对于ground truth样本的负对数似然率

实验与结果

  • 预测网络训练–teacher-forcing模式,解码器输入正确的输出而非预测的输出,可以确保预测帧与目标波形样本的对齐

    • 单个gpu上batch size 64
    • Adam优化器

      ϵ

      =

      1

      0

      6

      \epsilon = 10^{-6}

      ϵ=10−6

    • 学习率0.001 50000次迭代后降至0.00001
    • L2正则化 权重

      1

      0

      6

      10^{-6}

      10−6

  • 声码器训练

    • 基于ground truth 批大小128 32GPUS 同步更新
    • Adam优化器

      ϵ

      =

      1

      0

      8

      \epsilon = 10^{-8}

      ϵ=10−8

    • 固定学习率

      1

      0

      4

      10^{-4}

      10−4

    • 波形目标缩放127.5倍以加速收敛
  • 数据集

  • 一名专业女发言人24.6小时的演讲时间,所有文本均已阐明

  • 结果

  • 局限–尽管我们的系统能够可靠地处理整个输入,但韵律模型仍有改进的空间
  • 局限–时会遇到发音困难,例如在处理名称时。这一结果表明了端到端方法的挑战-他们需要对涵盖预期用途的数据进行培训
  • 优点–神经系统倾向于生成更自然,更像人类的语音

更多角度评价

对比在预测值和ground truth上声码器的表现对比

对比使用线性频谱和mel频谱作为声码器输入

对比简化wavenet

总结

本文介绍了Tacotron 2,这是一种全神经TTS系统,该系统结合了序列到序列的递归网络,并通过改进的WaveNet声码器来关注预测梅尔谱图。 最终的系统将语音合成为Tacotron级韵律和WaveNet级音频质量。 该系统可以直接从数据中进行训练,而无需依赖复杂的特征工程,并且可以实现接近自然人语音的最新音质。

Tacotron2论文阅读笔记的更多相关文章

  1. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  2. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  3. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  4. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  5. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  6. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  7. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  8. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  9. [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering

    [论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...

  10. [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks

    [论文阅读笔记] metapath2vec: Scalable Representation Learning for Heterogeneous Networks 本文结构 解决问题 主要贡献 算法 ...

随机推荐

  1. 其他计算机&网络&行业知识

    互联网数据中心(IDC)   VIDC(端口映射) CVM云服务器(Cloud Virtual Machine)  IDE 集成开发环境: 开发工具 QA:Quality Assurance,直译为质 ...

  2. CCCC L3-032 关于深度优先搜索和逆序对的题应该不会很难吧这件事 【树状数组】

    https://pintia.cn/problem-sets/994805046380707840/exam/problems/1518582895035215872 题意 给你一棵树,给定树根,要求 ...

  3. 1.PS基本操作

    1.图片颜色变淡 1.新建一个白色的画板 什么尺寸都可以 只要能装得下你这张图 2.把这张图拖进去放到画板上 3.在右边找到这张图的图层 更改透明度到你觉得合适的程度 (我初步估计可能20%左右吧)

  4. fetchAll 的小小分析

    includes\database\prefetch.inc line 425 $this->defaultFetchStyle: fetch_object int 5protected $de ...

  5. office图标变白新的处理方法

    https://www.haozhuangji.com/xtjc/133013759.html 一般搜索得到的处理方式与上面链接的处理方式差不多,都是通过安装wps或者修改注册表来实现的. 本文是我在 ...

  6. Flutter中的路由 路由替换 返回到根路由

    一.Flutter 中返回到上一级页面 Navigator.of(context).pop(); 二.Flutter 中替换路由 比如我们从用户中心页面跳转到了 registerFirst 页面,然后 ...

  7. 时间处理及interval函数运用

    MySql时间操作1.interval的说明1.1.当函数使用时,即interval(),为比较函数,如:interval(10,1,3,5,7); 结果4:原理:10为被比较数,后面1,3,5,7为 ...

  8. 查看当前执行的sql

    SELECT TOP 100 t.hostname, t.loginame, percent_complete, [session_id] , der.[request_id] , [start_ti ...

  9. JS中有关闭包的相关内容及介绍

    1 var obj = (function (arg) { 2 // 这里就是一个简单的闭包,将局部变量 test和函数fn1 return出去 3 // 这样obj就可以拿到函数内部定义的变量在函数 ...

  10. 数据库管理工具naicat+DG

    DG 参考链接:https://www.cnblogs.com/zuge/p/7397255.html 自我感觉: 亲切,万能,idea用多了... 石皮 解 用学生账号登陆就可以(我用的这一种) 工 ...