Tacotron: Towards End-to-End Speech Synthesis

时间:2017.4
作者:yuxuan wang
单位:Google inc

abstract

 一个text-to-speech的系统包含text analysis fronted, an acoustic model and an audio synthesis module,搭建需要多方面的专业知识,而且这些模型都单独训练,误差会被累加,训练难度较大。
 我们提出一个直接从character合成speech的集成的端到端系统—tactron。给出<text, speech>对,模型可以从任何起始点开始训练,在frame-level合成语音,性能优越。

1.introduction

 端到端的合成优点在于

  1. 减轻了工程压力
  2. 可以对模型的各种特性进行调节,比如说话者、语言或者像情感这样高层的特征。而且对新数据做自适应会更简单。
  3. 单个模型比multi-stage的模型更鲁棒,且可以在带噪数据上做训练。

 text-to-speech:输出是连续的,通常输出序列是长于输入序列,而且对于同一个文本,可能会有不同的speech可以对应,这也是合成的难度所在。
输入:character
输出: raw spec
不需要phoneme-level的对齐 ,生成评分3.8的英文语音。

2.related work

 Wavenet是一个强大的声码器,在TTS的合成也有效,但是由于它sample-level的自回归特性,需要TTS fronted 的语音特性,因此只是替代了声学模型和声码器,并不能称为端到端。
 wang wenfu(中科院自动化所)首先提出全部用神经网络做seq2seq TTS with attention,但是他需要一个预训练的HMM帮助seq2seq作对齐,很难说清楚seq2seq学到多少对齐。其次,在训练时做了一些trick,对韵律有损。而且,他预测的是声码器的参数,因此还需要一个声码器;输入是phoneme,输出有一些限制。
 char2wav也是预测是声码器参数,然后接一个 需要预训练的sampleRNN声码器。
 Tactron直接预测raw spec,可以从头开始训练(trained from scratch)

3.model architecture

在这里插入图片描述
Tactron是基于seq2seq model with attention,它包括一个encoder, attention-based decoder, a post-processing net.

3.1 CBHG module

(本文首提)是提取seq representation的强大模型。
关于该模型值得注意的几点:

1.模型先使用一系列的一维卷积网络,有一系列的filter,filter_size从1到K,形成一个Conv1D Bank。这样的作用相当于使用了一系列的unigrams, bigrams直到K-grams,尽可能多的拿到输入序列从local到context的完整信息。其实这样的模型,与之前我们提到过的IDCNN(Iterated Dilated Convolutionary Nerual Network)有异曲同工之妙。而IDCNN相比较起来有更少的参数,不知道如果把CBHG的Conv1D Bank换成IDCNN是怎样的效果。

2.模型在最终的BiGRU之前加入了多层的Highway Layers,用来提取更高层次的特征。Highway Layers可以理解为加入了本来不相邻层之间的“高速公路”,可以让梯度更好地向前流动;同时又加入一个类似LSTM中门的机制,自动学习这些高速公路的开关和流量。Highway Networks和Residual Networks、Dense Networks都是想拉近深度网络中本来相隔很远的层与层之间的距离,使很深的网络也可以比较容易地学习。
卷积的输出堆叠在一起,在时间轴作max-pool,以增加局部不变性。

3.模型中还使用了Batch Normalization(继ReLU之后大家公认的DL训练技巧),Residual Connection(减少梯度的传播距离),Stride=1的Max-pooling(保证Conv的局部不变性和时间维度的粒度)以及一个时髦的BiGRU。

3.2 encoder

 encoder的作用是提取文本序列的特征 ,输入是character seq,每一个文字表示成one-hot vector,并且嵌入到连续向量中。将embedding 经过pre-net作非线性变换,pre-net中用带有drop out的bottleneck layer,可以加速收敛,增强泛化。
 CNHG的attentionion模块将pre-net的输出转成最终encoder 的表示,而且和RNN encoder相比减少了过拟合和错误发音。

3.3 decoder

 我们使用一个文本相关的基于tanh的attention decoder,在每个解码时间步,RNN提供attention query,将context vector和attention的输出拼接,作为decoder RNN的输入。
在这里插入图片描述
模型架构

  • encoder:包括pre-net做非线性变换,CBHG网络编码成向量输出;
  • attention机制:在做不同的预测时,需要关注句子序列中的位置是不一样的,通过attention对输出的向量✖️权重再求和,权重较大的位置加强 关注,权重为 0的地方不再关注,实现变长的向量;但是会引入较大的参数量,产生 巨大的计算力需求。
  • decoder:pre-net先做非线性变换,attention-RNN,RNN decoder,RNN网络对编码的向量进行解码,输出上下文语言信息相关的语音。
  • post-processing net:首先是CBHG模块将decoder的输出转成线性谱,然后用vocoder进行wav合成。
    参考:http://www.cnblogs.com/demo-deng/p/7692757.html
     decoder是RNN的垂直堆叠,残差连接会加速收敛。如果decoder直接预测raw spec,会有很大的冗余,因为学习的是text和speech signal的对齐。为了避免这个冗余,我们用80-d的mel-scale spec作为target,然后用post-processing net将seq2seq转为wav。
     用dense预测decoder的输出,训练的 trick是每次预测r帧不重叠的片段,这样就把时间t按照r切分,这样可以减小model size,加快训练时间和预测时间,加速收敛,这可能是因为相邻语音帧是相关的,而且一个字会对应多帧。如果每次只输出一帧,就会导致多个时间步的输入是一样的。一次输出多帧还会使attention在训练的早期向前推进。
     decoder的初始输出是全0帧,记作,在inference阶段,会把r帧的最后一帧作为decoder下一时间步的输入。这是一个ad-hoc choice(临时选择的方案),也可以送入r帧全部。在training阶段,送入第r帧的ground truth。输入帧像编码器那样送入prenet。我们发现scheduled sampling对语音质量有损失,而pre-net的drop out会引入噪声,解决输出分布多模态的问题。

