【论文翻译】CP-GAN: CONTEXT PYRAMID GENERATIVE ADVERSARIAL NETWORK FOR SPEECH ENHANCEMENT

论文阅读:CP-GAN: CONTEXT PYRAMID GENERATIVE ADVERSARIAL NETWORK FOR SPEECH ENHANCEMENT

  • 时间:2020
  • 关键词:语音增强、CP-GAN

abstract

本文之前,Gan在语音增强领域的运用 基本都是借鉴其在CV中的架构,没有根据音频特征(即 不同粒度上下文)对语音增强进行特定设计,这可能会在某些片段中留下噪声点或干扰原始音频的内容。

在本文工作中,首次尝试探索从粗到细的语音增强的全局和局部语音特征,并引入了上下文金字塔生成对抗网络(CP-GAN),其中包含一个密集连接的特征金字塔生成器和一个动态上下文粒度鉴别器,以更好地分层消除音频噪声。
大量实验表明,我们的 CP-GAN 有效地实现了最先进的语音增强结果,并提高了包括自动语音识别和说话人识别在内的更多高级语音任务的性能。

1、介绍

最近,生成对抗网络 (GAN) [5] 提出了一种新的语音增强范式 [6, 7],其中生成器的目标是合成与原始嘈杂语音的内容相匹配的令人信服的语音,并且可以使用鉴别器最小化干净语音信号和增强语音信号分布之间的差异。开创性的工作 SEGAN [6] 在以端到端方式接收原始音频数据时直接训练模型,并获得显着的性能提升。 已经探索了用于语音增强的其他 GAN 变体以构建不同的生成器结构 [8] 或利用其他对抗性损失 [7]。

然而,这些基于 GAN 的方法直接将图像合成任务的架构应用于语音增强,而无需对语音信号进行特定修改。例如,全局话语级上下文可以为整体语音解释提供良好的描述,而局部补丁级特征对噪声干扰更敏感。以前的工作没有很好地利用这种音频特性来改善语音增强。

在本文中,我们首先努力研究充分利用全局和局部语音特征来更好地分层消除音频噪声。我们引入了一个上下文金字塔生成对抗网络,用于从粗到细(全局到局部)的语音增强,称为 CP-GAN,它由一个密集连接的特征金字塔生成器和一个动态上下文粒度鉴别器组成。此外,之前的方法(如 SERGAN [7])使用判别器的固定长度输入来从全局角度引导生成器,这很可能会忽略整个音频的某些片段中的噪声点。为了应对这一挑战,我们提出了一个动态上下文粒度鉴别器模块,该模块包含一个以整个音频为输入的全局鉴别器和一个以随机比例音频片段为输入的局部鉴别器,它可以利用上下文的动态粒度来确定语音质量。

本文贡献总结:
1. 我们提出了一种新的上下文金字塔生成通用网络(CP-GAN)用于语音增强,由密集连接的特征金字塔生成器和动态上下文粒度鉴别器组成
2. 实验结果表明,我们的 CP-GAN 优于所有基于 GAN 的方法,并在语音增强方面达到了最先进的性能。
3. 为了进一步评估我们的方法,我们基于增强的音频进行了自动语音识别和说话人识别的实验,这也证明了我们用于语音增强的 CP-GAN 能够提升高级语音任务。

2、使用GAN进行语音增强

最近,生成对抗网络 (GAN) 在许多具有挑战性的任务中取得了巨大成功,例如图像翻译 [11]、超分辨率 [12] 和语音增强 [6]。GAN 中有两个重要组件:生成器 (G) 和鉴别器 (D),其中 G 的作用是将样本 z 从一个先验分布 Z 映射到另一个分布 X 的样本 x,D 旨在识别样本是否 是生成的。G 试图生成尽可能真实的样本来欺骗 D,而 D 则最大程度地拒绝欺骗。 通过不断玩这个极小极大游戏直到达到纳什均衡,G 可以生成相当逼真的样本 。

条件 GAN(CGAN)通常用于增强退化的语音。 在 CGAN 中,G 旨在通过最小化以下目标将嘈杂的语音信号 y 映射到相应的干净语音信号 x:
LossCGAN(G)=−Ey[logD(G(y),y)]+∥G(y)−x∥ Loss_{CGAN}(G) = -\mathbb{E} _y[logD(G(y),y)] + \|G(y)-x\| LossCGAN(G)=Ey[logD(G(y),y)]+G(y)x
D 的目标是通过最小化以下损失函数来区分真实数据和生成数据:
LossCGAN(D)=−ExlogD(x,y)−Ey[log(1−D(G(y),y)] Loss_{CGAN}(D) = -\mathbb{E}_x{logD(x,y)} - \mathbb{E}_y[log(1-D(G(y),y)] LossCGAN(D)=ExlogD(x,y)E

### DPFL-Nets:深层数字金字塔特征学习网络在多尺度变化检测中的应用 DPFL-Nets(Deep Pyramid Feature Learning Networks)旨在解决遥感影像和其他视觉数据中多尺度变化检测的问题。该方法通过构建深层次的特征金字塔,有效捕捉不同尺度的变化信息。 #### 特征金字塔的重要性 特征金字塔是识别系统中检测不同尺度目标的基本组成部分[^2]。传统的方法依赖于图像金字塔来处理多尺度问题,但这会带来巨大的计算开销和内存消耗。相比之下,基于深度卷积神经网络(DCNNs)的方法能够自然地形成一个多尺度的特征表示层次结构,从而减少了对外部图像金字塔的需求[^3]。 #### 架构设计 DPFL-Nets采用了类似于Feature Pyramid Network (FPN)的设计理念,即利用自顶向下的路径以及横向连接来增强低层特征图的空间分辨率并保留高层语义信息。具体来说: - **自底向上通路**:负责提取基础特征; - **自顶向下通路**:融合来自更深层的信息到较浅层; - **横向连接**:将相同大小的感受野内的高低级别特征相结合; 这种方法不仅提高了模型对于细粒度细节的理解力,而且使得整个框架可以更好地适应多种比例尺上的变化情况。 #### 应用实例 为了验证所提出的算法的有效性和优越性,研究人员通常会在公开的数据集上进行实验评估。例如,在COCO这样的标准测试平台上,使用类似Faster R-CNN的基础架构配合DPFL-Nets作为特征抽取模块,可以获得优于其他单一模型的结果,并且保持较高的实时性能(约每秒五帧)。 ```python import torch.nn as nn class DPFLNet(nn.Module): def __init__(self): super().__init__() self.backbone = Backbone() # 自定义骨干网络 self.top_down_pathway = TopDownPathway() self.lateral_connections = LateralConnections() def forward(self, x): bottom_up_features = self.backbone(x) top_down_features = self.top_down_pathway(bottom_up_features[-1]) fused_features = [] for i in range(len(bottom_up_features)): lateral_feature = self.lateral_connections[i](bottom_up_features[i]) if i != 0: upsampled_top_down = F.interpolate(top_down_features[-i], size=lateral_feature.shape[2:], mode='nearest') combined = lateral_feature + upsampled_top_down else: combined = lateral_feature fused_features.append(combined) return fused_features[::-1] ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

染阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值