GAN的语音翻译和音频样式传输如何使用频谱图和GAN将爵士乐转换为古典音乐

介绍

我们都听说过图像样式转换:从一幅著名的绘画中提取样式并将其应用于另一幅图像是通过多种不同方法来实现的任务。生成对抗网络(简写为GAN)也用于图像生成,图像到图像的翻译等等。

图片发布
图片发布

图像样式传输示例

但是声音呢?从表面上看,你可能会牛逼hink那声音是从图像中完全不同,所有已探索图像相关的任务不同的技术也无法应用到声音。但是,如果我们能找到一种将音频信号转换为类似图像的二维表示的方法呢?

事实上,是的,我们可以!这种声音表示称为“频谱图”,它是使我们能够使用专门设计用于图像处理音频相关任务的算法的关键。

图片发布
图片发布

频谱图(来源

频谱图

如果您不熟悉音频处理,那么您可能不熟悉频谱图的真正含义。给定一个时域信号(一维),我们想要获得一个时频二维表示。为此,我们在音频信号上应用具有一定长度窗口的短时傅立叶变换(STFT),仅考虑结果的平方大小。

图片发布
图片发布

MelNet论文页面上令人难以置信的说明时间和频率之间的关系

用更简单的术语来说,我们将原始波形信号分成彼此重叠的块,通过傅立叶变换提取块中频率的幅度,每个结果矢量将代表最终频谱图的一列。频谱图的x轴代表时间,而y轴代表频率

为了使这些频谱图对我们的任务更加有用,我们将每个“像素”(或大小值)转换为分贝标度,并取每个值的对数。最后,我们应用mel滤波器组将频谱图转换为mel标度,从而产生了所谓的“ mel频谱图”。

图片发布
图片发布

对数振幅的梅尔谱图示例

这使我们能够使频谱图表示对我们人类对声音的理解更加敏感,突出了我们人类更容易听见的振幅和频率。

还要特别注意的是,频谱图可以转换回“可听”的波形数据:这不是一个完美的重建方法(在幅度频谱图中缺少相位信息),但是由于有了一种称为Griffin-Lim的算法,我们能够近似相位并重新创建逼真的声音。

我们的任务

现在我们知道了如何将声音表示为图像,让我们玩得开心。

在本文中,我将解释如何构建和训练一个能够执行语音转换和任何其他类型的音频样式转换(例如,将一种音乐类型转换为另一种类型)的系统。该方法受到最近使用生成对抗网络的图像到图像翻译研究的启发,其主要区别在于将所有这些技术应用于音频数据。作为一项额外功能,我们将能够翻译任意长度的样本,这在GAN系统中很少见。

为了使您对即将学习的内容有所了解,下面是一个演示视频,介绍了使用此方法可以实现的结果。

 

在演示视频中,您可以收听不同的语音翻译示例,还可以收听几种音乐流派转换,特别是从爵士音乐到古典音乐的转换。听起来不错,不是吗?

选择架构

计算机视觉世界中有许多不同的体系结构用于图像到图像的翻译,这是我们要用音频的频谱图表示(例如语音)来实现的任务。

图像到图像的转换包括将图像从域A(例如猫的图片)转换为不同的域B(狗的图片),同时保留原始图片(猫的表情和姿势)的内容信息。我们的任务实际上是相同的:我们想从说话者A转换到说话者B,同时保持说话者A的语言信息相同(生成的语音应包含与说话者A的原始语音相同的词)。

图片发布
图片发布

CycleGAN架构

最著名的为这个目标而建立GAN架构可能是CycleGAN,在2017年推出,从那时起被广泛使用。虽然CycleGAN在类似领域(相似形状和环境)之间的转换非常成功,例如从马到斑马,或者从苹果到橘子,但是当降雨在非常多样化的领域(例如从鱼到鸟或从苹果到胡萝卜)时,它的效果就很差。

造成这种缺陷的原因是,CycleGAN严重依赖于像素损失,换句话说,它的损失往往会最小化真实图像和生成图像的像素值差异:直观地,当转换对象图像(苹果例如)到一个完全不同的域(胡萝卜),我们需要更改原始对象的主要形状,在这种情况下,CycleGAN无法帮助我们

图片发布
图片发布

CycleGAN翻译示例。(斑马到马)

来自不同人的语音频谱图(或不同体裁的音乐作品的频谱图)在视觉上可能彼此非常不同:因此,我们需要找到一种更通用的方法来解决该问题,该方法不涉及通过在视觉相似的对象之间进行翻译而受到约束域。

图片发布
图片发布

不同说话者或不同音乐类型的频谱图在视觉上可能会非常不同

TraVeLGAN:我们的解决方案

TraVeLGAN(转换向量学习GAN)最初是在这里介绍的,旨在准确解决我们的问题。

图片发布
图片发布

域差异很大的TraVeLGAN图像到图像翻译的示例

除生成器和鉴别器(或批评者)外,TraVeLGAN引入了暹罗网络(一种将图像编码为潜在矢量的网络),以允许在实质上不同的域之间进行翻译,从而保持原始样本与转换样本之间的内容关系。

让我们了解TraVeLGAN的工作原理。

图片发布
图片发布

TraVeLGAN架构

我们的目标是找到一种方法来保持原始样本与生成的样本之间的关系,而又不依赖于逐像素损失(例如CycleGAN中的循环一致性约束),这将限制视觉相似域之间的转换。因此,如果我们将图像(或频谱图)编码向量,以在有组织的潜在空间中捕获其内容信息,则我们可以维持这些向量之间的关系,而不是整个图像。

这正是暹罗网络使我们能够实现的目标。暹罗网络最初用于人脸识别,它以图像作为输入输出长度为vec_len的单个矢量使用损失函数指定在向量空间中哪些图像编码应接近(例如,同一张脸的图像),而哪些图像编码应该相距遥远(不同脸的图像),我们可以组织潜在空间并使其对我们的目标。

图片发布
图片发布

暹罗网络将图像编码为矢量

更具体地说,我们旨在使编码对之间转换向量 保持相等:这似乎是一个很难理解的概念,但实际上非常容易理解

G(X)作为转换后的图像X(发电机输出),S(X)为的矢量编码XA1,A2从源域的两个图像,网络必须编码载体,如:

(S(A1)-S(A2))=S(G(A1)-S(G(A2)))

以此方式,连接一对源图像的编码的变换矢量必须等于由生成器翻译的同一对之间的变换矢量。

这样可以在翻译中保留语义信息(不同于CycleGAN,它保留了具有循环一致性约束的更多几何内容信息),从而可以约束不同域的图像之间更多的“抽象”关系

正式地,为了将内容信息保留在翻译中,我们将最小化两个转换向量之间的欧氏距离和余弦相似度,以使向量的角度大小都得到保留。

图片发布
图片发布

正式旅行损失

此外,重要的是要阐明发电机暹罗网络都必须配合以实现这一目标。更具体地说,TraVeL损耗的梯度会通过两个网络反向传播并且权重也会相应更新。因此,尽管判别器和生成器具有对抗目标(他们互相挑战以达到其目标),但暹罗语和生成器在相同规则下相互帮助

除了这种“内容”损失之外,由于传统的对抗损失(在我的实验中,我使用了铰链损失),生成器还将学习如何生成逼真的样本。

如果你是新来甘斯以及它们如何工作,或者如果你想深入更深一点到如何与潜在空间中保存的内容信息,我建议你看看我的文章在这里就如何应用一个简单的图像上相同的技术到图像的翻译任务。

转换任意长度的音频信号

现在,我们已经探索了一种方法,可以在翻译中保留内容信息,我们需要了解如何使生成器转换任意长的样本(频谱图),而无需在计算和训练时间上进行额外的工作。

假设我们有一个音频信号:“提取”信号的mel-specgram,我们获得的单通道图像(不同于传统的3通道RGB图像)具有确定的高度 H(取决于用于STFT)和宽度 X取决于音频样本的原始长度)。

