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 を 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 に答える