Эхоподавление: микрофон как голосовой вход, MP3 как выход
В настоящее время я работаю над приложением, которое наблюдает за входом микрофона, но в то же время должно иметь возможность воспроизводить определенную песню MP3 через громкоговорители. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, как только я воспроизводю MP3, микрофон, конечно, распознает это и возвращает мне намного больше данных из-за увеличенной громкости.
Мне нужно отменить эхо MP3, я пробовал собственный AcousticEchoCanceller от Android, но он не работал, поскольку он даже не доступен ни на моем Nexus 7, ни на моем Nexus 4. Теперь я пришел к speex, но я не очень знаком с NDK, и я не знаю, как встроить это в мой существующий код.
Итак, я нашел это: https://github.com/mutantbob/ndk-speex NDK-Speex с классами-оболочками Java, но, к сожалению, классы, по-видимому, предназначены только для кодирования и декодирования звука в формате Speex, который, похоже, не отменяет никакого эха. Я читал о расширении Java-оболочки для добавления эхоподавления, но я не могу найти правильную начальную точку, может кто-нибудь указать мне правильное направление? Или я должен выбрать другой путь к своей цели?
1 ответ
Есть много хороших примеров того, как использовать NDK. Ознакомившись с NDK, вы можете интегрировать любое программное обеспечение эхоподавления, обеспечивающее наилучшее качество звука для вашего приложения.