Вопрос

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

А как я могу прочитать информацию, которую пользователь что-то говорит? В приложении 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 также предоставляет этот метод).

scroll top