post-processing net and speech synthesis

 post-processing的任务就是 把seq2seq输出的target转成可以转成wav的target。因为我们用的是GL vocoder,所以需要target是线性幅度谱(如stft变换的)。

5.1 ablation analysis

 我们采取消融分析去理解模型中的关键部分,和生成模型一样,很难从客观的指标去进行评价。

  1. 首先和vanilla seq2seq model比较,encoder和decoder都用了2层256个units的GRU,没有pre-net和post-processing net,解码器直接预测线性对数幅度谱,但是需要0.5的scheduled sampling让模型学习路线并概括。发现模型在几帧后会停滞不前,这导致了合成信号不好,自然度和总持续时间被破坏。参见图3(a)
  2. 然后将CBHG encoder模块用一个2层的GRU encoder代替,其他部分保持一致,会发现学习路线有噪声,听合成的语音会发现有错误的发音,说明CBHG模块减少了过拟合,可以生成长的复杂的词组。参见图3(b)
  3. 图4(a);4(b)证明了使用post-processing net的好处—模型没有post-processing net,RNN预测线性谱。post-preocessing net从网络中得到更多的文本信息,因此预测中有更多的分辨谐波和高频共振结构,减少了合成伪像。

 scheduled sampling是seq2seq的模型的训练阶段,训练阶段解码器在最大化第t个元素概率时,标准序列到序列模型使用上一时刻的真实元素yt−1作为输入。设上一时刻生成的元素为gt−1,Scheduled Sampling算法会以一定概率使用gt−1作为解码器输入。
 标准的序列到序列模型中,如果序列前面生成了错误的元素,后面的输入状态将会收到影响,而该误差会随着生成过程不断向后累积。Scheduled Sampling以一定概率将生成的元素作为解码器输入,这样即使前面生成错误,其训练目标仍然是最大化真实目标序列的概率,模型会朝着正确的方向进行训练。因此这种方式增加了模型的容错能力。

5.2 mean opinion score

3.82的MOS评分

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Faster R-CNN是一种基于区域建议网络(Region Proposal Networks,RPN)的物体检测算法,旨在实现实时物体检测。它通过预测每个区域是否含有物体来生成候选框,并使用卷积神经网络(CNN)来确定候选框中的物体类别。Faster R-CNN在提高检测精度的同时,也显著提高了检测速度。 ### 回答2: 在计算机视觉领域中,目标检测一直是热门研究的方向之一。近年来,基于深度学习的目标检测方法已经取得了显著的进展,并且在许多实际应用中得到了广泛的应用。其中,Faster R-CNN 是一种基于区域建议网络(Region Proposal Networks,RPN)的目标检测方法,在检测准确率和速度之间取得了很好的平衡,能够实现实时目标检测。 Faster R-CNN 的基本框架由两个模块组成:区域建议网络(RPN)和检测模块。RPN 主要负责生成候选目标框,而检测模块则利用这些候选框完成目标检测任务。具体来说,RPN 首先在原始图像上以多个尺度的滑动窗口为基础,使用卷积网络获取特征图。然后,在特征图上应用一个小型网络来预测每个位置是否存在目标,以及每个位置的目标边界框的坐标偏移量。最终,RPN 根据预测得分和位置偏移量来选择一部分具有潜在对象的区域,然后将这些区域作为候选框送入检测模块。 检测模块的主要任务是使用候选框来检测图像中的目标类别和位置。具体来说,该模块首先通过将每个候选框映射回原始图像并使用 RoI Pooling 算法来获取固定大小的特征向量。然后,使用全连接神经网络对这些特征向量进行分类和回归,以获得每个框的目标类别和精确位置。 相比于传统的目标检测方法,Faster R-CNN 具有以下优点:首先,通过使用 RPN 可以自动生成候选框,避免了手动设计和选择的过程;其次,通过共享卷积网络可以大大减少计算量,提高效率;最后,Faster R-CNN 在准确率和速度之间取得了很好的平衡,可以实现实时目标检测。 总之,Faster R-CNN 是一种高效、准确的目标检测方法,是深度学习在计算机视觉领域中的重要应用之一。在未来,随着计算机视觉技术的进一步发展,Faster R-CNN 这类基于深度学习的目标检测方法将会得到更广泛的应用。 ### 回答3: Faster R-CNN是一种结合了深度学习和传统目标检测算法的新型目标检测方法,旨在提高目标检测速度和准确率。Faster R-CNN采用了Region Proposal Network(RPN)来生成候选区域,并通过R-CNN网络对候选区域进行分类和定位。 RPN是一种全卷积神经网络,用于在图像中生成潜在的候选区域。RPN通常在卷积特征图上滑动,对每个位置预测k个候选区域和其对应的置信度得分。这样,对于输入图像,在不同大小和宽高比的Anchor上预测候选框,可以在计算上更有效率。 R-CNN网络利用卷积特征图作为输入,对RPN生成的候选区域进行分类和精确定位。与以前的目标检测方法相比,Faster R-CNN使用了共享卷积特征,使得整个检测网络可以端到端地进行训练和优化,缩短了训练时间,同时也更便于理解和改进。 Faster R-CNN不仅具有较高的准确性,还具有较快的检测速度。在各种基准测试中,Faster R-CNN与其他目标检测算法相比,都取得了优异的性能表现。总之,Faster R-CNN将目标检测引入了一个新的阶段,为实时目标检测提供了一个良好的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值