Mengonfigurasi efek prapemrosesan

Rilis Android 10 mencakup persyaratan berikut untuk pengambilan dengan VOICE_COMMUNICATION.

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

Platform Android menyediakan efek audio di perangkat yang didukung dalam paket audiofx, yang tersedia untuk diakses developer. Misalnya, Nexus 10 mendukung efek pra-pemrosesan 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 hardware audio yang sebenarnya. Android Audio Policy Manager memetakan instance AudioSource ke konfigurasi jalur pengambilan 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 pra-pemrosesan 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 pra-pemrosesan yang akan diaktifkan. Untuk contohnya, lihat implementasi untuk Nexus 10 di device/samsung/manta/audio_effects.xml. Instance AudioEffect memperoleh dan merilis sesi saat dibuat dan dihancurkan, sehingga efek (seperti Loudness Enhancer) dapat dipertahankan selama sesi.

Contoh berikut mengaktifkan pra-pemrosesan untuk instance AudioSource VoIP dan AudioSource Camcorder. 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 pada perolehan audio atau pemrosesan audio, kecuali pengenalan suara (VOICE_RECOGNITION). Persyaratan untuk pengenalan suara mencakup:

  • Respons frekuensi datar (+/- 3 dB) dari 100 Hz hingga 4 kHz
  • Konfigurasi close-talk: 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 Pengujian Near Ultrasound):
    • Dukungan untuk SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND seperti yang ditentukan di bagian 7.8.3 CDD.
    • Dukungan untuk satu atau kedua kecepatan sampling 44100 atau 48000 tanpa filter band-pass atau antialiasing.
  • Efek/pra-pemrosesan dinonaktifkan secara default

Contoh penyesuaian efek yang berbeda untuk sumber yang berbeda adalah:

  • Peredam Bising
    • Disetel untuk peredam bising angin untuk CAMCORDER
    • Disetel untuk peredam bising stasioner untuk VOICE_COMMUNICATION
  • Kontrol Perolehan Otomatis
    • Disetel untuk close-talk untuk VOICE_COMMUNICATION dan mikrofon ponsel utama
    • Disetel untuk far-talk untuk CAMCORDER

Resource

Untuk mengetahui informasi selengkapnya, lihat referensi berikut: