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 proporcionas un AEC, este debe ser detectable y controlable a través de
AcousticEchoCanceler
de la API del SDK.
La plataforma de Android proporciona efectos de audio en dispositivos compatibles en el paquete
audiofx
, al que los desarrolladores pueden acceder.
Por ejemplo, el Nexus 10 admite los siguientes efectos de procesamiento previo:
Vincula con instancias de AudioSource
Los efectos de preprocesamiento se vinculan con el modo de caso de uso en el que se solicita el preprocesamiento. En el desarrollo de apps para Android, un caso de uso se conoce
como una instancia de AudioSource
, y 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 (incluidos 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.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 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 deseas activar. Para ver 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 la sesión.
En el siguiente ejemplo, se habilita el procesamiento previo para las instancias AudioSource
de VoIP y Camcorder AudioSource
. Cuando se declara la configuración de AudioSource
de esta manera, el framework solicita automáticamente el uso de esos efectos desde el HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Ajuste de fuente
El ajuste de AudioSource
no tiene requisitos explícitos sobre la ganancia de audio ni el procesamiento de audio, a excepción del reconocimiento de voz (VOICE_RECOGNITION
). Los requisitos para el reconocimiento de voz incluyen los siguientes:
- Respuesta de frecuencia plana (+/- 3 dB) de 100 Hz a 4 kHz
- Configuración de voz baja: 90 dB SPL lee RMS de 2500 (muestras de 16 bits)
- El nivel se ajusta de forma 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 4000 Hz)
- Requisitos de casi el ultrasonido (para realizar pruebas, consulta Pruebas de ecografías cercanas):
- Compatibilidad con
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
, como se define en la sección 7.8.3 del CDD. - Compatibilidad con una o ambas tasas de muestreo de 44,100 o 48,000 Hz sin filtros de paso de banda ni antialiasing
- Compatibilidad con
- Efectos o preprocesamiento inhabilitados de forma predeterminada
Estos son algunos ejemplos de cómo ajustar diferentes efectos para diferentes fuentes:
- supresor de ruido
- Ajustado para el silenciador de ruido del viento de
CAMCORDER
- Ajustado para el supresor de ruido estacionario de
VOICE_COMMUNICATION
- Ajustado para el silenciador de ruido del viento de
- Control automático de ganancia
- Ajustado para el modo de conversación cercana para
VOICE_COMMUNICATION
y el micrófono principal del teléfono - Ajustado para la función de conversación a distancia para
CAMCORDER
- Ajustado para el modo de 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 sobre el efecto de audio de supresión de ruido
- Archivo
/device/google/crosshatch/audio_effects.xml
para el Pixel 3