专栏首页算法+一种简单高效的音频降噪算法示例(附完整C代码)
原创

一种简单高效的音频降噪算法示例(附完整C代码)

近期比较忙,

抽空出来5.1开源献礼.

但凡学习音频降噪算法的朋友,肯定看过一个算法.

<<语音增强-理论与实践>> 中提及到基于对数的最小均方误差的降噪算法,也就是LogMMSE.

资料见:

<<Speech enhancement using a minimum  mean-square error log-spectral amplitude estimator.>> 

-----Ephraim, Y. and Malah, D. (1985)

之前也是花了不少时间去查阅降噪相关的思路,

但是最终发现前人的思路,有很多局限性或者说弊端.

一般都是提出一种数学先验的假设,换句话说,在paper里讲点故事.

然后最终,故事的结局都是it works.

但实际应用却差强人意.

 而一般的图像降噪流程,见图:

也就是,一个降噪算法的基本组成部分有:

1.噪声提取(用于提取噪声)

2.静音检测(一般检测是否为人声,减少误判)

3.数学先验假设(用于降噪)

当然最小均方误差的降噪思路,用在图像上一样适用.

但是,大多数音频降噪算法仅仅适配某种特殊情况(特例).

工程化应用时,会发现,

一个坑接着一个坑,

然后不得不妥协.勉强能用就行,

要求太高不现实.

而当年看了logMMSE的思路之后,就很清楚地明白,

这思路是可行的,但是特别鸡肋.

话说如此,但是对作为学习信号处理,音频降噪来说,

这个是一个特别好的入门示例算法.

至少经过实践之后,你心中能有了个大概的印象.

音频降噪是一个什么样的工作,会碰到什么样的难点.

 logmmse的各种实现,在github搜索一下,都能找得到.

这里,并不打算解析logmmse的算法细节.

只是分享一段非常简单有效的类似logmmse算法的c语言实现.

说是类似,不如说,

思路来自logmmse,只是更加的简洁明了.(自我以为)

自己动手,丰衣足食.

稍微改进一下,可以进一步适配各种环境和情况,

当然也不是那么容易,

例如:

+vad.

+延时记忆机制诸如此类

代码基于本人最近开源的基于傅里叶变换的重采样算法.

https://github.com/cpuimage/FFTResampler

题外话:

在之前为了找各种重采样算法,费心死了.

所以,写一个通用简洁的重采样算法是我的一个待办事项.

重采样算法算是暂时结束了.

https://github.com/cpuimage/resampler

https://github.com/cpuimage/FFTResampler

这两个平时应该是够用了,

下一步要继续做的话,

可能就是音频超分辨率算法了.

除了懒,没别的,能复用就复用了.

回到主题上,这个简易的算法用来去除平稳噪声或底噪,是非常合适的,

当然当前开源实现的算法,是非实时的,

当然稍微改进下可以应用在实时的环境.

值5.1放假之际,开源出来,给大家参考学习.

权当抛砖引玉,一起玩耍.

项目地址:

https://github.com/cpuimage/SimpleAudioDenoise

若有其他相关问题或者需求也可以邮件联系俺探讨。

当然一些基础性的问题,一概忽略.

有时间给我写邮件,不如多看点资料书籍.

邮箱地址是:  gaozhihan@vip.qq.com

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 音频算法之我思

    下载地址:https://files.cnblogs.com/files/cpuimage/denoise.zip

    cpuimage
  • 音乐旋律提取算法 附可执行demo

    https://github.com/cpuimage/AudioFingerprinter

    cpuimage
  • 集 降噪 美颜 虚化 增强 为一体的极速图像润色算法 附Demo程序

    在2015年8月份的时候,决心学习图像算法。 几乎把当时市面上的图像算法相关书籍都看了一遍, 资金有限,采取淘宝买二手书,长期驻留深圳图书馆的做法, 进度总是很...

    cpuimage
  • 算法妙应用-算法的复杂度

    对于任何一个程序来说,都可以从三个方面进行分析,分别是 输入、处理、输出,也即 IPO(Input、Process、Output),这种分析方法对硬件和软件程序...

    Wizey
  • 独家 | 一文读懂优化算法

    一、前言 模拟退火、遗传算法、禁忌搜索、神经网络等在解决全局最优解的问题上有着独到的优点,其中共同特点就是模拟了自然过程。模拟退火思路源于物理学中固体物质的退火...

    数据派THU
  • 算法眼中的世界是什么样子?他们用一些彩色方块画了出来

    安妮 编译自 Wired 量子位 出品 | 公众号 QbitAI 从数字助手、加密数字货币到自动驾驶汽车,算法在生活中无处不在。 这是个抽象的概念,对于不了解人...

    量子位
  • 【调查】数据科学家最常用的十种算法和方法

    最近KDnuggets针对数据科学家最常使用的算法作了一个调查,有一些意外的发现,包括最学术向的算法和最产业向的算法。 下面是调查结果,总调查人数是 844 人...

    新智元
  • 机器学习对抗案例 | 愚弄Google图像识别算法

    2018年CES在美国拉斯维加斯召开,站在风口浪尖上的科技企业纷纷出动,在会场各显神通地展示自己的科技产品和各种智能算法。近年来,人工智能的浪潮不断拍打着 IT...

    FB客服
  • 这些算法可视化网站助你轻松学算法

    无疑,数据结构与算法学习最大的难点之一就是如何在脑中形象化其抽象的逻辑步骤。而图像在很多时候能够大大帮助我们理解其对应的抽象化的东西,而如果这个图像还是我们自己...

    编程珠玑
  • 最新出炉——数据科学家最常使用的十大算法

    导读:本文来自于KDnuggets所做的十大算法调查,对于数据工程师常用的算法进行排名,并对其在2011-2016年间的变化进行介绍。 基于调查,KDnugge...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券