【问题标题】:Android AudioRecord artifactAndroid AudioRecord 神器
【发布时间】:2012-09-23 12:04:35
【问题描述】:

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

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

这是我的 AudioRecord 配置:

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

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

【问题讨论】:

标签: java android audio audio-recording android-audiorecord


【解决方案1】:

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

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

  • 如果存在降噪处理,则必须禁用。
  • 必须禁用自动增益控制(如果存在)。

【讨论】:

  • 对于 AudioRecord 没有 VOICE_RECOGNITION 音频源,但现在我知道要寻找什么了。
  • VOICE_RECOGNITION +100,一个选项可以节省我一周的时间。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2011-06-10
    • 2012-09-28
    • 1970-01-01
    • 2013-07-01
    • 2012-01-19
    • 2012-01-04
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多