基于谱减法的声音去噪

转载请注明出处: http://xiahouzuoxin.github.io/notes/

谱减法模型

实际听觉环境中,肯定是含有噪声的,那掺杂有噪声的声音信号中原声音信号和噪声信号是如何体现的呢?一种普遍被使用的方法是:采集到的声音信号永远都是原信号与噪声信号的叠加,即

模型是信号的直接叠加,这就要满足:原信号与噪声信号不相关。其实有些情况下这个条件是不满足的,所以依然有很多其他的模型,如有人认为原信号和噪声信号是卷积的关系。当然,这些都是模型,还没有明确的理论证明那种是对的,反正哪种好用我们就捡谁。谱减法就是基于噪声的加法模型。

语音信号本身是非平稳过程,但假如取很短的一段(10~30ms),则具有短时平稳特性。因此,使用窗函数取含噪语音信号的一帧(N点)进行处理。信号叠加模型两边同时进行傅里叶变换,并取模,

则对原信号幅值的估计就可通过|S(k)|=|Y(k)|-|N(k)|求得,但仅这样存在2个问题:

  1. |S(k)|可能为负值,语音信号的FFT谱幅值怎么可能为负值呢
  2. |S(k)|中不包含相位信息,必需在取模时同时保留相位信息

因此,谱减法考虑到这两点,其流程如下:



图注:谱减法流程图

在语音增强的应用中,由于人耳对相位信息的感知不敏感,信号恢复时仍使用的相位信息为带噪信号的相位,相位信息保存在哪里呢?我们知道FFT的结果是复数,

?(w) 就是相位,具体一些,复数在直角坐标系上表示,



图注:关于保持相位不变

在上面的谱减法流程中,考虑噪声的高斯分布特性,用噪声的均值E[N(k)]替换N(k),考虑减完后可能为负值的情况,将值小于0的部分全部截断为0,这样处理虽然带来一定的方便性,但同时引入了新的噪声,习惯上称之为“音乐噪声”。通过FFT谱进行谱减法并不是最普遍的方法,更多情况下是用功率谱代替FFT谱。



图注:功率谱的谱减法

Matlab的谱减法实例

clc
clear all;

% 选择.wav音频文件
[fname,pname]=uigetfile(...
    {‘*.wav‘;‘*.*‘},...
    ‘Input wav File‘);
[x,fs] = audioread(fullfile(pname,fname));

x = x(1:8912,1);     % 如果是双声道,取单通道
N = length(x);       % 帧长
max_x = max(x);
noise_add = random(‘norm‘, 0, 0.1*max_x, [N,1]);

% 添加高斯噪声
y = x + noise_add;
noise_estimated = random(‘norm‘, 0, 0.1*max_x, [N,1]);
fft_y = fft(y);
fft_n = fft(noise_estimated);
E_noise = sum(abs(fft_n)) / N;
mag_y = abs(fft_y);
phase_y = angle(fft_y);   % 保留相位信息
mag_s = mag_y - E_noise;
mag_s(mag_s<0)=0;

% 恢复
fft_s = mag_s .* exp(1i.*phase_y);
s = ifft(fft_s);

subplot(311);plot(x);ylim([-1.5,1.5]);title(‘原始干净信号‘);
subplot(312);plot(y);ylim([-1.5,1.5]);title(‘加噪信号‘);
subplot(313);plot(real(s));ylim([-1.5,1.5]);title(‘谱减法去噪后信号‘);



图注:Matlab谱减法去噪

上图取了一段wav文件的脚步声,从第二张图到第3张图,有一些去噪效果,但信号本身也有衰减。谱减法应用范围还是很有限,在实际应用中,主要限制在环境噪声的特性上大部分情况不是简单的高斯特性,而且也很难满足噪声加法模型,另外,在谱减之后截断为0引入的新的音乐噪声至今没办法完全解决。但在高SNR的条件下,使用谱减法进行语音信号的增强确也能达到不错的效果。

参考文献

  1. Navneet Upadhyay etc. Spectral Subtractive-Type Algorithms for Enhancement of Noisy Speech: An Integrative Review. 2013.
  2. 林琴,张道信,吴小培. 一种基于改进谱减法的语音去噪新方法. 计算机技术与发展, 2007年7月.
  3. Marc Karam, Hasan F. Khazaal, Heshmat Aglan, Cliston Cole. Noise Removal in Speech Processing Using Spectral Subtraction. Journal of Signal and Information Processing, 2014, 5, 32-41.
时间: 2024-07-30 10:11:21

基于谱减法的声音去噪的相关文章

阅读《基于谱聚类的终端区飞行轨迹分析》笔记

一. 前言 由于参与的相关可视化项目进展到飞行轨迹的聚类算法部分,于是阅读了部分相关论文,并做了一些摘要. 论文均来源与中国知网,均将申明出处. 二. 论文出处 <基于谱聚类的终端区飞行轨迹分析> 马 勇,胡明华,顾 欣,袁立罡 ( 南京航空航天大学民航学院,江苏 南京 210016) 航空计算技术,第45卷,第5期,2015年9月 三. 论文笔记 1.摘要:为了实现智能化处理海量航班数据,精细描述终端区运行特性,研究了基于谱聚类的终端区飞行轨迹分析方法.在分析终端区航班飞行特点的基础上,提出

PyTorch实例:基于自编码器的图形去噪

