Configura gli effetti di preelaborazione

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

Risorse

Per ulteriori informazioni, fare riferimento alle seguenti risorse: