抑制wav文件中的噪音

我正在使用wav文件作为输入来进行语音2文本转换的原型。我目前正在尝试使用几个ASR,例如Microsoft SAPi,Sphinx等。传递的音频wav文件包含来自背景的几种失真/噪音。 我尝试使用大胆来完全消除噪音,识别变得更好了。 噪音消除部分,我目前通过提供的Ui进行。 我的背景是java,我想用java实现相同的噪声消除部分。 我已经下载了Audacity源代码,我想知道哪种方法更好。 1)只需尝试对已存在的C ++方法进行jni调用。 2)使用傅立叶变换实现我自己的噪声门机制。 然而在后一种方法中,它更像是重新发明轮子。 是否有一个标准的api /算法已经在java中实现,它将接收wav文件输入并通过实现高/低通滤波器或任何其他方法来执行噪声消除。
我试图搜索“带有Java的数字音频”这本书,它似乎包含DSP算法,但它不可用。 任何有关采取的方法或apis可用的帮助都会非常有用。

你可以试试:

  1. 使用噪声门: http : //en.wikipedia.org/wiki/Noise_gate

  2. 使用语音定位 – >如果以立体声录制,声音通常在左右声道中相等。 一般来说,噪声在一个通道中比另一个通道更强。

  3. 阅读有关去除噪音的内容: http : //www.developer.com/java/other/article.php/3599661/Adaptive-Noise-Cancellation-using-Java.htm

  4. 使用低通滤波器: 如何使用java实现低通滤波器

  5. 如果您可以处理录制条件,请将一个麦克风放在扬声器后面,并从语音麦克风中移除此信号。