去噪自编码器模拟人类视觉机制能够自动忍受图像的噪声来识别图片.自编码器的目标是要学习一个近似的恒等函数,使得输出近似等于输入.去噪自编码器采用随机的部分带噪输入来解决恒等函数问题,自编码器能够获得输入的良好表征,该表征使得自编码器能进行去噪或恢复. 下面是代码: #加载库和配置参数 #去噪自编码器 import torch import torch.nn as nn import torch.utils as utils from torch.autograd import Variable i

运动目标检测--改进的背景减法

一.概述 本文提出了一种改进的基于背景减法的运动目标检测算法,该算法能自适应地对背景进行初始化和实时更新,并能有效克服光照等外界条件变化对运动目标检测的影响. 二.算法介绍 基于背景减法的视频运动目标检测主要包括预处理.背景建模.目标检测和后处理四个步骤.本文的算法流程如图 1 所示,算法中的预处理是对每一帧图像都进行去噪和亮度归一化处理,以抑制光照突变和噪声的影响:背景建模则采用改进的均值滤波法自动初始化背景,并不断实时更新背景,以克服环境光照变化所产生的影响:目标检测是在背景减法的基础上采用

转:基于内容的视频分析与检索

摘要 文章简要介绍了从基于内容的视频分析与检索问题的提出到所涉及的关键技术以及目前研究状况,并简要介绍了现阶段在这方面的研究热点及以后要做的工作. 一.问题的提出: 互联网的出现给人类带来了很大的便利,特别是实现资源共享之后的互联网,但面对这浩如烟海的资源到底哪些是对自己有利用价值的呢?而90年代以来,多媒体技术和网络技术的突飞猛进,人们正快速的进入一个信息化社会.现代技术已能运用各种手段采集和生产大量各种类型的多媒体信息数据,出现了数字图书馆.数字博物馆.数字电影.可视电话.交互电视.会议电视

网格去噪算法(two-step framework)

基于两步法的网格去噪算法顾名思义包含两个步骤:首先对网格表面的法向进行滤波,得到调整后的网格法向信息,然后根据调整后的法向更新顶点坐标位置,下面介绍三篇该类型的文章. [Sun et al. 2007]文章首先介绍了当前法向滤波方法以及顶点坐标更新方法,然后提出自己的法向滤波方法和顶点坐标更新方法. 法向滤波方法: 1.均值滤波(mean filter):ni’ = normalize(Σj∈N(i) Aj·nj / Σj∈N(i) Aj),均值滤波会破坏网格的细节特征. 2.中值滤波(medi

流媒体 5——MPEG声音

1. 听觉系统的感知特性: MPEG声音的数据压缩和编码不是依据波形本身的相关性和模拟人的发音器官的特性,而是利用人的听觉系统的特性来达到压缩声音数据的目的,这种压缩编码称为感知声音编码. 许多科学工作者一直在研究听觉系统对声音的感知特性,下面介绍已经用在MPEG Audio压缩编码算法中的三个特性:响度.音高和掩蔽效应. 1.1. 对响度的感知 声音的响度就是声音的强弱.在物理上,声音的响度使用客观测量单位来度量,即dyn/cm2(达因/平方厘米)(声压)或W/cm2(瓦特/平方厘米)(声强)

解读人:刘佳维,Spectral Clustering Improves Label-Free Quanti?cation of Low-Abundant Proteins(谱图聚类改善了低丰度蛋白的无标记定量)

一. 概述:(用精炼的语言描述文章的整体思路及结果) 本文选择四个不同的数据集,分为基于谱图数计数和基于峰值强度计数的无标记定量两种情况,对谱图进行聚类算法分析,提高了低丰度蛋白的可检测性,并开发了可直接使用的聚类方法的PD节点. 二. 研究背景: 无标记量化已成为许多基于质谱的蛋白质组学实验中的常见做法.近年来,聚类方法可以改善蛋白质组学数据集的分析的结论已广泛被人们所接受.本文旨在利用光谱聚类推断额外的肽谱匹配,并提高数据集中的无标记定量蛋白质组学数据的质量,改善低丰度蛋白的定量结果,同时提

无标定量|有标定量|谱图计数|XIC|AMT数据库|RT对对齐|母离子|子离子|SILVER|SRM|iBAQ|APEX|差异蛋白筛选|MaxQuant|PANDA|C-HPP

生物医学大数据-蛋白质定量 现今肽段定量效率存在巨大差异.比如相同质量蛋白质,但是肽段和蛋白信号不均一,在物理条件一致时,仅有70%的重复率,并且当重复次数变多时,overlapping在变少. 无标定量法 方法一是针对二级色谱的谱图计数,即统计二级色谱的数量,数量越多则蛋白丰度越高,但相同丰度蛋白也有不同的二级色谱数,所以算法目的是减少噪音. 方法二是针对一级色谱的离子流色谱峰XIC,即每个肽段的离子流色谱峰,可以取同一个肽段不同时间点上的信号强度,连接成峰,通过求该曲线的曲线下面积获取曲线信

机器学习——谱聚类

谱聚类是基于谱图理论基础上的一种聚类方法,与传统的聚类方法相比: 具有在任意形状的样本空间上聚类并且收敛于全局最优解的优点. 通过对样本数据的拉普拉斯矩阵的特征向量进行聚类,从而达到对样本数据进行聚类的目的; 其本质是将聚类问题转换为图的最优划分问题,是一种点对聚类算法.谱聚类算法将数据集中的每个对象看做图的顶点V,将顶点间的相似度量化为相应顶点连接边E的权值w,这样就构成了一-个基于相似度的无向加权图G(V,E),于是聚类问题就转换为图的划分问题.基于图的最优划分规则就是子图内的相似度最大,子