Артефакт Android AudioRecord

Когда я использую Android AudioRecord для записи с микрофона, я получаю этот раздражающий артефакт

введите здесь описание изображения

Есть ли способ избежать или удалить это? Что это? Или я так понимаю, потому что я сделал что-то не так в конфигурации (но все остальное работает нормально).

Вот моя конфигурация AudioRecord:

    sampleRateInHz = 44100;
    channelConfigRec = AudioFormat.CHANNEL_IN_MONO;
    audioFormat = AudioFormat.ENCODING_PCM_16BIT;
    bufferSizeInBytesRec = AudioRecord.getMinBufferSize(sampleRateInHz, channelConfigRec, audioFormat);
    audioSource = AudioSource.MIC;

Я почти уверен, что мой код правильный, потому что я могу записать все нормально, но в начале есть этот щелчок.


person Puckl    schedule 02.10.2012    source источник
comment
нам нужно увидеть ваш код ??? но вы можете прочитать это, возможно, поможет вам [пред. ответ][1] [1]: stackoverflow.com/questions/4707994/   -  person Omarj    schedule 08.10.2012
comment
@eldarerathis упс, вот что я получаю за скимминг :)   -  person Bryan Denny    schedule 09.10.2012


Ответы (2)


Попробуйте установить для audioSource значение AudioSource.VOICE_RECOGNITION. На некоторых устройствах, особенно на устройствах HTC, я обнаружил, что с этим источником происходит меньшая фильтрация. И с ICS, и после этого все должно быть официально. В документе о совместимости устройств Android 4.0 это формализовано:

Когда приложение начало запись аудиопотока с использованием источника звука android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION:

  • Обработка шумоподавления, если она присутствует, ДОЛЖНА быть отключена.
  • Автоматическая регулировка усиления, если она присутствует, ДОЛЖНА быть отключена.
person Douglas Jones    schedule 11.10.2012
comment
Для AudioRecord нет источника звука VOICE_RECOGNITION, но теперь у меня есть идея, что искать. - person Puckl; 11.10.2012
comment
VOICE_RECOGNITION +100, один вариант экономит мне неделю. - person Imskull; 27.08.2014

Я думаю, что показанный артефакт является побочным эффектом цифрового фильтра, который используется для обработки записанного звука. Каждый цифровой фильтр имеет определенную задержку. Например, если фильтр имеет N коэффициентов, его задержка равна N/2. По сути, это означает, что фильтр начнет вести себя нормально после того, как через него пройдут первые N/2 отсчетов аудиосигнала. Это должно быть причиной артефакта, который у вас есть. Надеюсь это поможет.

person Pijetren    schedule 09.10.2012