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.
- Soporte para
- 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
- Sintonizado para supresor de ruido del viento para
- 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
- Sintonizado para conversaciones cercanas 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
- Archivo
/device/google/crosshatch/audio_effects.xml
para el Pixel 3