Есть ли способ записать звук в высоком качестве?
И как я могу прочитать информацию о том, что пользователь что-то говорит? В приложении «Запись звука» есть такой индикатор (не знаю, как правильно его назвать).
Есть ли способ записать звук в высоком качестве?
И как я могу прочитать информацию о том, что пользователь что-то говорит? В приложении «Запись звука» есть такой индикатор (не знаю, как правильно его назвать).
Для записи и мониторинга: вы можете использовать функцию записи звука. Вот фрагмент кода:
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 источник класса код.
Класс RehearsalAudioRecord также предоставляет метод getMaxAmplitude, который можно использовать для определения максимального уровня звука с момента последнего вызова этого метода (MediaRecorder также предоставляет этот метод).