我正在尝试使语音识别“忽略”它自己的输出(使用文本到语音系统),因此想要使用回声消除器。我实际上“知道”tts输出,我甚至可以将它存储为波形文件(或pcm或其他),因此用于未知输入的回声消除的整个“估计事物”不是必需的。但是我真的不知道如何开始。我读到,“speex”对此目的很有用,但根据其文档,它不适用于2个独立的声卡。简而言之:任何想法?这是我目前的设置:
有输入麦克风和输出扬声器。麦克风非常靠近输出,需要留在那里。麦克风使用usb-soundcard插入,扬声器连接到普通的车载声音设备。
OS是fedora(12),应用程序是用Java编写的......
感谢任何帮助;)
答案 0 :(得分:1)
我附上了两篇甚至包含源代码示例的论文。它们是用C语言编写的,但可以通过JNI在Java中使用或将其转换为Java代码。
1) Echo cancelation Thesis is the one implemented. Look into section 3.3.2 Normalized Least Mean Square (NLMS) Algorithm. That is the code implemented
2) Acoustic Echo paper has the same thing with the code in the appendix. But it is slightly differing from what is already there