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

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

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


person Lyubomyr Dutko    schedule 17.09.2009    source источник


Ответы (2)


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

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

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

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

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

person Donn Felker    schedule 17.09.2009
comment
что такое REQUEST_CODE_RECORD? - person Nikunj Patel; 21.10.2011
comment
Локальная константа, которую я использую, чтобы определить, какой результат я получаю от какого запроса в onActivityResult(). - person Donn Felker; 26.10.2011

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

Приложение Rehearsal Assistant сохраняет несжатый звук в файл WAV. Взгляните на RehearsalAudioRecord источник класса код.

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

person Stjepan Rajko    schedule 23.10.2009
comment
привет, Степан Райко, в приложении Rehearsal Assistant я не могу найти org.urbanstew.VolumeEnvelopeView, не могли бы вы сказать мне, где он? - person pengwang; 31.10.2010
comment
В Android также доступны другие кодеки. ком/ссылка/андроид/медиа/ - person Gaurav Agarwal; 14.02.2013