Noise aware learning for speech enhancement

本文探讨了在低信噪比环境下,利用噪声先验知识进行语音增强的方法。通过门控卷积生成对抗网络(GSEGAN)模型,学习噪声的先验知识以辅助纯净语音的预测。实验在VoiceBankCorpus上进行,对比了传统方法和基于噪声预测的深度神经网络模型在语音增强效果上的差异,表明了噪声预测对于改善低信噪比语音质量的重要性。


仅仅是学习一下思想,不需要重点关注,从实验结果来看,参考意义不大。

1. Noise prior knowledge learning for speech enhancement via gated convolutional generative adversarial network

1.1 摘要

当信噪比很低时,噪声占据主导地位,很难对纯净语音信号进行预测,本文提出了一种利用噪声先验知识的门控卷积神经网络SEGAN(Speech enhancement generative adversarial network),简写为GSEGAN。该模型不仅对纯净语音进行预测,而且学习噪声先验知识来辅助语音增强。门控CNN在捕获长期时序依赖方面具有比常规CNN更大的优势,本文在Voice Bank Corpus上对模型进行了评测。

1.2 语音增强生成对抗网络SEGAN

生成器G从一些已知的先验分布 p z ( z ) p_z(z) pz(z)中映射噪声向量z,生成伪样本G(z)。判别器用于对真实数据和伪样本记性分辨。生成器的损失函数为:
在这里插入图片描述
其中z表示服从正态分布N(0,1)的噪声样本,x表示带噪输入语音,y表示目标纯净语音。

1.3 本文提出的方法

在这里插入图片描述
图1所示为门控卷积网络的示意图。 H l H_l Hl表示第l层的输出。W和b表示核函数和偏置, σ \sigma σ表示sigmoid激活,*表示卷积操作, ⊗ \otimes 表示对应元素相乘。

网络模型如图2所示:
在这里插入图片描述
生成器网络为encoder-decoder架构,encoder部分的输入为
在这里插入图片描述
y表示纯净信号,n表示噪声信号,encoder的输出表示为:
在这里插入图片描述
在decoder阶段,引入新的噪声分量z,模型输出表示为:
在这里插入图片描述
z表示潜在向量,是服从正态分布N(0,1)的噪声样本。

先验噪声学习:
在这里插入图片描述
因此公式1对应的损失函数可以改写为:
在这里插入图片描述

1.4 实验分析

在这里插入图片描述

2. A noise prediction and time-domain subtraction approach to deep neural network based speech enhancement

2.1 简介

低信噪比情况下表现较差,本文提出了一种基于噪声预测的深度神经网络语音增强方法。基于噪声预测,提出了三种增强模型,并与传统的谱映射模型在seen和unseen 噪声上进行评测。

本文基于两点分析:

  1. 低信噪比情况下(信噪比低于0dB),噪声信号的能量占据主导地位,这时,对噪声的估计要比对纯净语音信号的估计更加容易。
  2. 使用带噪信号相位进行信号重建的问题,低信噪比情况下,带噪语音信号的相位主要受噪声信号影响,

2.2 system overview

在这里插入图片描述
图1所示为本文提出的语音增强方法的框图。展示了噪声预测模型的三种变体,基线模型是时域噪声谱减系统(time domain noise subtraction, TDS),如图1(a)所示。训练阶段,TDS网络的输入为带噪语音信号的对数幅度谱特征,网络学习从带噪信号特征到噪声信号的谱特征之间的映射关系。
在这里插入图片描述
增强阶段,输入数据为带噪语音的对数谱特征,网络预测每帧中添加的噪声的对数谱特征,预测的特征与带噪信号的相位一起重建噪声的时域信号。然后通过带噪信号减去噪声估计,获得语音信号。

第一种变体包含一个mask-based后处理模块,基于掩码处理的系统(MBP)和TDS系统在训练阶段是相同的,但是在增强阶段不同。MBP阶段,噪声谱估计用于计算T-F掩码:
在这里插入图片描述
N和Y分别对应噪声和带噪信号的功率谱密度。噪声谱后处理可表示为:
在这里插入图片描述
X表示带噪信号的复数谱。通过用带噪信号功率对估计的噪声信号功率进行归一化并强制统一的上限来计算掩码。

