Joint Time-Frequency and Time Domain Learning for Speech Enhancement


在这里插入图片描述

IJCAI-20

0. Abstract

对于单通道语音增强,基于时域的方法和基于时频域的方法各有优劣,本文提出了一种跨域框架,TFT-Net,该模型以时频谱作为输入,以时域波形信号作为输出。该方法利用了我们所掌握的关于频谱的知识,避免了T-F域方法存在的缺点。在TFT-Net中,我们设计了一个双路注意力块(DAB),以充分利用沿时间和频率轴的相关性。本文进一步发现,独立于样本的DAB(SDAB)在提高与语音质量和复杂性之间实现了良好的权衡。消融实验的结果表明,跨域设计和SDAB块对模型性能的提升帮助很大。

1. Introduction

在这里插入图片描述
典型的时频域方法如图1(a)所示,网络的输入特征是经过STFT变换后的二维时频谱,网络模型经过训练,预测一个时频掩码,最后通过iSTFT将时频谱变换回时域信号。T-F分析的理论基础是听觉模式,如频率和时间上的接近度,谐波性,以及常见的幅度和频率调制,这些都会在T-F谱图上显示出来。此类方法的局限性:(1)相位的估计问题(2)度量不匹配问题:在有监督的深度学习方法中,计算T-F谱图的MSE损失可能不会令输出语音的SDR最大化。

时域方法的提出是为了解决上述两个问题,典型的模型框架如图1(b)所示。此类方法存在的问题是:时域方法的分离网络部分无法利用到T-F谱图上已知的听觉模式。

本文提出的跨域模型框架如图1(c)所示,在TFT-Net中,时域信号首先经过STFT变换,转换为时频谱,然后利用时频域分离网络学习谱图中的听觉模式,获得谱图掩码后,通过可学习解码器恢复谱图。设计网络模型的过程中,我们发现T-F频谱的长期依赖关系对于提升降噪性能至关重要,为了解决高复杂度的问题,我们提出了双路径注意力快(DAB),并行利用沿时间和频率维度的相关性。We further discover that the attention maps for different samples resemble each other, indicating sample-independent correlation is sufficient. 因此,我们在网络模型中采用了sample-independent DABs(SDABs)来平衡性能和计算成本。

2. Related Work

  1. 时频域方法:T-F域方法的成功得益于T-F谱图中丰富的听觉模式。作者认为沿着时间轴和频率轴同时学习长距离依赖是有必要的,因为语音中存在谐波,有效的区分噪声需要进行长期的统计。此外,并行的学习两种依赖关系可以更好的融合学习到的特征。

  2. 时域方法:时域方法的提出是为了解决T-F域方法中存在的问题。虽然诸如Conv-TasNet等网络模型在语音分离任务中取得了较好的结果,但当我们用此类方法解决语音增强问题时,往往无法取得超过T-F域方法的性能。造成这种现象的可能原因是语音和噪声模式在T-F域表示上很容易区分,而基于时域的方法无法利用这种先验知识。

3. The Proposed Scheme

本文设计的网络模型主要瞄准两个目标:

  1. 充分利用T-F谱的先验知识,因此模型以时频谱特征作为输入,此外通过双路注意力块分别沿时间和频率轴捕获长期依赖关系。
  2. 模型要克服T-F域方法的缺点,因此模型使用跨域框架,直接利用时域指标监督网络模型训练。

3.1 The TFT-Net Framework

在这里插入图片描述
输入特征 S i n ∈ R T × F × 2 S^{in}\in \mathbb{R}^{T \times F \times 2} SinRT×F

低光增强与去模糊是计算机视觉领域中的重要研究方向,尤其在图像恢复和视频监控等方面具有广泛应用。Lednet 是一种针对低光条件下图像模糊问题设计的联合优化算法,它结合了低光增强与去模糊两个任务,在提升图像亮度的同时去除由于运动或相机抖动引起的模糊。 ### Lednet 的核心思想 Lednet 的设计基于深度学习框架,采用端到端的方式进行训练,其结构通常包含多个模块,分别处理低光增强和去模糊的任务。该网络通过共享特征提取层来利用两种任务之间的相关性,同时使用特定任务的解码器来分别优化输出结果。这种设计不仅提高了模型的效率,还增强了对复杂场景的适应能力 [^1]。 ### 网络架构特点 - **共享编码器**:Lednet 使用一个共享的编码器来提取输入图像的基础特征。这有助于模型捕捉低光增强和去模糊所需的共同信息。 - **任务专用解码器**:在共享编码的基础上,Lednet 设计了两个独立的解码器,一个用于生成增强后的图像,另一个用于去除模糊。这两个解码器可以根据各自任务的需求进行优化。 - **注意力机制**:为了更好地处理图像中的细节和结构信息,Lednet 引入了注意力机制,使得模型能够关注于图像中更重要的区域。 - **损失函数设计**:Lednet 通常采用多尺度感知损失、内容损失和对抗损失相结合的方式,以确保生成的图像既符合自然图像的统计特性,又具有良好的视觉效果 [^1]。 ### 实现细节 Lednet 的实现通常基于 PyTorch 或 TensorFlow 等主流深度学习框架。以下是一个简化的伪代码示例,展示了如何构建 Lednet 的基本结构: ```python import torch import torch.nn as nn class SharedEncoder(nn.Module): def __init__(self): super(SharedEncoder, self).__init__() # 定义共享编码器的层 self.conv1 = nn.Conv2d(3, 64, kernel_size=3, padding=1) self.relu = nn.ReLU() def forward(self, x): x = self.relu(self.conv1(x)) return x class EnhancementDecoder(nn.Module): def __init__(self): super(EnhancementDecoder, self).__init__() # 定义增强解码器的层 self.deconv1 = nn.ConvTranspose2d(64, 3, kernel_size=3, padding=1) def forward(self, x): x = self.deconv1(x) return x class DeblurringDecoder(nn.Module): def __init__(self): super(DeblurringDecoder, self).__init__() # 定义去模糊解码器的层 self.deconv1 = nn.ConvTranspose2d(64, 3, kernel_size=3, padding=1) def forward(self, x): x = self.deconv1(x) return x class Lednet(nn.Module): def __init__(self): super(Lednet, self).__init__() self.shared_encoder = SharedEncoder() self.enhancement_decoder = EnhancementDecoder() self.deblurring_decoder = DeblurringDecoder() def forward(self, x): features = self.shared_encoder(x) enhanced_image = self.enhancement_decoder(features) deblurred_image = self.deblurring_decoder(features) return enhanced_image, deblurred_image ``` ### 应用场景 Lednet 可广泛应用于多种实际场景中,例如: - **夜间摄影**:提高夜间拍摄照片的质量,使其更加清晰明亮。 - **视频监控**:在低光照条件下,如夜间或昏暗环境中,提升监控视频的可见度。 - **移动设备**:集成到智能手机或其他便携式设备中,提供即时的图像增强功能。 ### 总结 Lednet 是一种有效的低光增强与去模糊联合算法,通过深度学习的方法实现了高质量的图像恢复。它的成功应用表明,将多个相关任务结合起来进行联合优化,可以显著提升模型的整体性能。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Aidanmomo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值