目录

一. 噪声的分类:

加性噪声和乘性噪声:

稳态噪声和非稳态噪声:

二. 如何降噪

1.线性滤波器:

2.谱减法

3.基于统计模型的实时降噪算法

3.1 核心思想:

3.2 基于两个假设:

3.3 维纳滤波

WebRTC原生降噪算法的三个特点:

3.4 改进方法OMLSA & IMCRA

4.子空间算法

思想:

算法:

算法场景:

4.基于机器学习的降噪

5.其他降噪方法


一. 噪声的分类:

加性噪声和乘性噪声:

加性噪声:加性噪声和信号直接不相关,满足加性条件。由噪声和源信号相加得到的。  种类按照声源,比如风声、汽笛声、键盘敲击声等。

乘性噪声:噪声和信号是相关联的,比如房间的混响、信号的衰减、开普勒效应等。并且往往是从信道传输中产生,也叫信号噪声

稳态噪声和非稳态噪声:

从降噪的角度,按照噪声是否稳定。

稳态噪声:一直存在且响度、频率分布等特性不随时间变化或变化缓慢。  如手机、电脑之类的设备底噪、电脑散热架的风扇声等。

非稳态噪声:这些噪声等统计特性随时间变化   比如开关门等声音、门铃声、背景人声等。     非稳态噪声按照是否连续又分为 连续非稳态噪声(持续的背景人声)和瞬态噪声(敲击声)。

如下图,左稳态噪声右为非稳态噪声:

稳态噪声可以通过之前出现过的噪声进行建模抑制。非稳态噪声则是通过区分和正常语音的差异。另外噪声往往不是单独存在。

二. 如何降噪

1.线性滤波器:

【频段降噪、硬件】

线性滤波器处理方法算力要求较低,但需知道噪声会在哪个频段出现。  实际中会先做噪声出现的频段检测,再设计线性滤波器或滤波器组来消除噪声。

常见于音频采集硬件中,因为硬件厂商知道自己的硬件噪声特性。如电路设计中有些频段会有持续的电流声,则可以采用比如高通滤波器消除滴频噪声、用一些陷波滤波器消除某些频段的持续噪声。

2.谱减法

【非人声、减噪声谱、幅度谱减法、功率谱减法】

核心是先取一段非人声音频,记录下噪声的频谱能量,然后从音频频谱中减去这个噪声频谱能量。   适用于离线稳态噪声的降噪处理。

3.基于统计模型的实时降噪算法

3.1 核心思想:

用统计的方法估算出音频每个频点对应噪声和语言的能量。  (适用于相对平稳噪声)

3.2 基于两个假设:

  1. 噪声相对于人声在时频域上的声学统计特性更稳定。
  2. 所有的噪声都满足加性条件。

3.3 维纳滤波

采用最小均方误差准则设计的线性滤波器。

如实时频域维纳滤波器,目标是求当前帧每个频点的能量中有多少占比是语音。    只能通过后验的带噪信号 与 噪声的信噪比 估计前验的语音和含噪信号比值。

3.3.1维纳滤波的降噪原理:

从动态平滑的噪声模型得到噪声,根据带噪信号和噪声模型经过维纳滤波器进行降噪。

3.3.2 流程

  1. 短时傅里叶变换(加窗分帧),再快速傅里叶变换得到模,再求功率谱。
  2. 利用功率谱进行分位数噪声估计、语音存在概率、噪声更新以及噪声抑制系数计算。
  3. 得到的每个频点的抑制系数乘 带噪信号的频谱 得到降噪后的频谱。
  4. ISTFT得到降噪后的时域信号。

3.3.3 分位数噪声估计与维纳滤波降噪的特点

分位数噪声估计与维纳滤波的降噪算法逻辑背后的思考:

  1. 基于统计的降噪主要是对噪声进行建模(一般是稳态的噪声)。 且噪声模型迭代不能太快,比如WebRTC所用的分位数噪声估计是基于频域更新,更新周期大约是700ms。  当噪声发生了变化,模型可能需要500ms-4s的时间来收敛到新的噪声模型,并且会存在噪声残留。
  2. 降噪思想类似于谱减法,利用无人段进行噪声估计。
  3. 为区分人声与非人声采用VAD。  这里VAD通过人工提取的特征统计得出的语音存在概率进行判断。  特征包括,频谱平坦度、频谱差异度以及先验和后验信噪比的差异得出的似然因子。