第二种变体是如图1(b)所示的谱减系统(SS),SS系统的训练阶段与TDS网络相同,增强阶段使用基于掩码的方法获得噪声谱,然后通过谱减法估计得到无噪的语音谱,最后使用带噪信号的相位和估计得到的语音信号谱恢复得到时域信号。

2.3 实验

传统方法使用的数据的信噪比从20dB到-5dB,间隔5dB。
本文方法使用的数据的信噪比从20dB到-10dB,间隔5dB。

在这里插入图片描述
LPS:log-power spectral 传统方法
NAT: noise-aware trained model
在这里插入图片描述

### Local-Global History-aware Contrastive Learning for Temporal Knowledge Graph Reasoning Implementation Code Local-Global History-aware Contrastive Learning (LG-HCL) 是一种针对时间知识图谱推理的方法,它通过结合局部和全局历史对比学习来捕捉事件的时间依赖性和非时间依赖性[^1]。该方法的核心在于利用对比学习框架,将历史信息与当前事件进行对比,从而增强模型对未观测到的未来事件的预测能力。LG-HCL 的实现通常包括以下几个关键模块: 1. **历史对比学习模块**:此模块负责从历史事件中提取特征,并通过对比学习机制区分哪些事件是与当前查询高度相关的。 2. **局部-全局交互模块**:此模块用于捕捉局部时间依赖性(如短期模式)和全局时间依赖性(如长期趋势)之间的关系。 3. **二进制分类器**:该模块用于标记相关实体,并辅助最终预测结果的生成。 以下是一个基于 PyTorch 的伪代码实现示例,展示了如何构建 LG-HCL 模型的核心部分: ```python import torch import torch.nn as nn import torch.optim as optim class LG_HCL(nn.Module): def __init__(self, num_entities, num_relations, embedding_dim, history_window): super(LG_HCL, self).__init__() self.entity_embeddings = nn.Embedding(num_entities, embedding_dim) self.relation_embeddings = nn.Embedding(num_relations, embedding_dim) self.history_encoder = nn.LSTM(embedding_dim, embedding_dim // 2, batch_first=True) self.global_contrastive = nn.Linear(embedding_dim, embedding_dim) self.local_contrastive = nn.Linear(embedding_dim, embedding_dim) self.classifier = nn.Linear(embedding_dim, 1) def forward(self, entities, relations, history): # Entity and relation embeddings entity_embeds = self.entity_embeddings(entities) relation_embeds = self.relation_embeddings(relations) # History encoding history_embeds = self.entity_embeddings(history) _, (history_state, _) = self.history_encoder(history_embeds) # Local and global contrastive learning local_features = self.local_contrastive(entity_embeds + relation_embeds) global_features = self.global_contrastive(history_state.squeeze(0)) # Contrastive loss computation contrastive_loss = torch.mean(torch.norm(local_features - global_features, dim=1)) # Binary classification for relevant entities combined_features = local_features + global_features scores = torch.sigmoid(self.classifier(combined_features)) return scores, contrastive_loss # Example usage num_entities = 10000 num_relations = 100 embedding_dim = 128 history_window = 10 model = LG_HCL(num_entities, num_relations, embedding_dim, history_window) optimizer = optim.Adam(model.parameters(), lr=0.001) # Dummy data entities = torch.randint(0, num_entities, (64,)) relations = torch.randint(0, num_relations, (64,)) history = torch.randint(0, num_entities, (64, history_window)) scores, contrastive_loss = model(entities, relations, history) loss = contrastive_loss # Add other losses if necessary optimizer.zero_grad() loss.backward() optimizer.step() ``` 上述代码实现了 LG-HCL 的基本框架,其中包含历史编码、局部和全局对比学习以及二进制分类器等模块。在实际应用中,可能需要根据具体任务调整模型结构和超参数。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Aidanmomo

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

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

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

打赏作者

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

抵扣说明:

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

余额充值