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 disambungkan dengan mode kasus penggunaan tempat
prapemrosesan 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, 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
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 prapemrosesan yang akan diaktifkan. Misalnya, 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 Pengoptimal Keras Suara) dapat dipertahankan selama
sesi.
Contoh berikut mengaktifkan prapemrosesan untuk instance AudioSource
VoIP dan AudioSource
Camcorder. 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 pada penguatan
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 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 ditentukan dalam bagian 7.8.3 CDD. - Dukungan untuk satu atau kedua frekuensi sampling 44100 atau 48000 tanpa filter antialiasing atau band-pass.
- Dukungan untuk
- Efek/prapemrosesan dinonaktifkan secara default
Contoh penyesuaian efek yang berbeda 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