1

我正在尝试使语音识别“忽略”它自己的输出(使用文本到语音系统),因此想使用回声消除器。我实际上“知道” tts 输出,我什至可以将它存储为波形文件(或 pcm 或其他),因此不需要用于未知输入的回声消除的整个“估计事物”。但是我真的不知道如何开始。我读到,“speex”对此很有用,但根据其文档,它不适用于 2 个独立的声卡。简而言之:有什么想法吗?这是我当前的设置:

有一个用于输入的麦克风和一个用于输出的扬声器。麦克风非常靠近输出,需要保留在那里。使用 USB 声卡插入麦克风,扬声器连接到普通的板载声音设备。

操作系统是fedora(12),应用程序是用Java编写的......

任何帮助表示赞赏;)

4

1 回答 1

1

我试图做同样的事情。我没有成功使用 speex。实际上,我只是编写了自己的声学回声消除算法,效果很好。它并没有那么复杂,让我可以根据自己的规范对其进行调整。回声消除是数字信号处理中一次又一次出现的问题之一,因此有很多信息来源。

我附上了两篇甚至包括源示例的论文。它们是用 C 编写的,但可以通过 JNI 在 Java 中使用或将其转换为 Java 代码。

论文 1

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

2) Acoustic Echo paper has the same thing with the code in the appendix. But it is slightly differing from what is already there

于 2011-02-22T17:13:58.010 回答