从语谱图重建声音波形是语音合成中一个重要的环节。传统的上使用迭代算法,如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使用短时傅里叶变换的幅度谱()作为模型输入。整个网络可以认为是使用堆叠卷积层对幅度谱在时间维度上进行升采样。通过利用幅度谱不同通道和相邻帧间的信息,生成时域信号的采样值。
MCNN模型结构为了达到比较高的计算效率,模型对幅度谱进行分组卷积,每组卷积一个“头”。每个“头”的 输出在网络的最后一层进行加和,然后通过softsign非线性函数进行激活,公式如下,其中和是可训练的参数。
损失函数
损失函数与重建波形的质量紧密相关,文章从多个角度提出不同的损失函数,并且用它们的线性组合作为最终的优化目标。
1.频谱收敛指标(SC)
SC 重点关注能量大的频谱成分,在训练的早期起到重要作用,代表矩阵范数。
2.对数幅度谱损失
对数幅度谱损失重点关注到幅度谱中幅值比较小的部分,在训练的后期起到重要作用,和 SC 的特点正好相反。计算公式如下,其中是范数,是一个很小的数。
3.瞬时频率损失
频谱的相位是高度非结构化的,因此直接预测相位很难提升训练效果。瞬时频率作为平滑的相位相关的指标,更容易正确的预测。计算公式如下,其中是相位计算公式。
4.加权相位损失
实验结果
损失模型在 LibriSpeech 数据集上进行训练,并在 LibriSpeech测试集上进行测试评估,与 GL、SPSI + GL 进行了MOS评分的比较。可以看到,使用了组合损失函数训练MCNN合成的声音可以达到接近于真实样本的水平,强于传统的GL算法。
MCNN和其他波形重建算法的MOS打分,置信度为95%文章还对不同分组的卷积进行分析,发现不同的卷积“头”学到了分别学到了不同频率范围的升采样滤波器。
多“头”卷积网络合成波形可视化分析结论
本文提出了使用多头卷积神经网络进行波形重建,通过分组卷积降低了计算复杂度。四种损失函数组合使用,训练出了可以合成高质量声音波形的模型。在复杂度和模型性能上均优于传统算法。这项工作很有启发意义,未来可以将MCNN集成到各种声音生成的模型中,进行端到端训练。
扫码识别关注,获取更多新鲜论文解读
网友评论