繁体   English   中英

在人群区域录制音频时,如何使用Java消除背景噪音?

[英]How can i remove background noise with java, while recording audio in a crowd zone?

当我使用JavaSound或第三方声音捕获工具捕获并将其记录到文件中时。 然后读回文件进行修改,有什么办法可以用我的Java应用程序消除“背景噪音”。

例如主要人物说话时的道路交通/空气噪音?

谢谢

消除背景噪声非常困难。 如果是统一噪声,例如飞机上的“白”噪声,则可以使用算法去除那些频率分量。 但是,如果噪声不是均匀的,并且本质上与您的良好录音类似,例如,背景中说话的人,街道噪声等,则很难将它们分开。 已经对此进行了大量研究。

至少,您需要确切地知道什么是好的音频,什么是坏的音频。 例如,如果您正在捕获语音,则可能有特殊的音频修复软件可用于将语音与其他声音分开,例如http://www.izotope.com/products/audio/rx/ 如果您要以立体声录制语音,则可以通过分析语音的左/右位置,然后通过左右关联来消除非语音成分,来获得成功。

回复:mkb的评论:

  1. 当(某些或所有频率分量的)电平低于阈值时,噪声门将使音频静音。 取决于背景噪声的水平,这可能会有所帮助,但是噪声门通常很烦人,因为只要有“好”音频存在,您就会听到背景,并且两者之间保持沉默。
  2. 一个低通滤波器可以消除高频成分(它可以让低频通过)! 因此,如果您的背景噪声频率很高,则可能会有所帮助。 简单的FIR或IIR低通滤波器易于实现。 但是,如果它具有高频成分,也会影响您的“优质”音频。

MARF(模块化音频识别框架)其手册中提到了“降噪”(通过使用两个阶段:降噪阶段然后是降噪阶段,类似于Audacity的降噪 )...

...但是很遗憾,它尚未实现。 :(

一个非常简单的噪声门并不难实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM