目前自然语音合成(TTS)进度一点见解

目前实验模型wavenet,parallel wavenet, tacotron, deep voice 3, clarinet

1. 需要preemphasis来产生更好的音频

来自社区国人tacotron2的commit

目前自然语音合成(TTS)进度一点见解

2. 转换到mu-law域可以stabilize训练过程,加速converge, 但是好像对最优解生成的音频质量没什么影响,所以现在训练还是raw

3. 最终converge前的低学习率训练也非常重要。即使它只有 1e-5 ~ 1e-4的learning rate。来自社区韩国友人的commit。

4. reduction factor可以提升音频质量,来自百度deep voice 3的paper,自己实验证实在deepvoice3模型中确实非常的effective,有效到没它就完全不能用这种。但是好像对tacotron并没有这么明显。

5. 使用gaussian wavenet output确实让模型更容易收敛,相比于mol可能到最后都converge不了,论点来自于百度clarinet的paper,不过可能会降低模型最终拟合程度,毕竟是单高斯分布拟合的p(xt| x<t)。不过质量对于实验来说完全足够了,这里非常建议使用gaussian,要不然wavenet单卡60K step/天的训练速度,100K+ step之后发现收敛不了,实在绝望

6. google paper中wavenet使用的联机32 batch size,实验中8的batch size都会OOM,整个wavenet模型很大,量力而行吧。

7. 可能是实力不够,deep voice 3对中文的mel spectrogram predict会在50 time step后拟合程度逐渐decline,我觉得是CNN模型只把上一个节点作为attention query的行为导致误差逐渐增大吧,反正是瞎猜的。也可能是我训练的不好,不过自己的实力到这也没办法了。

8. Parallelization确实实现了,但是效果很差,质量也下降严重,据我所知各大厂都实现了并行,但是社区好像还没有满意的结果。准备放弃转波形拼接了。

9. Parallelization实验中只知道teacher的质量很重要,然后就是upsample需要继承teacher,不要重新init,会导致tanh层input data集中在失活区域,梯度传不过去。

10. 云知声说在parallel wavenet的power loss中引入phase,个人理解就是stft完了之后abs算magnitude,atan算phase么,但是他们答复说不是这么算的,可以往这个方向多考虑下。

11. 实验中wavenet最后converge需要100K+ step,tacotron需要10K+ step,deep voice 3需要60K+ step,不过deep voice 3本身是CNN可以并行,训练还是很快的,不过inference时候还是要recurrent,没啥大用。

12. 如果GL作为vocoder的话最后会面临沉闷,不尖锐的问题,所以才使用wavenet作为vocoder

13. 对原始wav的rescale很重要

就这么多了,想到什么写点什么也没个顺序。很多见解都是社区看的大神们的discussion,还是人多力量大。多看多学就完事了。