Я создаю приложение для анализа качества голоса. Пользователь делает запись голоса, которая сохраняется на устройстве и затем отправляется на сервер для анализа.
Недавно я заметил, что все аудиозаписи с Samsung Galaxy S6 (G920-F) намного шумнее, чем у других протестированных устройств Android.Мне нужно поддерживать Galaxy S6, так как у меня много пользователей на этом телефоне.
Я пытался исправить проблему, которую я пытался протестировать MediaRecorder с различными аудиоисточниками, такими как: DEFAULT, MIC, VOICE_RECOGNITION и VOICE_COMMUNICATION.Ни один из этих вариантов не оказывает существенного влияния на шум.
Затем я протестировал, используя AudioRecorder с теми же аудиоисточниками, перечисленными выше.Без улучшения.
Наконец, я попытался добавить NoiseSuppressor к AudioRecorder, который показал очень незначительные улучшения.
Я настраиваю AudioRecorder и NoiseSuppressor следующим образом:
public void startRecording(String fileNameIn) {
bufferSize = AudioRecord.getMinBufferSize (
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING);
aRecorder = new AudioRecord(
MediaRecorder.AudioSource.VOICE_RECOGNITION,
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING,
bufferSize);
int audioSession = aRecorder.getAudioSessionId();
enableNoiseSuppressor(audioSession);
aRecorder.startRecording();
......
и
public void enableNoiseSuppressor(int microphoneId) {
if (NoiseSuppressor.isAvailable() && noiseSuppressor == null) {
noiseSuppressor = NoiseSuppressor.create(microphoneId);
noiseSuppressor.setEnabled(true);
Log.i(TAG, "NoiseSuppressor enabled");
} else {
Log.e(TAG, "This device don't support NoiseSuppressor");
}
}
Я также тестировал сторонние приложения для записи на Galaxy S6 и обратите внимание на высокий уровень шума на этих записях.Это кажется странной проблемой с флагманского (несколько лет назад) телефона.Какие-нибудь хитрости или основные понятия для Android мне не хватает?
Ищете какие-либо предложения или советы.