3.3.4 Speech Probability的计算流程:

  1. 似然因子在频域计算log 均值得到 in dicator0;
  2. 根据频谱平坦度和差异度分别得到indicator1/2

语音概率通过三个指标的加权平均和似然因子进行更新。 实际更新zhong 概率较大时,噪声模型更新很缓慢,因为语音存在的概率大,反之更新快。

噪声模型是通过分位数据噪声估计得到。 比如有经验假设在噪声能量谱里,能量最小的1/4是稳态噪声。应该用这个部分更新初始噪声模型。

利用初始的噪声模型可以得到频谱平坦度、频谱差异度以及对数似然因子,进而得到语音存在概率。   有了语音存在概率就可以更新噪声模型。  再根据噪声模型和带噪信号,根据加性假设。干净语谱是通过带噪信号减去 噪声信号 或带噪信号乘。频谱增益。

WebRTC原生降噪算法的三个特点:

  1. 由于语音概率的判断降噪在有人声时不会进行噪声模型的更新。优点是不会对语音造成损伤比如不会吃字,但如果噪声在说话的时候发现变化,那么噪声无法被有效消除。
  2. 就MMSE的维纳滤波的弊端是对于浊音谐波间的噪声会存在残留。  噪声残留随着语音出现,即音乐噪声。
  3. 在低信噪比时,语音存在概率的判断会失效,会产生较大的语谱损伤。

3.4 改进方法OMLSA & IMCRA

OMLSA:是对人声估计,通过先验概率和先验信噪比SNR的估计 得到有声条件概率。

IMCRA:是对信号的最小值追踪,同样得到先验无声概率和先验信噪比估计,计算 条件有声概率,进而获取噪声谱的估计。

两者结合是对功率谱的最小点进行追踪。所以谐波中的音乐噪声由于明显小于谐波的能量就可以被去除,可以有效去除音乐噪声。

4.子空间算法

【NMF、耳机风噪、单独建模】

思想:

子空间算法重要是针对已知的噪声类型,量身定做一个降噪算法。  把噪声和人声投影到高纬度的空间,把不容易分离的信号变成高纬度可分的子空间,从而可分的信号。

算法:

NMF(非负矩阵分离)和字典法建模等

算法场景:

比如去除风噪,可以对风噪建模,可以有效去噪。但缺点很明显,每种噪声都得单独建模。

4.基于机器学习的降噪

基于数据驱动的方法,训练神经网络进行降噪。 特点是噪声鲁棒性好,能兼顾稳态、非稳态和瞬态噪声。  见下一讲

5.其他降噪方法

【麦克风阵列定向增强+单通道降噪

结合基于麦克风阵列的降噪: 采集信号用麦克风阵列,可以使用波束形成的方法先锁定声源方向进行收音,比如说话人的方向进行收音,这样采集的信号信噪比更高,再通过单通道降噪可以更有效。

参考文献:

WIP: https://patentimages.storage.googleapis.com/a4/d9/d6/f3e557a291b982/WO2012158156A1.pdf

