我正在使用wav文件作为输入进行语音2文本转换的原型。我目前正在试验几个ASR,例如Microsoft SAPi,Sphinx等。传递的音频wav文件包含几个失真/噪音从背景。我尝试使用大胆来完全消除噪音,识别变得更好了。噪音去除部分,我目前通过提供的Ui进行。我的背景是java,我想用java实现相同的噪声消除部分。我已经下载了Audacity源代码,我想知道哪种方法更好。 1)只需尝试对已存在的C ++方法进行jni调用。 2)使用傅立叶变换实现我自己的噪声门机制。然而在后一种方法中,它更像是重新发明轮子。是否有一个标准的api /算法已经在java中实现,它将接收wav文件输入并通过实现高/低通滤波器或任何其他方法来执行噪声消除。
我试图搜索“带有Java的数字音频”这本书,它似乎包含DSP算法,但它不可用。任何有关采取的方法或apis可用的帮助都会非常有帮助。
答案 0 :(得分:7)
您可以尝试:
使用语音定位 - >如果以立体声录制,声音通常在左右声道中相等。一般来说,噪声在一个通道中比另一个通道更强。
阅读有关去除噪音的内容:http://www.developer.com/java/other/article.php/3599661/Adaptive-Noise-Cancellation-using-Java.htm
如果您可以处理录音条件,请将一个麦克风放在扬声器后面,然后从语音麦克风中移除此信号。