Configuración de efectos de preprocesamiento

La versión de Android 10 incluye los siguientes requisitos para la captura con VOICE_COMMUNICATION .

  • Las implementaciones deben proporcionar un cancelador de eco acústico (AEC) en la ruta de captura cuando se captura con VOICE_COMMUNICATION .
  • Si proporciona un AEC, debe ser detectable y controlable a través de AcousticEchoCanceler de la API SDK.

La plataforma Android proporciona efectos de audio en dispositivos compatibles en el paquete audiofx , que está disponible para que los desarrolladores accedan. Por ejemplo, el Nexus 10 admite los siguientes efectos de preprocesamiento:

Emparejamiento con fuentes de audio

Los efectos de preprocesamiento se emparejan con el modo de caso de uso en el que se solicita el preprocesamiento. En el desarrollo de aplicaciones de Android, un caso de uso se denomina instancia de AudioSource ; y los desarrolladores de aplicaciones solicitan usar la abstracción AudioSource en lugar del dispositivo de hardware de audio real. El administrador de políticas de audio de Android asigna una instancia de AudioSource a una configuración de ruta de captura dada (incluido el dispositivo, la ganancia y el preprocesamiento) de acuerdo con las reglas específicas del producto. Las siguientes fuentes están expuestas a los desarrolladores:

  • 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

Los efectos de preprocesamiento predeterminados aplicados para cada instancia de AudioSource se especifican en el archivo /vendor/etc/audio_effects.xml . Para especificar sus propios efectos predeterminados para cada instancia de AudioSource , cree un archivo /vendor/etc/audio_effects.xml y especifique los efectos de preprocesamiento que desea activar. Para ver un ejemplo, consulte la implementación de Nexus 10 en device/samsung/manta/audio_effects.xml . Las instancias de AudioEffect adquieren y liberan una sesión cuando se crean y destruyen, lo que permite que los efectos (como Loudness Enhancer) persistan durante toda la sesión.

El siguiente ejemplo habilita el preprocesamiento para las instancias VoIP AudioSource y Camcorder AudioSource . Al declarar la configuración de AudioSource de esta manera, el marco solicita automáticamente el uso de esos efectos de la HAL.

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

Sintonización de fuente

La sintonización de AudioSource no tiene requisitos explícitos sobre la ganancia de audio o el procesamiento de audio, con la excepción del reconocimiento de voz ( VOICE_RECOGNITION ). Los requisitos para el reconocimiento de voz incluyen:

  • Respuesta de frecuencia plana (+/- 3 dB) de 100 Hz a 4 kHz
  • Configuración de conversación cercana: 90 dB SPL lee RMS de 2500 (muestras de 16 bits)
  • Nivele las pistas linealmente de -18 dB a +12 dB relativo a 90 dB SPL
  • THD < 1 % (90 dB SPL en un rango de 100 a 4000 Hz)
  • Requisitos de ultrasonido cercano (para pruebas, consulte Pruebas de ultrasonido cercano ):
    • Soporte para SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND como se define en la sección 7.8.3 de la CDD.
    • Soporte para una o ambas tasas de muestreo 44100 o 48000 sin filtros de paso de banda o antialiasing.
  • Efectos/preprocesamiento deshabilitado por defecto

Ejemplos de afinación de diferentes efectos para diferentes fuentes son:

  • Supresor de ruido
    • Sintonizado para supresor de ruido de viento para CAMCORDER
    • Sintonizado para supresor de ruido estacionario para VOICE_COMMUNICATION
  • Control de ganancia automática
    • Sintonizado para conversación cercana para VOICE_COMMUNICATION y micrófono del teléfono principal
    • Sintonizado para habla lejana para CAMCORDER

Recursos

Para obtener más información, consulte los siguientes recursos: