Configurare gli effetti di pre-elaborazione

La release di Android 10 include i seguenti requisiti per l'acquisizione con VOICE_COMMUNICATION.

  • Le implementazioni devono fornire un sistema di cancellazione dell'eco acustico (AEC) sul percorso di acquisizione quando l'acquisizione viene eseguita con VOICE_COMMUNICATION.
  • Se fornisci un AEC, deve essere rilevabile e controllabile tramite le API SDK AcousticEchoCanceler.

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 pre-elaborazione:

Accoppia con le istanze AudioSource

Gli effetti di pre-elaborazione sono associati alla modalità del caso d'uso in cui viene richiesta la pre-elaborazione. Nello sviluppo di app per Android, un caso d'uso viene definito istanza AudioSource; gli sviluppatori di app richiedono di utilizzare l'astrazione AudioSource anziché il dispositivo hardware audio effettivo. 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. Gli sviluppatori possono accedere alle seguenti fonti:

  • 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 ogni istanza AudioSource sono specificati nel file /vendor/etc/audio_effects.xml. Per specificare i tuoi effetti predefiniti per ogni istanza di AudioSource, crea un file /vendor/etc/audio_effects.xml e specifica gli effetti di pre-elaborazione 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 ed eliminate, consentendo agli effetti (come l'ottimizzazione del volume) di persistere per tutta la sessione.

L'esempio seguente abilita la preelaborazione per le istanze VoIP AudioSource e videocamera AudioSource. Se dichiari la configurazione AudioSource in questo modo, il framework richiede automaticamente l'utilizzo 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 il guadagno audio 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 per la comunicazione 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 gli ultrasuoni vicini (per i test, vedi Test sugli ultrasuoni vicini):
    • Supporto per SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND come definito nella sezione 7.8.3 della CDD.
    • Supporto di una o entrambe le frequenze di campionamento 44100 o 48000 senza filtri passa banda o antialiasing.
  • Effetti/pre-elaborazione disattivati per impostazione predefinita

Ecco alcuni esempi di regolazione di diversi effetti per fonti diverse:

  • Eliminazione dei rumori
    • Ottimizzato per il soppressore del rumore del vento per CAMCORDER
    • Ottimizzato per il soppressore del rumore statico per VOICE_COMMUNICATION
  • Controllo automatico del guadagno
    • Ottimizzato per la conversazione ravvicinata per VOICE_COMMUNICATION e il microfono principale dello smartphone
    • Ottimizzato per la conversazione a distanza per CAMCORDER

Risorse

Per maggiori informazioni, consulta le seguenti risorse: