Transformer 在 VITS 中的应用
VITS,Variational Inference with adversarial learning for end-to-end Text-to-Speech,使用了 transformer 作为基本的架构,但是在后验编码器和先验编码器之间额外添加了变分推理和标准化流。
Transformer的结构
一个编码器,一个解码器。
编码器解码器各自是一个相对完整的神经网络,每层含子层,子层分别为注意力和前馈神经网络。处理查询(query)、
键(key)或值(value)(都是向量)。
VITS的结构和原版Transformer的对应
文本编码器(Text Encoder):transformer的编码器结构,将输入的文本序列转换为文本特征序列。
后验编码器(Posterior Encoder):transformer的编码器结构,将文本特征序列和真实的语音特征序列(如梅尔频谱)作为输入,输出一个后验潜变量分布。
先验编码器(Prior Encoder):transformer的编码器结构,将文本特征序列作为输入,并在每个层后面加入一个标准化流层(Normalizing Flow Layer),输出一个先验潜变量分布。
语音解码器(Speech Decoder):transformer的解码器结构,将文本特征序列和从先验或后验分布中采样得到的潜变量作为输入,并在最后一层后面加入一个对抗损失层(Adversarial Loss Layer),输出一个语音特征序列。
以及额外添加的:
持续时间预测器(Duration Predictor):将文本特征序列作为输入,使用一个全连接层和一个softmax层,输出一个持续时间序列,表示每个文本单元对应的语音帧数。
Transformer 在 VITS 中的应用
http://petertan303.github.io/2023/06/12/Transformer-在-VITS-中的应用/