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 cancellatore di eco acustico (AEC) sul percorso di acquisizione quando si acquisisce con VOICE_COMMUNICATION.
  • Se fornisci un AEC, deve essere rilevabile e controllabile tramite l'API SDK's 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:

Associa alle istanze AudioSource

Gli effetti di pre-elaborazione sono associati alla modalità di caso d'uso in cui viene richiesta la pre-elaborazione. Nello sviluppo di app Android, un caso d'uso viene definito un'istanza AudioSource e 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. 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 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 (ad esempio Loudness Enhancer) di persistere durante la sessione.

Il seguente esempio attiva la pre-elaborazione per le istanze AudioSource VoIP e AudioSource videocamera. Dichiarando la configurazione AudioSource in questo modo, il framework richiede automaticamente l'utilizzo di questi effetti da HAL.

<preprocess>
        <stream type="voice_communication">
            <apply effect="aec"/>
            <apply effect="ns"/>
        </stream>
        <stream type="camcorder">
            <apply effect="agc"/>
        </stream>
    </preprocess>

Ottimizzazione dell'origine

L'ottimizzazione di AudioSource non prevede 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 di frequenza piatta (+/- 3 dB) da 100 Hz a 4 kHz
  • Configurazione di conversazione ravvicinata: 90 dB SPL legge RMS di 2500 (campioni a 16 bit)
  • I livelli tracciano 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 per gli ultrasuoni prossimi (per i test, vedi Test degli ultrasuoni prossimi):
    • 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 di 44100 o 48000 senza filtri passa-banda o anti-aliasing.
  • Effetti/pre-elaborazione disattivati per impostazione predefinita

Ecco alcuni esempi di ottimizzazione di diversi effetti per diverse origini:

  • Eliminazione dei rumori
    • Ottimizzato per l'eliminazione dei rumori del vento per CAMCORDER
    • Ottimizzato per l'eliminazione dei rumori stazionari per VOICE_COMMUNICATION
  • Controllo automatico del guadagno
    • Ottimizzato per la conversazione ravvicinata per VOICE_COMMUNICATION e il microfono principale del telefono
    • Ottimizzato per la conversazione a distanza per CAMCORDER

Risorse

Per ulteriori informazioni, consulta le seguenti risorse: