前処理効果を設定する

Android 10 リリースでは、VOICE_COMMUNICATION でキャプチャを行うために次の要件を満たす必要があります。

  • VOICE_COMMUNICATION でキャプチャを行うには、実装のキャプチャパスにアコースティック エコー キャンセラ(AEC)を設定する必要があります。
  • AEC を設定する場合は、SDK API の AcousticEchoCanceler を使用して AEC を検出および制御できるようにする必要があります。

Android プラットフォームでは、サポートされているデバイスで、デベロッパーがアクセス可能な audiofx パッケージのオーディオ効果を利用できます。たとえば、Nexus 10 では次の前処理効果がサポートされています。

AudioSource インスタンスとペア設定する

前処理エフェクトは、前処理が必要となるユースケース モードとペアになります。Android アプリの開発では、ユースケースは AudioSource インスタンスと呼ばれます。アプリ デベロッパーは、実際のオーディオ ハードウェア デバイスの代わりに AudioSource 抽象化を使用するようリクエストします。Android Audio Policy Manager は、製品固有の規則に従って、AudioSource インスタンスを特定のキャプチャパス構成(デバイス、ゲイン、前処理を含む)にマッピングします。デベロッパーには、次のソースが公開されています。

  • android.media.MediaRecorder.AudioSource.CAMCORDER
  • android.media.MediaRecorder.AudioSource.VOICE_COMMUNICATION
  • android.media.MediaRecorder.AudioSource.VOICE_CALL
  • android.media.MediaRecorder.AudioSource.VOICE_DOWNLINK
  • android.media.MediaRecorder.AudioSource.VOICE_UPLINK
  • android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
  • android.media.MediaRecorder.AudioSource.MIC
  • android.media.MediaRecorder.AudioSource.DEFAULT

それぞれの AudioSource インスタンスに適用されるデフォルトの前処理効果は、/vendor/etc/audio_effects.xml ファイルで指定されています。すべての AudioSource インスタンスに独自のデフォルト効果を指定するには、/vendor/etc/audio_effects.xml ファイルを作成し、有効にする前処理効果を指定します。具体的な例については、device/samsung/manta/audio_effects.xml の Nexus 10 の実装をご覧ください。AudioEffect インスタンスは、作成時および破棄時にセッションを取得または解放し、セッション全体にわたって効果(ラウドネス エンハンサーなど)を維持できるようにします。

次の例では、VoIP AudioSource および Camcorder AudioSourceインスタンスの前処理を有効にします。このように AudioSource 構成を宣言することで、フレームワークは HAL からこれらの効果の使用を自動的にリクエストします。

<preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
        <stream type="camcorder">
            <apply effect="agc"/>
        </stream>
    </preprocess>

ソースのチューニング

AudioSource のチューニングには、音声認識(VOICE_RECOGNITION)を除き、オーディオ ゲインまたはオーディオ処理に関する明示的な要件はありません。音声認識の要件は次のとおりです。

  • 100 Hz から 4 kHz までフラットな周波数応答(+/- 3 dB)
  • 近接通話の設定: 90 dB SPL の RMS の読み取りが 2,500 (16 ビット サンプル)
  • レベルは、90 dB SPL に対して -18 dB から +12 dB までリニアにトラック
  • THD < 1%(100~4,000 Hz の範囲で 90 dB SPL)
  • 近超音波の要件(テストについては、近超音波のテストを参照):
    • CDD のセクション 7.8.3 で定義される SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND のサポート
    • バンドパス フィルタまたはアンチエイリアス フィルタを使用しない 44100 または 48000 のサンプリング レート、あるいはその両者のサポート
  • 効果 / 前処理がデフォルトで無効

ソースごとに異なる効果をチューニングする例として、次のものがあります。

  • ノイズ サプレッサー
    • CAMCORDER のウィンド ノイズ サプレッサーのチューニング
    • VOICE_COMMUNICATION の定常ノイズ サプレッサーのチューニング
  • 自動ゲイン コントロール
    • VOICE_COMMUNICATION の近接通話およびメインのフォンマイクのチューニング
    • CAMCORDER の遠隔通話のチューニング

リソース

詳細については、次のリソースをご覧ください。