赞
踩
Tacotron 2.0模型结构
Tacotron是一个端到端的从文本合成语音的模型,也是典型的encoder2decoder结构。encoder用来将文本特征转化为中间特征(可以类比为phoneme特征吧);decoder使用自回归的方式,使用中间特征与上一时刻的mel特征输出去生成这一时刻的mel特征。
Encoder主要包含Embeding层、三层的1d的卷积层、以及一层双向的LSTM层。
Input为(Batch,L,F)L为文本长度,F为文本特征维度。
双向的LSTM层:为一层,输出的维度为512,来生成编码特征,编码特征维度为(Batch,L,512)。
Decoder是一个包含了一个两层FC的Pre-Net、5层卷积的Post-Net以及包含的位置敏感的注意力机制模块。在训练时Pre-Net采用真实的Mel特征作为输入,进行训练。测试时,上一时刻Linear Projection的输出作为Pre-Net的这一时刻的输入。
Pre-Net为两层维度为512的全连接层的网络,作为信息瓶颈层,对学习注意力是必要的。Pre-Net的输入为特定一帧(也可以几帧拼接一下输入)的Mel特征维度为(Batch,D)。D为Mel特征的维度80。输出为(Batch,512)。
对于tanh激活函数里的第一项,其实就是解码器的这一时刻的隐状态做了一个映射(也就是LSTM的输出做了一个映射);第二项为编码器的隐状态做了一个映射(也就是Encoder的输出做了一个映射);第三项为累加的注意力权重变量做了一个映射。第一项加第二项相当于基于内容的注意力机制,第二项加第三项相当于基于位置的注意力机制。
这样等于说“使得模型在沿着输入序列向前移动的时候保持前后一致,减少了解码过程中潜在的子序列重复或遗漏”。
5.在步骤四等到注意力权重后,与Encoder的输出做加权和,等到这一时刻的上下文特征。此时,这一时刻的上下文特征再次与步骤二中的LSTM的输出进行拼接后,经过Linear Projection层的映射后,得到这一时刻的目标频谱帧6
6.将这一时刻的目标频谱帧经过5层的Post-net来预测一个残差叠加到卷积前的频谱帧上,用以改善频谱重构的整个过程。post-net每层由512个5X1卷积核组成,后接批归一化层,除了最后一层卷积,每层批归一化都用tanh激活。
7.另外步骤五得到目标频谱帧经过另外一个并行的Linear Projection+sigmoid层,来预测输出序列是否已经完成的概率。
在Anthea中损失函数共有四项,分别是步骤五与步骤六得到的目标频谱与gt的mse loss项与L1 loss项、步骤七的交叉熵 loss项,以及注意力损失项(目的是为了使注意力排列更加单调)
但是在官方的文档中只有前三项,没有第四项的注意力损失。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。