音频算法之我思
2019-08-30

很长一段时间,扎根在音频领域,各种玩耍。

渐渐上了轨道。

一切的一切仅仅因为相信自己能做好,也必须做好。

不懂就去查,去问,去找资料,去找视频。

渐渐的,我开始懂了,也慢慢有了系统性的理解。

随后经常能发散思维。

最近,

在自动增益,

音频降噪,

语速检测,

相位谱重建各个算法之间穿梭。

慢慢有所产出,有所突破。

特别是在音频降噪领域,

不能算质的飞跃,

但是确实摸到了一些规律。

而写完相位谱重建算法之后,

我也突发奇想,

相位谱既然能通过高斯分布的思路进行重建,

那是不是可以说明,

高斯分布可以用来作为音频算法的信号标准化,归一化。

这是一个值得去研究的方向,

音频信号的高斯归一化。

前面面试了一家公司的时候,

提到说音频通过能量谱可以重建相位谱,

那面试官好像认定我是傻子,

就好像觉得我是在胡扯一样。

真的懒得解释,

实操是验证真理的唯一标准。

而语速检测,

其实有点类似音乐的节拍检测,

只不过一定要去除空白帧,

因为空白从另一个角度来说,

可以认为是停顿,或者说换气。

所以语速检测的思路也可以基本确认。

而自动增益方面,

找资料的时候发现一个神奇的标准,EBU R128,

这里就不科普展开了,感兴趣的可以维基一下。

这个算法在FFMPEG里面有很详细的实现,

抠出来算法代码,直接应用,

效果不要太好。

近期,终于回到广东,

在南京接受了太多的负能量,回来之后真的有获得新生的感觉。

世界顿时和平。

相对于深度学习而言,

我还是比较坚持采用传统算法去实现降噪增益等处理,

原因也很简单,音频时效性特别重要。

采用深度学习很多时候要做大量的工作才能保证时效性了,

从软件,硬件的角度来说,音频不比图像好处理。

自然挑战也多了起来,

不过庆幸的是,

在傻逼一样的坚持之后,

不采用深度学习方案的音频降噪,

终于达到近乎可以商用的程度了。

当然最近也在思考算法的下一步优化方案。

继续验证思路,继续改良。

这里放出linux系统下的可执行文件,供大家评测。

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

解压后采用命令行: ./denoise sample.wav 

执行后生成降噪后的文件sample_out.wav

现在是自适应降噪强度,

降噪后自动做增益,

后续计划加上降噪的强度控制。

噪声样本自行寻觅,

比较好找。就不提供了。

在音频这条路上,

如果我走偏了,大家记得把我拉回来。

 

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

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