La versione di Android 10 include i seguenti requisiti per l'acquisizione con VOICE_COMMUNICATION
.
- Le implementazioni devono fornire un'annullamento dell'eco acustico (AEC) sul percorso di acquisizione durante la registrazione con
VOICE_COMMUNICATION
. - Se fornisci un AEC, questo deve essere rilevabile e controllabile tramite
AcousticEchoCanceler
dell'API SDK.
La piattaforma Android fornisce effetti audio sui dispositivi supportati nel pacchetto
audiofx
, a cui gli sviluppatori possono accedere.
Ad esempio, Nexus 10 supporta i seguenti effetti di preelaborazione:
Accoppia con istanze AudioSource
Gli effetti di pre-elaborazione sono abbinati alla modalità caso d'uso in cui
viene richiesta la pre-elaborazione. Nello sviluppo di app per Android, un caso d'uso è definito come un'istanza AudioSource
e gli sviluppatori di app richiedono di utilizzare l'astrazione AudioSource
anziché il dispositivo hardware audio reale. Android Audio Policy Manager mappa un'istanza AudioSource
a una determinata configurazione del percorso di acquisizione (inclusi dispositivo, guadagno e pre-elaborazione) in base a regole specifiche del prodotto. Le seguenti origini sono esposte agli sviluppatori:
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
Gli effetti di pre-elaborazione predefiniti applicati a ogni istanza AudioSource
sono specificati nel file /vendor/etc/audio_effects.xml
. Per
specificare i tuoi effetti predefiniti per ogni istanza AudioSource
, crea un
file /vendor/etc/audio_effects.xml
e specifica gli effetti di preelaborazione da attivare. Per un esempio, consulta l'implementazione per Nexus 10 in device/samsung/manta/audio_effects.xml
.
Le istanze AudioEffect
acquisiscono e rilasciano una sessione quando vengono create e distrutte,
consentendo agli effetti (come l'evidenziatore di intensità) di persistere per tutta la
sessione.
L'esempio seguente abilita la pre-elaborazione per le istanze VoIP AudioSource
e della videocamera AudioSource
. Dichiarando
la configurazione AudioSource
in questo modo, il framework
richiede automaticamente l'uso di questi effetti dall'HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Ottimizzazione delle fonti
La regolazione di AudioSource
non ha requisiti espliciti per l'aumento o l'elaborazione audio, ad eccezione del riconoscimento vocale (VOICE_RECOGNITION
). I requisiti per il riconoscimento vocale includono:
- Risposta in frequenza piatta (+/- 3 dB) da 100 Hz a 4 kHz
- Configurazione di conversazione a distanza ravvicinata: 90 dB SPL legge RMS di 2500 (campioni a 16 bit)
- Il livello varia in modo lineare da -18 dB a +12 dB rispetto a 90 dB SPL
- THD < 1% (90 dB SPL nell'intervallo da 100 a 4000 Hz)
- Requisiti per il rilevamento a ultrasuoni (per i test, consulta Test a ultrasuoni vicini):
- Supporto per
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
come definito nella sezione 7.8.3 del CDD. - Supporto di una o entrambe le frequenze di campionamento 44100 o 48000 senza filtri antialiasing o a banda passante.
- Supporto per
- Effetti/pre-elaborazione disattivati per impostazione predefinita
Ecco alcuni esempi di regolazione di effetti diversi per sorgenti diverse:
- Eliminazione dei rumori
- Ottimizzato per eliminare il rumore del vento per
CAMCORDER
- Adattato per il silenziatore dei rumori fissi per
VOICE_COMMUNICATION
- Ottimizzato per eliminare il rumore del vento per
- Controllo automatico del guadagno
- Adattato per uso a distanza ravvicinata per
VOICE_COMMUNICATION
e microfono dello smartphone principale - Adattato per conversazione a distanza per
CAMCORDER
- Adattato per uso a distanza ravvicinata per
Risorse
Per saperne di più, consulta le seguenti risorse:
- Documentazione Android per il package audiofx
- Documentazione Android per l'effetto audio Riduzione del rumore
- File
/device/google/crosshatch/audio_effects.xml
per Pixel 3