Configurar 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 se proporciona un AEC, debe ser detectable y controlable a través de AcousticEchoCanceler de la API del SDK.

La plataforma Android proporciona efectos de audio en dispositivos compatibles en el paquete audiofx , al que pueden acceder los desarrolladores. Por ejemplo, Nexus 10 admite los siguientes efectos de preprocesamiento:

Emparejar con instancias de AudioSource

Los efectos del preprocesamiento se combinan 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 conoce como instancia AudioSource ; y los desarrolladores de aplicaciones solicitan utilizar la abstracción AudioSource en lugar del dispositivo de hardware de audio real. Android Audio Policy Manager asigna una instancia AudioSource a una configuración de ruta de captura determinada (incluido el dispositivo, la ganancia y el procesamiento previo) de acuerdo con 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 AudioSource se especifican en el archivo /vendor/etc/audio_effects.xml . Para especificar sus propios efectos predeterminados para cada instancia 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 para Nexus 10 en device/samsung/manta/audio_effects.xml . Las instancias 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 AudioSource de esta manera, el marco solicita automáticamente el uso de esos efectos desde HAL.

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

Ajuste de fuente

La sintonización AudioSource no tiene requisitos explícitos sobre ganancia de audio o 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 desde -18 dB a +12 dB en relación con 90 dB SPL
  • THD < 1% (90 dB SPL en el 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 del CDD.
    • Admite una o ambas frecuencias de muestreo de 44100 o 48000 sin filtros de paso de banda ni antialiasing.
  • Efectos/preprocesamiento deshabilitados por defecto

Ejemplos de ajuste de diferentes efectos para diferentes fuentes son:

  • Supresor de ruido
    • Sintonizado para supresor de ruido del viento para CAMCORDER
    • Ajustado para supresor de ruido estacionario para VOICE_COMMUNICATION
  • Control de ganancia automática
    • Sintonizado para conversaciones cercanas para VOICE_COMMUNICATION y el micrófono principal del teléfono
    • Sintonizado para hablar lejos para CAMCORDER

Recursos

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