эхоподавление для известных источников звука (Java + Linux) - PullRequest
1 голос
/ 22 февраля 2011

Я пытаюсь заставить распознавание речи «игнорировать» его собственный вывод (используя систему преобразования текста в речь) и поэтому хочу использовать эхоподавитель.Я на самом деле «знаю» вывод tts, и я даже могу сохранить его как волновой файл (или pcm или что-то еще), поэтому вся «оценочная вещь», используемая с эхоподавлением для неизвестного ввода, не нужна.Однако я не знаю, с чего начать.Я читал, что "speex" был полезен для этой цели, но согласно его документации он не работает с 2 независимыми звуковыми картами.Короче говоря: есть идеи?Вот мои текущие настройки:

получил микрофон для входа и динамики для вывода.Микрофон довольно близок к выходу и должен оставаться там.микрофон подключен с помощью USB-звуковой карты, динамики подключены к обычному встроенному звуковому устройству.

ОС - это fedora (12), приложение должно быть написано на Java ...

любая помощь приветствуется;)

1 Ответ

1 голос
/ 22 февраля 2011

Я пытался сделать то же самое.Я использовал Speex безуспешно.Я на самом деле просто написал свой собственный алгоритм подавления акустического эха, который работал довольно хорошоЭто было не так сложно и позволило мне настроить его под свои нужды.Эхоподавление - одна из тех проблем в цифровой обработке сигналов, которая возникает снова и снова, поэтому есть много источников информации.

Я приложил две статьи, которые даже включают примеры источников.Они написаны на C, но могут использоваться в Java через JNI или преобразовывать его в код 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

...