Подтвердить что ты не робот

Улучшите качество записи звука Android?

есть ли возможность сделать запись звука с более высоким качеством?

И как я могу прочитать информацию о том, что Пользователь что-то говорит? В приложении "Аудиозапись" вы можете увидеть такой индикатор (я не знаю его правильного имени).

Спасибо.

4b9b3361

Ответ 1

Для записи и мониторинга: вы можете использовать активность диктофона. Вот фрагмент кода:

Intent recordIntent = new Intent(
                MediaStore.Audio.Media.RECORD_SOUND_ACTION);
            startActivityForResult(recordIntent, REQUEST_CODE_RECORD);

Для идеального рабочего примера записи звука, который включает входной монитор, загрузите проект Ringdroid с открытым исходным кодом: https://github.com/google/ringdroid

Посмотрите на скриншоты, и вы увидите монитор.

Для повышения качества звука вам понадобится лучший микрофон. Встроенный микрофон может захватывать столько (что не так хорошо). Опять же, посмотрите на проект ringdroid, подберите некоторую информацию оттуда. В этот момент вы можете реализовать некоторые процедуры нормализации и усиления для улучшения звука.

Ответ 2

В настоящий момент большой причиной плохой записи звука на Android является кодек, используемый классом MediaRecorder (кодек AMR-NB). Однако вы можете получить доступ к несжатому аудио через класс AudioRecord и записать его в файл напрямую.

приложение для реферирующего помощника позволяет сохранить несжатый звук в WAV файл - посмотрите RehearsalAudioRecord исходный код.

Класс RehearsalAudioRecord также предоставляет метод getMaxAmplitude, который вы можете использовать для определения максимального уровня звука с момента последнего вызова метода (MediaRecorder также предоставляет этот метод).