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.
- Dukungan untuk
- 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
- Disesuaikan untuk peredam bising angin untuk
- Automatic Gain Control
- Disesuaikan untuk mode bicara dekat untuk
VOICE_COMMUNICATION
dan mic ponsel utama - Disesuaikan untuk far-talk untuk
CAMCORDER
- Disesuaikan untuk mode bicara dekat untuk
Referensi
Untuk informasi selengkapnya, lihat referensi berikut:
- Dokumentasi Android untuk paket audiofx
- Dokumentasi Android untuk Efek audio Peredam Derau
- File
/device/google/crosshatch/audio_effects.xml
untuk Pixel 3