Улучшить качество записи звука Android?
-
08-07-2019 - |
Вопрос
Есть ли способ записать звук в высоком качестве?
А как я могу прочитать информацию, которую пользователь что-то говорит? В приложении Audio Recording вы можете увидеть такой индикатор (я не знаю правильное название для него).
Решение
Для записи и мониторинга: вы можете использовать запись звука. Вот фрагмент кода:
Intent recordIntent = new Intent(
MediaStore.Audio.Media.RECORD_SOUND_ACTION);
startActivityForResult(recordIntent, REQUEST_CODE_RECORD);
Для идеального рабочего примера записи звука, включающего монитор ввода, загрузите проект Ringdroid с открытым исходным кодом: https://github.com/google/ringdroid р>
Посмотрите на скриншоты, и вы увидите монитор. Р>
Для повышения качества звука вам понадобится более качественный микрофон. Встроенный микрофон может захватывать только так много (что не так хорошо). Снова, посмотрите на проект ringdroid, почерпните некоторую информацию оттуда. В этот момент вы можете реализовать некоторые процедуры нормализации и усиления для улучшения звука. Р>
Другие советы
В настоящее время основной причиной плохой записи звука на Android является кодек, используемый классом MediaRecorder (кодек AMR-NB). Однако вы можете получить доступ к несжатому аудио через класс AudioRecord и напрямую записать его в файл.
приложение Rehearsal Assistant делает это для сохранения несжатого звука в файл WAV - взгляните на исходный код класса.
Класс RehearsalAudioRecord также предоставляет метод getMaxAmplitude, который можно использовать для определения максимального уровня звука с момента последнего вызова метода (MediaRecorder также предоставляет этот метод).