Обработка RAW-аудиоданных от Android - PullRequest
0 голосов
/ 22 января 2020

Я борюсь с тех пор, как несколько дней пытался получить сырой аудиопоток с микрофона. Я пробую разные способы: низкоуровневый способ JNI с библиотекой Oboe (реализации AAudio и OpenSL ES) и классы AndroidRecord Java.

Проблема, с которой я сталкиваюсь, заключается в том, что я не могу извлекайте амплитуды около - / + 1,0, будучи уверенными в насыщении входа микрофона калиброванным чистым тоном с такой высокой амплитудой. Я думаю, что проблема в том, что я не могу эффективно отключить предварительную обработку сигнала из AndroidOS (Automati c Gain Control или Noise Cancelling).

AutomaticGainControl.create(id).setEnabled(false)

(не работает!)

Кроме того, кажется, что также невозможно отключить любой дополнительный микрофон, а не «выбранный» (это делается при выборе экземпляра setPreferredDevice на AudioRecord). Используется в качестве источника звука: необработанный, mi c, voice_recognition.

Есть ли что-либо, делающее это, или я что-то упустил?

Спасибо

1 Ответ

0 голосов
/ 20 февраля 2020

Какой источник звука вы используете для записи? VOICE_RECOGNITION или UNPROCESSED обязано не включать предварительную обработку по умолчанию (т. Е. См. https://source.android.com/compatibility/10/android-10-cdd#5_11_capture_for_unprocessed) и, следовательно, позволит вам проверить путь сигнала.

...