05|音频降噪概述(1)一传统降噪方法相关推荐

  1. 06|音频降噪概述(2)一基于AI降噪

    目录 引言: 一. AI降噪模型等基础知识: 1.1 常见的模型结构: DNN CNN RNN 1.2 模型训练方法 步骤: 1.3 设计AI降噪模型: 步骤 二. 基于频域掩码的AI降噪模型 基于频 ...

  2. 图像降噪算法——非局部均值降噪算法

    图像降噪算法--非局部均值降噪算法 图像降噪算法--非局部均值降噪算法 1. 基本原理 2. C++代码实现 3. 结论 图像降噪算法--非局部均值降噪算法 1. 基本原理 非局部均值降噪算法(Non ...

  3. 哪款蓝牙耳机降噪好?值得推荐的降噪蓝牙耳机!

    针对真无线降噪耳机的推荐,想要选择一款比较出色的耳机,其实是比较简单的,主要由于目前市面上可选择的耳机目前只要那么几款大家所熟知的~接下来笔者就以实际感受为大家推荐几款真无线降噪蓝牙耳机 1.NANK ...

  4. 语音降噪中“音乐噪声“的处理方法

    语音降噪中"音乐噪声"的处理方法 本文描述了一种增强被宽带噪声破坏的语音.方法是基于谱噪声相减方法.原始方法需要减去估计值来自语音功率的噪声功率谱将负差设置为零,将新的功率谱与原始 ...

  5. 统计信号处理_声学前端:深度学习算法和传统信号处理方法各有千秋

    在十年前,声学前端(音频前处理)还主要是基于传统信号处理的方法,在很长的一段时间里,研究者们建立了一整套涵盖单通道和多通道的语音增强.语音分离.回声消除.声源定位.波束形成等技术,这些技术许多都是基于 ...

  6. 音频转文字怎么转?这些方法值得一试

      在日常生活中我们经常会遇到要把音频转换成文字的情况,很多小伙伴还在使用传统的方法,一边播放一边记录.虽然这样能解决问题,但是需要花费很多时间,效率特别低.我们不妨尝试使用一些转换软件,这样就能节省 ...

  7. 【数据聚类】第六章第一节:层次聚类算法概述、聚合和分裂方法

    文章目录 一:层次聚类算法概述 (1)层次聚类 (2)聚合和分裂各自研究的重点 (3)优缺点 二:聚合方法 (1)Single-link方法 A:概述 B:例子 (2)Complete link方法 ...

  8. 如何用C语言编写wav读取函数,C++读取WAV音频文件的头部数据的实现方法

    C++读取WAV音频文件的头部数据的实现方法 前言: 在这里分享一下自己的心得,希望和大家一起分享技术,如果有什么不足,还请大家指正.写出这篇目的,就是希望大家一起成长,我也相信技术之间没有高低,只有 ...

  9. 【论文解读】解读TRPO论文,深度强化学习结合传统优化方法

    导读:本论文由Berkeley 的几位大神于2015年发表于 JMLR(Journal of Machine Learning Research).深度强化学习算法例如DQN或者PG(Policy G ...

  10. 设计有三个窗口的框架结构网页_技术周刊丨钢框架结构直接分析设计与传统设计方法对比研究——恒荷载作用结果对比...

    ▲ 点击上方蓝字,关注SAUSAGE非线性!作者:侯晓武 丨 职位:技术经理 仁荷大学(韩)建筑工学博士 曾任建筑软件(MIDAS Gen/Building)技术负责人 拥有11年建筑软件技术支持经验 ...

最新文章

  1. 2018-3-19李宏毅机器学习笔记八--HomeWork1-PM2.5 Predicition
  2. FFmpeg Basic学习笔记(4)
  3. android listview item长按事件,ListView的点击事件,长按事件,数据刷新
  4. Python学习系列day2-python基础
  5. BOOST内存管理(二) --- boost::pool
  6. 判断用户的参数(条件测试语句)
  7. linux 识别文件类型,技术|Linux 中 7 个判断文件系统类型的方法
  8. 演练 小说排行榜 0912
  9. 大剧院自助签证_剧院集团通过像开放组织一样取得成功
  10. Bailian3247 回文素数【素数+回文】(POJ NOI0113-11)
  11. 如何在 Mac 上管理用于锁定备忘录的密码?
  12. iChart--组件定制
  13. eclipse php 代码补全,phpeclipse代码提示
  14. python控制51单片机的红绿灯_基于51单片机的交通灯控制设计
  15. mysql 百万级数据库优化方案
  16. python 如何调试uc浏览器_UC浏览器开发者工具
  17. 分享:如何分解质因数之python实现(例如90分解质因数:90=2x3x3x5)
  18. 人工智能实战2019第七次作业(OpenPAI) 16721088 焦宇恒
  19. 动视暴雪宣布裁员约8%  780多名员工将被裁-千氪
  20. 【剖析】上拉电阻和下拉电阻原理及其作用

热门文章

  1. 使用 docker-pan 一键搭建可离线磁力种子的私有云盘
  2. 如何用程序哄老婆开心
  3. Hbuilder无法正常运行微信小程序模拟器到指定页面为启动页
  4. 不同云服务商之间域名转出转入(阿里云 转出至 腾讯云)
  5. 单片机实验一 LED灯实验
  6. 06-Sentinel限流熔断应用实践
  7. HTML基础(一)HTML标签
  8. 7天刷完剑指offer(一)
  9. 辞职文案火了,程序员的辞职理由要命不要钱。
  10. 谷歌翻译函数C#代码实现