Configurer les effets de prétraitement

La version Android 10 inclut les exigences suivantes pour la capture avec VOICE_COMMUNICATION.

  • Les implémentations doivent fournir un système d'annulation de l'écho acoustique (AEC) sur le chemin de capture lors de la capture avec VOICE_COMMUNICATION.
  • Si vous fournissez un AEC, il doit être détectable et contrôlable via AcousticEchoCanceler de l'API du SDK.

La plate-forme Android fournit des effets audio sur les appareils compatibles dans le package audiofx, auquel les développeurs peuvent accéder. Par exemple, le Nexus 10 est compatible avec les effets de prétraitement suivants:

Associer à des instances AudioSource

Les effets de prétraitement sont associés au mode de cas d'utilisation dans lequel le prétraitement est demandé. Dans le développement d'applications Android, un cas d'utilisation est appelé instance AudioSource. Les développeurs d'applications demandent à utiliser l'abstraction AudioSource au lieu de l'appareil matériel audio réel. Le Gestionnaire de règles audio Android mappe une instance AudioSource à une configuration de chemin de capture donnée (y compris l'appareil, le gain et le prétraitement) conformément aux règles spécifiques au produit. Les sources suivantes sont exposées aux développeurs:

  • 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

Les effets de prétraitement par défaut appliqués à chaque instance AudioSource sont spécifiés dans le fichier /vendor/etc/audio_effects.xml. Pour spécifier vos propres effets par défaut pour chaque instance AudioSource, créez un fichier /vendor/etc/audio_effects.xml et spécifiez les effets de prétraitement à activer. Pour obtenir un exemple, consultez l'implémentation du Nexus 10 dans device/samsung/manta/audio_effects.xml. Les instances AudioEffect acquièrent et libèrent une session lors de leur création et de leur destruction, ce qui permet aux effets (tels que l'amplificateur de la clarté du son) de persister tout au long de la session.

L'exemple suivant active le prétraitement pour les instances AudioSource VoIP et AudioSource Caméscope. En déclarant la configuration AudioSource de cette manière, le framework demande automatiquement l'utilisation de ces effets à partir du HAL.

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

Réglage de la source

Le réglage AudioSource n'impose pas d'exigences explicites sur le gain audio ni sur le traitement audio, à l'exception de la reconnaissance vocale (VOICE_RECOGNITION). Les exigences concernant la reconnaissance vocale incluent les suivantes:

  • Réponse en fréquence plate (+/- 3 dB) de 100 Hz à 4 kHz
  • Configuration mains libres: 90 dB SPL affiche un RMS de 2 500 (échantillons 16 bits)
  • Le niveau suit une évolution linéaire de -18 dB à +12 dB par rapport à 90 dB SPL
  • THD < 1% (90 dB SPL dans la plage de fréquences de 100 à 4 000 Hz)
  • Exigences concernant les ultrasons à proximité (pour les tests, consultez les tests d'ultrasons à proximité) :
    • Prise en charge de SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND, comme défini dans la section 7.8.3 du CDD.
    • Prise en charge de l'un ou des deux taux d'échantillonnage 44 100 ou 48 000 sans filtres passe-bande ni anticrénelage.
  • Effets/prétraitement désactivés par défaut

Voici quelques exemples d'ajustements d'effets différents pour différentes sources:

  • Suppresseur de bruit
    • Réglage du suppresseur de bruit du vent pour CAMCORDER
    • Réglage du suppresseur de bruit stationnaire pour VOICE_COMMUNICATION
  • Contrôle de gain automatique
    • Optimisé pour la conversation en mode mains libres pour le VOICE_COMMUNICATION et le micro principal du téléphone
    • Optimisé pour la conversation à distance pour CAMCORDER

Ressources

Pour en savoir plus, consultez les ressources suivantes: