LPCNet
LPCNet 一个将数字信号处理(DSP) 和神经网络(NN)结合应用于语音合成中 vocoder 的工作,可以在普通的CPU上实时合成高质量语音。
图8. LPCNet算法概述。网络的左边部分(黄色)每帧计算一次,其结果在整个帧中对右边的采样率网络(蓝色)保持不变。计算预测块根据以前的样本和线性预测系数,预测时间t的样本。为了清楚起见,省略了µ-law和线性之间的转换
LPCNet核心设计在图8中右侧的Sample rate network 部分。Frame rate network 主要为 Sample rate network 提供一个条件向量的输入,这个条件向量一帧计算一次,并在该帧时间内保持不变。LPC 计算模块则从输入特征中计算线性预测参数 LPC,LPC 也是一帧计算一次,并在帧内保持不变。
LPCNet分为两部分,一是每帧计算一次的特征计算部分,二是每个采样点都要计算的采样部分。特征计算部分的输入就是BFCC和二维pitch信息,输出为帧特征。采样部分的输入是特征计算部分的输出和用LPC计算的当前采样点的线性部分,还有上一个采样点以及上一个采样点的采样网络输出(非线性部分),输出就是当前点的非线性部分。最后只要将LPC计算的值和采样网络输出的值加起来就是LPCNet最后的输出。
如图8,整个系统由帧级别的 frame rate network(黄色部分)和采样点级别的 sampling rate network(浅蓝色部分)组成。frame rate network 每一帧计算一次,其中使用了 2 层 1*3 的一维卷积,因此该网络的感受视野为 5 帧。sampling rate network 是每一帧计算 160 次(如使用16khz的音频,10ms帧移),该部分为 autoregressive 模型,每一个激励 e 的推测都需要前一个推测 e 作为条件。
当前 SOTA!平台收录 LPCNet 共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
LPCNet | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/lpcnet |
Transformer -TTS
把Transformer和Tacotron2融合,就形成了Transformer-TTS。模型的主体是原始的Transformer,只是在输入阶段和输出阶段为了配合语音数据的特性做了改变。首先是Encoder的输入阶段,先将text逐字符转化为token,方便Embedding,然后进入Encoder PreNet,这层网络由一个Embedding layer和三层卷积层构成,转化为512维的向量后,进入Transformer Encoder。其次是Transformer的Decoder部分,分为输入和输出。输入通过一个PreNet将80维的梅尔声谱图转化为512维向量,这里的PreNet是一个三层的全连接网络。输出部分与Tacotron2的设计完全一致。基于Transformer的TTS模型已是现在主流的End-to-End TTS系统的baseline,它的实现必不可少,而且因为Transformer本身优异的结构,也能大大加快实验的速度。
图9. Transformer-TTS 系统架构
当前 SOTA!平台收录 Transformer-TTS 共 1 个模型实现资源。
项目 | SOTA!平台项目详情页 |
Transformer-TTS | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/transformer-tts-mel-waveglow |
Glow-TTS
Glow-TTS是一个不需要任何外部对齐处理的基于流的并行TTS生成模型。GLow-TTS引入了一种用于内部对齐的单调对齐搜索(Monotonic Alignment Search,MAS)方法。MAS利用流的特性,搜索文本和语音的潜在表示之间最可能的单调对齐。
图10. Glow-TTS的训练和推理程序
通常,用流来做条件概率密度估计的处理方法都是将给定条件先合并到流中,然后将数据映射到已知的条件流中。而Glow的做法不同,Glow-TTS是将条件信息合并到流的统计信息中去(如高斯分布的均值及标准差),而不是直接合并到流中。具体的,音频信息-梅尔谱特征通过解码器网络fdec生成潜在变量z,z服从高斯分布Pz;文本信息c通过编码器网络fenc生成潜在变量h,然后h通过网络生成高斯分布的均值u和标准差theta。此时,每帧的音频特征都映射成了某个特定的高斯分布,每个字符也都映射成了相应的高斯分布。
接下来的工作就是寻找两类分布的映射矩阵A,即对齐矩阵。作者定义,当音频帧j对应的潜在变量z_j服从某个字符i对应的高斯分布时,就认为该音频帧与这个字符对应,即N(z_j;u_i,theta_i),也就是A(j)=i。在知道了对齐矩阵A的情况下,可以利用如下公式计算似然概率:
下一步求解最大似然概率。作者用EM算法的思想,直接求取最大似然的下界。这样,最大似然计算就被简化成了两步计算,(1)在固定网络参数theta时,求解上述公式;(2)在固定求得的对齐矩阵A下,求取参数theta。
为了计算A,作者提出了单调对齐搜索算法MAS,如图24所示,MAS其实就是一个动态规划算法。即先计算所有的对齐概率,然后寻找一条最大概率搜索路径。由于训练时是有对应的文本和音频特征的,所以可以直接通过求解对齐矩阵A计算每个输入的字符应该对应哪些音频帧,但是在推理时是没有音频信息的,也就没法反算A。所以需要一个字符对应音频特征帧数预测网络来预测每个字符对应的音频帧数,然后得到A,有了A,有了学习得到的网络参数theta,就可以计算输出了。
图11.单调对齐搜索示例
图12.编码器(上)和解码器(下)示例
最后,图12给出Glow-TTS的结构。在Glow-TTS中,解码器是由一系列可以并行进行正向和反向转换的流程组成的,具体包括仿生耦合层、可逆1x1卷积和激活归一化。解码器则是一个由多个块组成的堆栈,每个块由激活归一化、可逆1x1卷积和仿生耦合层组成。解码器部分遵循了Transformer TTS的编码器结构,并做了两个轻微的修改:去掉了位置编码,将相对位置表示加入到自注意力模块中;在编码器预网中加入了残差连接。为了估计先验分布的统计数据,只是在编码器的末端添加了一个线性层。持续时间预测器由两个卷积层组成:ReLU激活、层规范化和Dropout,然后是一个投影层。
当前 SOTA!平台收录 Glow-TTS共 1个模型实现资源。
项目 | SOTA!平台项目详情页 |
Glow-TTS | 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/glow-tts |