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 capture con
VOICE_COMMUNICATION. - Si se proporciona un AEC, debe ser detectable y controlable a través de la API de SDK's
AcousticEchoCanceler.
La plataforma de Android proporciona efectos de audio en dispositivos compatibles en el
audiofx paquete, que está disponible para que los desarrolladores accedan a él.
Por ejemplo, Nexus 10 admite los siguientes efectos de procesamiento previo:
Vinculación con instancias de AudioSource
Los efectos de procesamiento previo se vinculan con el modo de caso de uso en el que se solicita el procesamiento previo. En el desarrollo de apps para Android, un caso de uso se conoce como una instancia de AudioSource. Los desarrolladores de apps solicitan usar la abstracción de 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 determinada (incluido el dispositivo, la ganancia y el procesamiento previo) según las reglas específicas del producto. Las siguientes fuentes se exponen a los desarrolladores:
android.media.MediaRecorder.AudioSource.CAMCORDERandroid.media.MediaRecorder.AudioSource.VOICE_COMMUNICATIONandroid.media.MediaRecorder.AudioSource.VOICE_CALLandroid.media.MediaRecorder.AudioSource.VOICE_DOWNLINKandroid.media.MediaRecorder.AudioSource.VOICE_UPLINKandroid.media.MediaRecorder.AudioSource.VOICE_RECOGNITIONandroid.media.MediaRecorder.AudioSource.MICandroid.media.MediaRecorder.AudioSource.DEFAULT
Los efectos de procesamiento previo predeterminados que se aplican a cada instancia de AudioSource se especifican en el archivo /vendor/etc/audio_effects.xml. Para especificar tus propios efectos predeterminados para cada instancia de AudioSource, crea un archivo /vendor/etc/audio_effects.xml y especifica los efectos de procesamiento previo que se activarán. Para obtener un ejemplo, consulta 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 el amplificador de volumen) persistan durante toda la sesión.
En el siguiente ejemplo, se habilita el procesamiento previo para las instancias de AudioSource de VoIP y AudioSource de videocámara. Si declaras la configuración de AudioSource de esta manera, el framework solicita automáticamente el uso de esos efectos del HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Ajuste de la fuente
El ajuste 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 lo siguiente:
- Respuesta de frecuencia plana (+/- 3 dB) de 100 Hz a 4 kHz
- Configuración de conversación cercana: 90 dB SPL lee RMS de 2,500 (muestras de 16 bits)
- Nivel de seguimiento lineal de -18 dB a +12 dB en relación con 90 dB SPL
- THD < 1% (90 dB SPL en el rango de 100 a 4,000 Hz)
- Requisitos de casi ultrasonido (para pruebas, consulta
Pruebas de casi ultrasonido):
- Compatibilidad con
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUNDcomo se define en la sección 7.8.3 del CDD - Compatibilidad con una o ambas frecuencias de muestreo de 44,100 o 48,000 sin filtros de paso de banda ni de eliminación de alias
- Compatibilidad con
- Efectos o procesamiento previo inhabilitados de forma predeterminada
Estos son ejemplos de ajuste de diferentes efectos para diferentes fuentes:
- Supresor de ruido
- Ajustado para el supresor de ruido de viento para
CAMCORDER - Ajustado para el supresor de ruido estacionario para
VOICE_COMMUNICATION
- Ajustado para el supresor de ruido de viento para
- Control automático de ganancia
- Ajustado para conversación cercana para
VOICE_COMMUNICATIONy micrófono principal del teléfono - Ajustado para conversación lejana para
CAMCORDER
- Ajustado para conversación cercana para
Recursos
Para obtener más información, consulta los siguientes recursos:
- Documentación de Android para el paquete audiofx
- Documentación de Android para el efecto de audio de reducción de ruido
- Archivo
/device/google/crosshatch/audio_effects.xmlpara Pixel 3