- wavenet:一般作为Tacotron的Vocoder来合成音频,且可以生成非常高质量的音频,然而WaveNet是一个十分复杂且深度的模型,这个性质让WaveNet几乎不可能应用在实际应用场景中,而WaveRNN最初的设计目标就是在保持WaveNet高速序列生成,作者使用简化模型、稀疏化、并行序列生成等技术显著提升了序列生成速度,其良好的表现甚至可以在CPU上实现实时语音合成。
- WaveRNN:
- 其质量和WaveNet几乎相同,且速度可以比WaveNet快4倍。
- 使用weight pruning technique来减少WaveRNN中的weight数量。作者发现在参数数量固定的情况下,大的稀疏网络表现地比小的紧密网络要好。稀疏的WaveRNN甚至可以在CPU上生成高质量实时音频
- 提出了一个新的基于subscaling的生成方案,这个方案把长序列折叠成多个短序列,从而可以一次生成多个sample,这个subscale WaveRNN可以通过和一个orthogonal方法结合来增加采样效率。
- Weight Sparsification Method:
- 作者使用了一种随着训练进行逐渐增加稀疏程度的方法。对每个参数矩阵维护一个binary mask,开始的时候binary mask为全1,训练每进行一段时间,就对参数矩阵的元素进行排序,然后把值最小的k个元素的mask设置为0。
- 通过编码稀疏矩阵的方法来减少参数的存储消耗。
- 作者使用4x4 block作为单位来压缩矩阵,也就是说,原有的参数矩阵被压缩为多个4x4矩阵,这样binary mask的大小就可以缩小为原来的十六分之一,且不会损失表现。作者尝试的另一个结构是16x1 block,这种压缩方法只需要一个dot product就可以得到activation value
- 虽然WaveRNN在文章中被用来做TTS,但是不要忘记这是一个通用的序列生成模型,这就意味着它可以应用在各种序列生成任务中。另外虽然WaveRNN的作者没有开源其代码,但是已经有人给出了不错的实现,具体见fatchord/WaveRNN
WaveRNN--简略学习笔记
最新推荐文章于 2024-10-15 09:48:41 发布