Configura effetti di pre-elaborazione

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.
  • 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
  • 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

Risorse

Per saperne di più, consulta le seguenti risorse: