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

标签 java audio microphone javasound

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

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

谢谢

最佳答案

去除背景噪音非常困难。如果它是均匀的噪声,例如飞机上的“白”噪声,则有一些算法可以去除这些频率分量。但是,如果噪音不均匀且本质上与您的良好录音相似,例如人们在后台说话、街道噪音等,很难将它们分开。对此已有大量研究。

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

回复:mkb 的评论:

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

关于java - 在人群区域录制音频时,如何使用 Java 消除背景噪音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6916779/

相关文章:

java - LibSVM.classifyInstance(实例实例) 抛出 java.lang.NullPointerException

flash - Flash:是否可以录制用户语音并对其进行操作?

java - 如何使用 java 声音 API 从麦克风捕获声音?

java - mule的 'BlockingTransferInputStream'是什么?我的实际有效负载在哪里?

java - 如何检查Java中当前正在运行的线程数?

java - Wildfly 快速入门 不可解析的导入 POM : Failure to find org. wildfly :wildfly-parent:pom:20. 0.0.Beta1-SNAPSHOT

c# - 在C#中显示图像和播放声音

c++ - 在 iOS 应用程序中从 C++ 通知 UI

linux - Linux将音频文件传输到麦克风输入

unity3d - 多声道音频输入统一