从语谱图重建声音波形是语音合成中一个重要的环节。传统的上使用迭代算法,如Griffin-Lim。迭代算法无法使用现代的多核处理器进行并行加速优化。文章《Fast Spectrogram Inversion using Multi-head Convolutional Neural Networks》,提出使用多头卷积神经网络(MCNN)生成波形。针对多核处理器进行并行计算优化后,该方法可以实时生成高质量的声音波形。
论文地址:https://arxiv.org/abs/1808.06719
引言
波形到语谱图的转换通常是有损的,因为在计算过程中丢弃了短时傅里叶变换的相位信息。从语谱图重构波形的算法被广泛的研究,但上不存在一种算法在保持低复杂度的情况下完美地重构波形。
传统上最成功的波形重建方法是Griffin-Lim(GL)算法,GL需要很多次迭代才能收敛,计算复杂并且无法进行并行计算优化。
新的一些基于神经网络的自回归模型,例如WaveNet,虽然可以生成非常高质量的语音,但是巨大的参数规模和自回归的模式也使这些模型难以部署。
因此文章提出了使用MCNN生成波形,因为不包含任何迭代和自回归的过程,MCNN可以利用GPU或者TPU的并行计算能力进行快速波形重建。
数据集
文章使用了 LibriSpeech 数据集,包含 960 小时的语音数据,分别来自于 2484 个不同的说话人,采样率是 16 KHz。LibriSpeech是一个在语音识别任务上被广泛使用的数据集,语音质量不是很高。使用这样的数据集训练波形重建模型,具有一定的挑战性。
模型
模型结构
MCNN使用短时傅里叶变换的幅度谱(
为了达到比较高的计算效率,模型对幅度谱进行分组卷积,每组卷积一个“头”。每个“头”的 输出在网络的最后一层进行加和,然后通过softsign非线性函数进行激活,公式如下,其中
损失函数
损失函数与重建波形的质量紧密相关,文章从多个角度提出不同的损失函数,并且用它们的线性组合作为最终的优化目标。
1.频谱收敛指标(SC)
SC 重点关注能量大的频谱成分,在训练的早期起到重要作用,
2.对数幅度谱损失
对数幅度谱损失重点关注到幅度谱中幅值比较小的部分,在训练的后期起到重要作用,和 SC 的特点正好相反。计算公式如下,其中
3.瞬时频率损失
频谱的相位是高度非结构化的,因此直接预测相位很难提升训练效果。瞬时频率作为平滑的相位相关的指标,更容易正确的预测。计算公式如下,其中
4.加权相位损失
实验结果
损失模型在 LibriSpeech 数据集上进行训练,并在 LibriSpeech测试集上进行测试评估,与 GL、SPSI + GL 进行了MOS评分的比较。可以看到,使用了组合损失函数训练MCNN合成的声音可以达到接近于真实样本的水平,强于传统的GL算法。
文章还对不同分组的卷积进行分析,发现不同的卷积“头”学到了分别学到了不同频率范围的升采样滤波器。
结论
本文提出了使用多头卷积神经网络进行波形重建,通过分组卷积降低了计算复杂度。四种损失函数组合使用,训练出了可以合成高质量声音波形的模型。在复杂度和模型性能上均优于传统算法。这项工作很有启发意义,未来可以将MCNN集成到各种声音生成的模型中,进行端到端训练。
扫码识别关注,获取更多新鲜论文解读