La versione Android 10 include i seguenti requisiti per l'acquisizione con VOICE_COMMUNICATION
.
- Le implementazioni dovrebbero fornire un cancellatore di eco acustico (AEC) sul percorso di acquisizione durante l'acquisizione con
VOICE_COMMUNICATION
. - Se si fornisce un AEC, deve essere individuabile 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, il Nexus 10 supporta i seguenti effetti di preelaborazione:
Accoppia con istanze AudioSource
Gli effetti di preelaborazione sono abbinati alla modalità del caso d'uso in cui viene richiesta la preelaborazione. Nello sviluppo di app Android, un caso d'uso viene definito istanza AudioSource
; e gli sviluppatori di app richiedono di utilizzare l'astrazione AudioSource
invece del dispositivo hardware audio effettivo. Android Audio Policy Manager mappa un'istanza AudioSource
su una determinata configurazione del percorso di acquisizione (inclusi dispositivo, guadagno e pre-elaborazione) in base alle regole specifiche del prodotto. Le seguenti fonti 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 preelaborazione predefiniti applicati per ciascuna 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, vedere l'implementazione per il 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 Loudness Enhancer) di persistere per tutta la sessione.
L'esempio seguente abilita la preelaborazione per le istanze VoIP AudioSource
e Camcorder AudioSource
. Dichiarando la configurazione AudioSource
in questo modo, il framework richiede automaticamente l'utilizzo di tali effetti dall'HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Sintonizzazione della sorgente
L'ottimizzazione AudioSource
non ha requisiti espliciti sul guadagno audio o sull'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 ravvicinata: 90 dB SPL legge RMS di 2500 (campioni a 16 bit)
- Il livello traccia linearmente da -18 dB a +12 dB rispetto a 90 dB SPL
- THD < 1% (90 dB SPL nell'intervallo da 100 a 4000 Hz)
- Requisiti del vicino ultrasuono (per i test, vedere Test del vicino ultrasuono ):
- Supporto per
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
come definito nella sezione 7.8.3 del CDD. - Supporto per una o entrambe le frequenze di campionamento 44100 o 48000 senza filtri passa banda o antialiasing.
- Supporto per
- Effetti/preelaborazione disabilitati per impostazione predefinita
Esempi di ottimizzazione di effetti diversi per sorgenti diverse sono:
- Soppressore di rumore
- Ottimizzato per il soppressore del rumore del vento per
CAMCORDER
- Ottimizzato per il soppressore del rumore stazionario per
VOICE_COMMUNICATION
- Ottimizzato per il soppressore del rumore del vento per
- Controllo automatico del guadagno
- Ottimizzato per la conversazione ravvicinata per
VOICE_COMMUNICATION
e il microfono del telefono principale - Ottimizzato per le conversazioni lontane per
CAMCORDER
- Ottimizzato per la conversazione ravvicinata per
Risorse
Per ulteriori informazioni, fare riferimento alle seguenti risorse:
- Documentazione Android per il pacchetto audiofx
- Documentazione Android per l'effetto audio Soppressione del rumore
-
/device/google/crosshatch/audio_effects.xml
per Pixel 3