5

当我使用 Androids AudioRecord 从麦克风录制时,我得到了这个烦人的神器

在此处输入图像描述

有没有办法避免或消除这种情况?它是什么?还是因为我在配置中做错了什么(但其他一切正常)。

这是我的 AudioRecord 配置:

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

我很确定我的代码是正确的,因为我可以很好地记录一切,但是开头有这个点击。

4

2 回答 2

6

尝试将您的音频源设置为 AudioSource.VOICE_RECOGNITION。在某些设备上,尤其是 HTC 设备上,我发现该来源的过滤较少。有了 ICS 之后,事情就应该是正式的方式了。在 Android 4.0 设备兼容性文档中,这是正式的:

当应用程序开始使用 android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION 音频源录制音频流时:

  • 如果存在降噪处理,则必须禁用。
  • 如果存在自动增益控制,则必须禁用。
于 2012-10-11T03:13:54.903 回答
2

我认为显示的伪影是用于处理录制音频的数字滤波器的副作用。每个数字滤波器都有一定的延迟。例如,如果滤波器有 N 个系数,则它的延迟为 N/2。从本质上讲,这意味着滤波器将在前 N/2 个音频信号样本通过它后开始正常运行。这应该是您拥有工件的原因。希望这可以帮助。

于 2012-10-09T15:12:48.430 回答