007、声码器技术对比:WaveNet、WaveGlow 与 HiFi-GAN 原理剖析
从一段深夜调试日志说起
上周在部署新版 TTS 时遇到个诡异问题:合成出的语音在安静环境下听着还行,一到车载环境就出现断续的“嘶嘶”声。频谱仪上能看到 8kHz 附近有些奇怪的谐波残留——这不是梅尔谱的问题,声码器背锅。于是又把几个主流声码器重新拉出来跑了一遍对比测试,正好把这次折腾的笔记整理出来。
WaveNet:开山之作的沉重王冠
2016 年 DeepMind 扔出 WaveNet 时,大家都被那个原始波形生成质量震住了。但真正实现过的人都知道,这玩意在工程上是个“美丽的噩梦”。
核心思想其实很直观:用因果卷积(causal conv)逐点生成波形,每个点的概率分布取决于前面所有点。那个自回归结构写出来大概长这样:
# 伪代码示意,实际实现要复杂得多defwavenet_step(conditioning_features):# 堆叠多层的因果卷积residual