码迷,mamicode.com
首页 > 其他好文 > 详细

来源自rnnoise,但非rnn

时间:2018-12-02 10:30:12      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:傅里叶变换   转码   弊端   地址   成功者   c语言   实现   邮件   1年   

很快又一年过去了。

自学音频算法也近一年了。

不记得有多少个日日夜夜,

半夜醒来,就为验证算法思路。

一次又一次地改进和突破。

傻逼样的坚持,必然得到牛逼样的结果。

这一年,主要扎音频算法上。

经常有网友联系我,几乎都会问我同一个问题。

我是怎么学习的?

说起来,其实很简单。

就是先设一个小目标,而且必须是一个具有挑战性的目标。

例如两年前从原来做安全,转去做图像算法。

当年定的目标就是实现一键修图的算法。

当然,也是做到了。

虽然后来也有改进过多次,但是一直没有整理出最后的版本。

有各种各样的原因,一直没时间梳理。

一键智能降噪,智能白平衡,智能曝光,同时也兼顾了算法性能。

没有具体实测,但是实时是肯定没有问题的。

一直有一个心愿,就是将这个算法梳理整理,

调优后,合入到视频播放器中,

打造一个简单而简约的视频播放器。

这个目标也渐渐靠近了,

近期一直在做ffmpeg的编码转码方面的工作。

预计明年吧,也许这个播放器就可以跟大家见面了。

而今天写的标题,主要是音频降噪这个方向。

这个目标也是今年年初给自己定下的目标。

就在昨天 2018.12.1,这个音频算法,算是第一版完成了。

这之中经历了很多很多,有很多细节。

真的有无数次尝试和改进优化。

把学习的音频算法的精髓,运用起来。

最后,达到预期目标。

这里要稍微说一下,

我是怎么做的。

其实说简单也简单,说难也难。

定了一个目标之后,

肯定是去找最传统的算法资料。

一个一个算法实现。

从中学习到每个算法的优缺点,缺点当然就要尝试改进。

优点就要考虑变通,让优点更加突出。

每次都是从一个算法延伸出很多待解决的困难,

然后发现一个问题,就找相关的资料,

尝试解决,一次又一次攻克问题。

这里面最重要的一点就是,

一定要坚持每一个算法都要自己动手实现一遍。

而且除了编解码外,不允许调用第三方库。

纯C实现。

这里有一个我这一年最难啃的点,就是傅里叶变换。

整整花了我2-3个月时间,将所有开源的傅里叶变换看一遍。

重新用c语言实现他们的思路,

最后产出自用的傅里叶变换算法。

这之间得到过一些朋友的帮助。

当然主要是讨论,迸发思路。

最重要的经验,莫过于,向成功者学习,向业内大牛学习。

不论是开源项目还是资料论文。

rnnoise这个开源项目,既然能得到很好的效果,

那就证明有一些算法思路是可行的。

只不过深度学习的方案,

特征需要依赖数据去训练。

弊端特别明显。

不采用深度学习的方法去做,肯定可以。

我一直坚信,只要有一个清晰的头脑,

不需要依赖数据提取特征,

理清楚算法的思想,也能达到一定的效果。

就跟做图像算法一样,事实证明我是对的。

毕竟曾经做过智能修图的算法,

有一定的成功经验。

在做音频算法的时候,

就少走了不少弯路,

基本上都不用写代码就能知道思路的可行性。

如果不是有图像算法的积累和坚持,

音频算法,

真的不好啃。

但是,我一直坚信,一切都会落到实处。

千万不要偷懒,你偷的懒最后还是要补回来的。

这个社会是很公平的,只有不努力的人才会觉得社会不公平。

当然现在音频降噪算法还没达到我的最终要求。

但是作为一个阶段性的成果而言,它已经达到了。

欢迎大家试用,然后给我提需求也好,

提bug也好,我会抽时间好好看看的。

音频降噪算法 linux示例程序:

https://files.cnblogs.com/files/cpuimage/denoise.zip

我这个降噪算法真的算是集传统算法优点,RNN深度学习算法思路于一身。

向rnnoise学了不少思路,致敬!

整个算法实现不到200行,

却同时拥有高速性能和不错的效果,

鲁棒性极佳,

内存占用也极低。

并且支持实时帧算法,支持多通道。

由此,大家也能看出来,我在这个算法上花了多少心血。

下层建筑搭好了。

之于图像,之于音频。

还有很多工作要做,好多方向的问题还没攻克。

路漫漫其修远兮。

近三年的杀毒软件开发经验,

不到2年图像算法经验,

不到1年的音频算法经验。

投过一些公司,

看了我的学历,

近些年的研究方向,

短而杂。

然后就说一句,

学的东西太杂,

经验不够,

深度不够。

人无完人,

确实不想发表太多评论,

我只做我自己。

国内太浮躁了,

从来没想过要跟谁去争什么。

也不想评论谁好谁坏。

是的,我本人开源的代码都很垃圾。

那又怎么样呢,你有你的评论和观点。

我有我的生活态度。

有些人翻垃圾桶的习惯真不好。

吃相太丑。

没那个兴趣和精力去做讨论和点评,

因为没有半点实际的意义。

更多的精力用来学习成长和分享。

独乐了不如众乐乐。

希望以此结交一些有志之士,一起玩耍。

吹吹水,唠唠嗑,打打吨。

巴普诺夫,很忙,很忙。

我还能睡,不要叫醒我。


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

有空回得快一些,没空可能就.......

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

来源自rnnoise,但非rnn

标签:傅里叶变换   转码   弊端   地址   成功者   c语言   实现   邮件   1年   

原文地址:https://www.cnblogs.com/cpuimage/p/10052022.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!