在人群区域录制音频时,如何使用 java 消除背景噪音?
当我使用 JavaSound 或第三方声音捕获工具捕获并将其记录到文件中时。然后读回文件进行修改,有什么办法可以用我的java应用程序消除“背景噪音”。
例如主要人物说话时的道路交通/空气噪音?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
消除背景噪音非常困难。如果是均匀噪声,例如飞机上的“白”噪声,则有算法可以消除这些频率分量。但是,如果噪声不均匀并且本质上与您的良好录音相似,例如人们在背景中说话、街道噪声等,那么将很难将它们分开。人们对此进行了大量的研究。
至少,您需要确切地知道什么是好的音频,什么是坏的音频。例如,如果您正在捕获语音,则可能有特殊的音频修复软件可用于将语音与其他声音分开,例如 http://www.izotope.com/products/audio/rx/。如果您以立体声录制语音,则可以通过分析语音的左/右位置,然后通过关联左和右来删除非语音成分来成功。
回复:mkb 的评论:
Removing background noise is very difficult. If it is uniform noise, such as the "white" noise on an airplane, there are algorithms to remove those frequency components. But if the noise is non-uniform and similar in nature as your good recording, e.g. people talking in the background, street noise, etc. it will be very difficult to separate them. There has been done a lot of research on this.
At the very least, you'll need to know exactly what the good audio is, and what is the bad audio. E.g. if you're capturing voice, there might be special audio repair software available to separate voice from other sounds, e.g. http://www.izotope.com/products/audio/rx/. If you're recording voice in stereo, you may be successful by analyzing the left/right position of the voice, and then removing non-voice components by correlating left and right.
Re: mkb's comments:
MARF(模块化音频识别框架)在他们的手册(通过使用两阶段:噪声轮廓阶段然后噪声消除阶段,类似于Audacity 的噪声消除)...
...但不幸的是它尚未实现。 :(
MARF (Modular Audio Recognition Framework) mentioned "Noise Removal" in their manual (by using 2-phase: noise profile phase then noise removal phase, similar to Audacity's Noise Removal)...
... but unfortunately it's not yet implemented. :(
一个非常简单的噪声门并不难实现。
A very simple noise gate is not difficult to implement.