但是,使用尺寸可变的图像是一项艰巨的任务,特别是如果我们不事先确定尺寸的话。这就是为什么我们将拆分所有的谱图(形状XXHX是改变)成具有确定的宽度,让我们说大号。完善!现在,我们的数据集由已知维度LxH)的源和目标频谱图组成,我们已准备好进行下一步。

图片发布
图片发布

数据集中的每个频谱图都有固定的高度H和宽度L

在创建生成器G之前,我们需要指定其输入尺寸,在本例中为(L / 2)xH。换句话说,G将接受宽度为我们数据集中宽度一半的光谱图。为什么?因为通过这种方式,我们将能够使G转换以前拆分的整个原始 XxH 频谱图。让我们发现如何。

我们的培训计划将包括以下行动:

  1. 分割所述源LXH频谱图中一半,获得(L / 2)1 H谱图
  2. 将两对馈送到生成器,并获得翻译后的对作为输出
  3. 将翻译后的两半连接回其原始形状LxH
  4. 饲料翻译目标 LXH频谱图来鉴别,使其区分从另一个并允许对抗性训练
图片发布
图片发布

培训流水线的图示:拆分,转换和连接。

使鉴别器检查级联的“伪”频谱图并将其与“真实”目标频谱图进行比较,迫使生成器生成样本,这些样本在级联在一起时会产生真实的频谱图。

换句话说,翻译后的(L / 2)xH样本不得在边缘出现任何不连续性,以免使鉴别者看起来不现实。因此,对发生器的这一重要限制使我们能够将任意长度的音频信号从一个域转换到另一个域。

训练后,当想要转换形状为XxH任意频谱图时,X会发生变化,并由原始音频信号的长度给出,这是我们需要做的:

  1. 如果X不能被L / 2完全整除,则使用填充将XxH频谱图拆分(L / 2)xH个
  2. 每个(L / 2)xH样品送入发生器进行翻译
  3. 将翻译后的样本连接成原始的XxH形状,如果使用填充则将多余的部分切掉

使用Griffin-Lim算法将最终的转换样本转换回波形后,不应出现 间断,并且应呈现目标域相同的样式(特定的语音或音乐流派)。很简单,不是吗?

图片发布
图片发布

源谱图和转换谱图的示例:串联的样本不存在不连续性

放在一起

先前我们已经学习了如何保留源音频样本中的内容(在语音情况下,它将是一些口头信息,在音乐情况下,这将是歌曲的特定旋律),而无需在视觉上进行转换相似的领域(不同声音或音乐风格的频谱图在视觉上可能极为不同)和一种简单而有效的技术,允许我们转换任意长度的样本。

现在终于到了将所有内容放在一起的时候了

这是一个提取从我的论文呈现了这种方法:

图片发布
图片发布

将所有内容放在一起:暹罗网络有助于保留源样本和转换后样本之间的内容保持向量算术

MelGAN-VC培训程序。我们将频谱图样本拆分,将它们馈送到生成器G,将它们连接在一起,然后将所得样本馈送到鉴别器D,以允许任意长度的样本平移而不会出现差异。我们在传统的生成器-区分器GAN架构中添加了暹罗网络S,以将矢量算法保留在潜在空间中,从而对翻译中的低级内容有所限制。在任务中添加了可选的身份映射约束,这些约束也需要保留高级信息(在语音翻译的情况下为语言信息)。

此外,我们必须为暹罗网络增加裕量损失,以避免其退化为学习琐碎函数以满足其目标。余量损失使S产生的所有向量彼此远离,因此网络无法将相同的精确向量与每个输入相关联,并且必须学习有意义的关系以创建有用的潜在空间。

图片发布
图片发布

其中delta是固定值,t是转换向量

最后,这是用于训练三个网络的正式损失

图片发布
图片发布

发电机G,鉴别器D,暹罗网络S的最终损失

重要的是要注意,附加的身份约束(目标域的样本与生成器翻译的相同样本之间的均方误差)仅在语音翻译(必须保留语言信息且内容丢失(基于暹罗网络的矢量输出)难以捕获这些高级信息。

我建议并邀请您阅读我的全文,如果您正在寻找有关此特定技术的更多信息,或者希望使用更正式和有条理的说明。

结论

今天,我们已经学习了如何使用深度卷积神经网络体系结构以及一些技巧和技术来执行语音翻译音频样式转换(例如音乐体裁转换)以在任意长的音频样本上实现逼真的翻译。

现在我们知道,借助图像等效的频谱图表示,我们能够利用计算机视觉应用程序中有关深度学习的最新研究的大部分内容,来解决与音频信号有关的任务。

最后,我想总结一下这一事实,即有可能将这种技术和其他技术用于不良目的,尤其是在语音翻译的情况下。随着崛起强大的机器学习方法来创建逼真的假数据,我们都应该非常了解和谨慎的探索和使用这种算法时:同时研究不会停止,不应该停止,我们也应该分配资源并研究如何检测我们帮助创建的虚假数据

非常感谢您的宝贵关注,玩得开心!

PS:如果您GAN和GAN相关的即用型想法和应用程序感兴趣,则还应该查看

我一年培训GAN的10个经验教训(如果您对帮助您完成GAN挑战性超级任务的提示和技巧感兴趣)

在高清图像上使用GAN进行样式转换(在这里我使用类似的技术以很少的计算资源就可以对大型图像进行样式转换)

研究GAN的新方法(我在其中详细探讨了潜在空间的工作方式以及如何将其用于图像到图像的翻译任务)

使用生成对抗网络合成音频(在这里我探索了一篇论文,该论文提出使用卷积GAN使用原始波形数据和一维卷积来生成音频)

 

 

猜你喜欢

转载自blog.csdn.net/c2a2o2/article/details/111940989
GAN