Есть ли поддержка обработки звука в библиотеке oboe для Android?

#android #android-ndk

#Android #андроид-ndk #android-ndk

Вопрос:

Я работаю над своим проектом приложения для Android, в котором я беру звук из окружающей среды и обрабатываю его, чтобы удалить шум и увеличить амплитуду сигнала.

Для этой цели я использую этот пример проекта для примеров проектов библиотеки oboe. Я получаю очень низкую задержку. Теперь я хочу знать, есть ли способ обработать ввод, чтобы увеличить амплитуду сигнала и уменьшить шум, как мы делаем в NoiseSuppressor, но родным способом.

Таким важным параметром для меня является низкая задержка ввода-вывода звука. Итак, если я смогу добиться усиления амплитуды и шумоподавления без добавления задержки, тогда это будет здорово. Пожалуйста, любезно сообщите мне ваши предложения по этой проблеме. Спасибо за чтение.

Комментарии:

1. вы видели это: github.com/igorski/MWEngine

2. @keepTrackOfYourStack Я рассмотрел эту библиотеку. Это так же, как oboe. Если я чего-то не упускаю, ни одна из этих библиотек не предоставляет какого-либо хорошего и прямого способа, такого как подавитель шума. На данный момент я рассматриваю возможность создания собственного фильтра для уменьшения шума. Но все же, если у кого-то есть лучшее решение, я обязательно рассмотрю его, поскольку предпочитаю использовать библиотеку, чем писать большой код, в котором могут быть ошибки.

3. да, я тоже не нашел конкретных примеров подавления шума в этой библиотеке… просто подумал, что я, возможно, пропустил это.

Ответ №1:

Нет, в oboe нет поддержки предварительной обработки / шумоподавления звука.

Вот их полная документация по этому поводу.

Но что вы можете сделать, так это noise suppressor Android SDK, предоставляющий его для вашего проекта.

Вот документы для начала работы с oboe, которые объясняют JNI, и вы можете использовать noise suppressor в java / Android sdk.

Комментарии:

1. Спасибо Ахил Сурапутам за ваше предложение. Но приложение, которое я разрабатываю, является приложением реального времени, поэтому дополнительное переключение с NDK на SDK и обратно на NDK добавит дополнительных накладных расходов. Причиной, по которой я выбрал NDK вместо использования media recorder, была задержка. В настоящее время я создаю свою собственную библиотеку, но если у вас есть лучшее предложение или библиотека, чем у меня, я готов его выслушать.

2. Android NDK работает на JNI. пожалуйста, обратитесь к developer.android.com/ndk/guides . Я цитирую это предложение в документе «NDK для компиляции кода C и C в собственную библиотеку и упаковки его в ваш APK с использованием Gradle, интегрированной системы сборки IDE. Затем ваш Java-код может вызывать функции в вашей собственной библиотеке через платформу Java Native Interface (JNI)».

3. Я также хотел бы уточнить, что использование NDK завершено, но не SDK. это связано с тем, что машинный код взаимодействует с Java.