Mengonfigurasi efek pra-pemrosesan

Rilis Android 10 menyertakan persyaratan berikut untuk pengambilan dengan VOICE_COMMUNICATION.

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

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

Menyambungkan dengan instance AudioSource

Efek prapemrosesan dipasangkan dengan mode kasus penggunaan yang meminta pra-pemrosesan tersebut. 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, gain, dan prapemrosesan) sesuai dengan aturan khusus produk. Sumber berikut ditampilkan kepada 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 prapemrosesan default yang diterapkan untuk setiap instance AudioSource ditetapkan 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 prapemrosesan yang akan diaktifkan. Untuk contoh, lihat implementasi untuk Nexus 10 di device/samsung/manta/audio_effects.xml. Instance AudioEffect memperoleh dan merilis sesi saat dibuat dan dihancurkan, sehingga mengaktifkan efek (seperti Loudness Enhancer) agar tetap ada selama sesi.

Contoh berikut memungkinkan pra-pemrosesan untuk instance AudioSource VoIP dan Camcorder AudioSource. Dengan mendeklarasikan konfigurasi AudioSource dengan cara ini, framework 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 tentang perolehan audio atau pemrosesan audio dengan pengecualian pengenalan suara (VOICE_RECOGNITION). Persyaratan untuk pengenalan suara mencakup:

  • Respons frekuensi datar (+/- 3 dB) dari 100 Hz hingga 4 kHz
  • Konfigurasi percakapan dekat: 90 dB SPL membaca RMS 2500 (sampel 16 bit)
  • Level melacak secara linear dari -18 dB hingga +12 dB relatif terhadap 90 dB SPL
  • THD < 1% (90 dB SPL dalam rentang 100 hingga 4.000 Hz)
  • Persyaratan ultrasonografi dekat (untuk pengujian, lihat Pengujian Ultrasonografi dekat):
    • Dukungan untuk SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND seperti yang dijelaskan di pasal 7.8.3 CDD.
    • Dukungan untuk satu atau kedua frekuensi pengambilan sampel 44100 atau 48000 tanpa filter band-pass atau antialiasing.
  • Efek/prapemrosesan dinonaktifkan secara default

Contoh menyesuaikan berbagai efek untuk sumber yang berbeda adalah:

  • Peredam Bising
    • Disesuaikan untuk peredam bising angin untuk CAMCORDER
    • Disesuaikan untuk peredam bising stasioner untuk VOICE_COMMUNICATION
  • Automatic Gain Control
    • Disesuaikan untuk mode bicara dekat untuk VOICE_COMMUNICATION dan mic ponsel utama
    • Disesuaikan untuk far-talk untuk CAMCORDER

Referensi

Untuk informasi selengkapnya, lihat referensi berikut: