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 のサンプリング レート、あるいはその両者のサポート
- CDD のセクション 7.8.3 で定義される
- 効果 / 前処理がデフォルトで無効
ソースごとに異なる効果をチューニングする例として、次のものがあります。
- ノイズ サプレッサー
CAMCORDER
のウィンド ノイズ サプレッサーのチューニングVOICE_COMMUNICATION
の定常ノイズ サプレッサーのチューニング
- 自動ゲイン コントロール
VOICE_COMMUNICATION
の近接通話およびメインのフォンマイクのチューニングCAMCORDER
の遠隔通話のチューニング
リソース
詳細については、次のリソースをご覧ください。
- audiofx パッケージに関する Android ドキュメント
- ノイズ抑制音声効果に関する Android ドキュメント
- Pixel 3 に関する
/device/google/crosshatch/audio_effects.xml
ファイル