安卓AudioRecord杂音问题

5

当我使用Android的AudioRecord从麦克风录音时,会出现这种令人烦恼的杂音:

enter image description here

有没有办法避免或消除这个问题?这是什么?还是因为我在配置中做错了什么(但其他所有功能都正常)。

以下是我的AudioRecord配置:

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

我相信我的代码没问题,因为我能够正常记录所有内容,但是一开始会有一个点击声。


我们需要看您的代码吗?但是您可以阅读这个,或许会有所帮助 上一个回答 - Omarj
这个问题应该发到SO上,因为它是一个开发者问题。编程问题在Android.SE上是不相关的:http://android.stackexchange.com/faq#what-about-other-android-related-questions - Bryan Denny
@eldarerathis 哎呀,这就是我匆匆浏览的结果 :) - Bryan Denny
2个回答

6
尝试将audioSource设置为AudioSource.VOICE_RECOGNITION。在某些设备上,特别是HTC设备上,我发现该源的过滤较少。而且在ICS之后,这是官方规定的方式。在Android 4.0设备兼容性文档中,已经明确规定了以下内容:
当应用程序使用android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION音频源开始录制音频流时:
  • 如果存在噪声降低处理,则必须禁用。
  • 如果存在自动增益控制,则必须禁用。

对于AudioRecord,没有VOICE_RECOGNITION音频源,但现在我知道要寻找什么了。 - Puckl
语音识别+100,一个选项可以为我节省一周时间。 - Imskull

2
我认为展示的工件是数字滤波器的副作用,该滤波器用于处理录制的音频。每个数字滤波器都有一定的延迟。例如,如果滤波器具有N个系数,则其延迟为N/2。基本上,这意味着滤波器在第一N/2个音频样本通过它之后会开始表现正常。这应该是你遇到工件的原因。希望这可以帮助到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接