Mengonfigurasi efek prapemrosesan

Rilis Android 10 mencakup persyaratan berikut untuk pengambilan dengan VOICE_COMMUNICATION.

  • Implementasi harus menyediakan peredam gema akustik (AEC) di jalur pengambilan saat mengambil dengan VOICE_COMMUNICATION.
  • Jika menyediakan AEC, AEC tersebut harus dapat ditemukan dan dikontrol melalui AcousticEchoCanceler API SDK.

Platform Android menyediakan efek audio di perangkat yang didukung dalam paket audiofx, yang tersedia untuk diakses oleh developer. Misalnya, Nexus 10 mendukung efek praproses berikut:

Menyambungkan dengan instance AudioSource

Efek pra-pemrosesan dipasangkan dengan mode kasus penggunaan tempat pra-pemrosesan diminta. Dalam pengembangan aplikasi Android, kasus penggunaan disebut sebagai instance AudioSource; dan developer aplikasi meminta untuk menggunakan abstraksi AudioSource, bukan perangkat keras audio yang sebenarnya. Android Audio Policy Manager memetakan instance AudioSource ke konfigurasi jalur perekaman tertentu (termasuk perangkat, perolehan, dan pra-pemrosesan) sesuai dengan aturan khusus produk. Sumber berikut diekspos ke developer:

  • 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

Efek praproses default yang diterapkan untuk setiap instance AudioSource ditentukan dalam file /vendor/etc/audio_effects.xml. Untuk menentukan efek default Anda sendiri untuk setiap instance AudioSource, buat file /vendor/etc/audio_effects.xml dan tentukan efek praproses yang akan diaktifkan. Sebagai contoh, lihat penerapan untuk Nexus 10 di device/samsung/manta/audio_effects.xml. Instance AudioEffect mendapatkan dan melepaskan sesi saat dibuat dan dihancurkan, sehingga efek (seperti Loudness Enhancer) tetap ada di seluruh sesi.

Contoh berikut mengaktifkan praproses untuk instance VoIP AudioSource dan Camcorder AudioSource. Dengan mendeklarasikan konfigurasi AudioSource dengan cara ini, framework akan otomatis meminta penggunaan efek tersebut dari HAL.

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

Penyesuaian sumber

Penyesuaian AudioSource tidak memiliki persyaratan eksplisit terkait perolehan audio atau pemrosesan audio, kecuali pengenalan suara (VOICE_RECOGNITION). Persyaratan untuk pengenalan suara meliputi:

  • Respons frekuensi datar (+/- 3 dB) dari 100 Hz hingga 4 kHz
  • Konfigurasi bicara dekat: 90 dB SPL membaca RMS 2500 (sampel 16 bit)
  • Level dilacak secara linear dari -18 dB hingga +12 dB relatif terhadap 90 dB SPL
  • THD < 1% (90 dB SPL dalam rentang 100 hingga 4000 Hz)
  • Persyaratan near-ultrasound (untuk pengujian, lihat Tes Near Ultrasound):
    • Dukungan untuk SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND seperti yang ditentukan dalam bagian 7.8.3 CDD.
    • Dukungan untuk satu atau kedua frekuensi sampling 44100 atau 48000 tanpa filter band-pass atau antialiasing.
  • Efek/praproses dinonaktifkan secara default

Contoh penyesuaian efek yang berbeda untuk sumber yang berbeda adalah:

  • Perangkat Peredam Bising
    • Disetel untuk peredam bising angin untuk CAMCORDER
    • Disetel untuk peredam bising stasioner untuk VOICE_COMMUNICATION
  • Kontrol Peningkatan Otomatis
    • Disetel untuk bicara dekat untuk VOICE_COMMUNICATION dan mikrofon ponsel utama
    • Disetel untuk percakapan jarak jauh untuk CAMCORDER

Referensi

Untuk mengetahui informasi selengkapnya, lihat referensi berikut:

  • Dokumentasi Android untuk paket audiofx
  • Dokumentasi Android untuk efek audio Peredam Bising
  • File /device/google/crosshatch/audio_effects.xml untuk Pixel 3