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.
- Soporte para
- 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
- Sintonizado para supresor de ruido de viento para
- 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
- Sintonizado para conversación cercana para
Recursos
Para obtener más información, consulte los siguientes recursos:
- Documentación de Android para el paquete audiofx
- Documentación de Android para el efecto de audio de supresión de ruido
-
/device/google/crosshatch/audio_effects.xml
archivo para Pixel 3