论文笔记 Glow-TTS:A Generative Flow for Text-to-Speech via Monomic Alignment Search

Glow-TTS:A Generative Flow for Text-to-Speech via Monomic Alignment Search     

---Jaehyeon Kim, Sungwon Kim, Jungil Kong, Sungroh Yoon

论文地址:https://arxiv.org/abs/2005.11129

相关代码(官方):https://github.com/jaywalnut310/glow-tts

Demo:https://jaywalnut310.github.io/glow-tts-demo/index.html

摘要

    Glow TTS是一个基于标准化流的并行化语音生成模型。它不像类似FastSpeech一样,需要一个“老师”模型预先学习对齐信息,而是通过单调对齐搜索算法(Monotonic Alignment Seacrch 简称MAS),搜索最优的文本特征与语音特征的对齐信息,而后并行的生成最终的语音特征。Glow TTS能够生成与Tacotron 2音质相当的语音,而且实时率达到了0.025,并且作者证明了,该模型在多人语音合成上,同样适用。另外,作者开源了相关代码。

1 Glow TTS

图1 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的情况下,就可以计算似然概率了。如公式1所示。

公式1 似然概率计算公式

    有了似然概率公式后,就可以求最大似然概率了,如公式2所示,但是由于公式2中的代求变量有两个,即对齐矩阵A与网络参数theta,直接求是比较复杂的。于是,为了简化,作者用EM算法的思想,直接求取最大似然的下界。如公式3所示。

公式2 最大似然概率计算公式
公式3 最大似然概率计算简化版

    这样,最大似然计算就被简化成了两步计算,(1)在固定网络参数theta时,求解公式4;(2)在固定求得的对齐矩阵A下,求取参数theta。

公式4 固定theta计算A

    那么,如果计算A呢,作者提出了单调对齐搜索算法MAS。

1.1 MAS

图2 MAS算法

    MAS的算法描述如图2所示,其算法步骤表述的其实就是一个动态规划算法。即先计算所有的对齐概率,然后寻找一条最大概率搜索路径。算法的过程用图形表示如图3所示。

图3 MAS算法阐述

    显然,MAS算法是不能并行执行的,它的时间复杂度是O(T_text * T_mel),但是作者也说明了,这个算法耗时不到整个网络计算的开销的2%。所以并不会有太大的计算性能影响。

1.2 帧数预测网络

    由于训练时是有对应的文本和音频特征的,所以可以直接通过求解对齐矩阵A计算每个输入的字符应该对应哪些音频帧,但是在推理时是没有音频信息的,也就没法反算A。所以需要一个字符对应音频特征帧数预测网络来预测每个字符对应的音频帧数,然后得到A,有了A,有了学习得到的网络参数theta,就可以计算输出了。具体的相关公式如公式5所示。

公式5 帧数预测相关公式

    有了帧数预测网络,在推理阶段,就能够将文本信息映射成相应的隐变量z,然后通过解码器网络的逆运算,求出需要生成的语音特征。最后结合声码器(作者用的是WaveGlow),生成语音。

    需要注意的是,训练阶段,帧数预测网络的梯度更新是不影响编码器网络的,如公式5中的sg表示。在图1(a)中也有所体现。

1.3 整体网络架构

1.3.1 编码器结构

    编码器结构如图4所示。

图4 编码器

1.3.2 解码器

    解码器结构如图5所示。

图5 解码器结构

    其中queeze操作如图6所示。

图6 queeze操作

1.3.3 参数设置

    整个网络的参数设置如表1所示。

表1 网络参数

2 实验部分

 2.1 单人数据实验

    单人实验数据使用的是LJSpeech的24小时数据,结果如表2所示及图7所示。

表2 Glow TTS 单人MOS评分
图7 推理时间比较

2.2 多人数据实验

    作者用LibriTTS的245人,约54小时数据训练了模型,其结果如表3所示。

表3 Glow TTS 多人MOS评分

    可见,多人模型的效果有明显的下降。

2.3 其他实验

    作者还做了一些其他实验,例如语速控制、音色转换等,具体参看论文,这里略过。

部分参考文献

Battenberg, E., Skerry-Ryan, R., Mariooryad, S., Stanton,D., Kao, D., Shannon, M., and Bagby, T. Locationrelative attention mechanisms for robust long-form speech synthesis. arXiv preprint arXiv:1910.10288, 2019.

Dinh, L., Krueger, D., and Bengio, Y. Nice: Non-linear independent components estimation. arXiv preprintarXiv:1410.8516, 2014.

Dinh, L., Sohl-Dickstein, J., and Bengio, S. Density estimation using real nvp. arXiv preprint arXiv:1605.08803, 2016.

Durkan, C., Bekasov, A., Murray, I., and Papamakarios, G.Neural spline flflows. In Advances in Neural InformationProcessing Systems, pp. 7509–7520, 2019.

Gibiansky, A., Arik, S., Diamos, G., Miller, J., Peng, K.,Ping, W., Raiman, J., and Zhou, Y. Deep voice 2: Multispeaker neural text-to-speech. In Advances in neuralinformation processing systems, pp. 2962–2970, 2017.

你可能感兴趣的:(论文笔记 Glow-TTS:A Generative Flow for Text-to-Speech via Monomic Alignment Search)