Как улучшить качество записи голоса для Android
У меня есть следующий код для записи аудио / голоса в Android:
MediaRecorder recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncodingBitRate(16);
recorder.setAudioSamplingRate(44100);
recorder.setOutputFile(Environment.getExternalStorageDirectory() + File.separator
+ Environment.DIRECTORY_DCIM + File.separator + "WAVES.amr");
try {
recorder.prepare();
recorder.start();
} catch (IOException e) {
Toast.makeText(topic_player_list_layout.this,"Unable to record",Toast.LENGTH_SHORT).show();
return;
}
Вопрос в том, что качество записанного аудиофайла не очень хорошее по сравнению с приложением для записи голоса Android по умолчанию или whatsApp/Telegram voice recorder
,
Что ты предлагаешь? Что я могу сделать, чтобы улучшить качество записанных голосов?
2 ответа
Вы должны увеличить свой audioEncodingBitRate
MediaRecorder recorder=new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setAudioEncodingBitRate(128000);
recorder.setAudioSamplingRate(44100);
Если мы посмотрим на документацию: https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat, то увидим, что доступно множество аудиоформатов. Ты используешь THREE_GPP
который не доставляет лучшего качества, насколько я знаю. Я хотел бы рассмотреть возможность использования MPEG_4
вместо. Также попробуйте использовать AAC
вместо AMR
в качестве аудио кодера.
Также посмотрите на этот ответ для получения дополнительной ссылки: /questions/21449208/kak-zapisat-audio-fajl-s-luchshim-kachestvom-v-android/21449217#21449217