A versão do Android 10 inclui os seguintes requisitos para captura com VOICE_COMMUNICATION
.
- As implementações devem fornecer um cancelador de eco acústico (AEC) no caminho de captura ao capturar com
VOICE_COMMUNICATION
. - Se fornecer um AEC, ele deve ser detectável e controlável por meio do
AcousticEchoCanceler
da API do SDK.
A plataforma Android fornece efeitos de áudio em dispositivos compatíveis no pacote audiofx
, que está disponível para os desenvolvedores acessarem. Por exemplo, o Nexus 10 oferece suporte aos seguintes efeitos de pré-processamento:
Emparelhamento com AudioSources
Os efeitos de pré-processamento são combinados com o modo de caso de uso no qual o pré-processamento é solicitado. No desenvolvimento de aplicativos Android, um caso de uso é chamado de instância AudioSource
; e os desenvolvedores de aplicativos solicitam o uso da abstração AudioSource
em vez do dispositivo de hardware de áudio real. O Android Audio Policy Manager mapeia uma instância AudioSource
para uma determinada configuração de caminho de captura (incluindo dispositivo, ganho e pré-processamento) de acordo com regras específicas do produto. As seguintes fontes são expostas aos desenvolvedores:
-
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
Os efeitos de pré-processamento padrão aplicados para cada instância de AudioSource
são especificados no arquivo /vendor/etc/audio_effects.xml
. Para especificar seus próprios efeitos padrão para cada instância do AudioSource
, crie um arquivo /vendor/etc/audio_effects.xml
e especifique os efeitos de pré-processamento a serem ativados. Para obter um exemplo, consulte a implementação do Nexus 10 em device/samsung/manta/audio_effects.xml
. As instâncias de AudioEffect
adquirem e liberam uma sessão quando criadas e destruídas, permitindo que os efeitos (como o Loudness Enhancer) persistam durante toda a sessão.
O exemplo a seguir habilita o pré-processamento para as instâncias VoIP AudioSource
e Camcorder AudioSource
. Ao declarar a configuração AudioSource
dessa maneira, a estrutura solicita automaticamente o uso desses efeitos do HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Ajuste de fonte
O ajuste AudioSource
não tem requisitos explícitos sobre ganho de áudio ou processamento de áudio com exceção de reconhecimento de voz ( VOICE_RECOGNITION
). Os requisitos para reconhecimento de voz incluem:
- Resposta de frequência plana (+/- 3 dB) de 100 Hz a 4 kHz
- Configuração de conversa próxima: 90 dB SPL lê RMS de 2500 (amostras de 16 bits)
- Faixas de nível linearmente de -18 dB a +12 dB em relação a 90 dB SPL
- THD < 1% (90 dB SPL na faixa de 100 a 4000 Hz)
- Requisitos de ultrassom próximo (para testes, consulte Testes de ultrassom próximo ):
- Suporte para
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
conforme definido na seção 7.8.3 do CDD. - Suporte para uma ou ambas as taxas de amostragem de 44100 ou 48000 sem filtros de passagem de banda ou antialiasing.
- Suporte para
- Efeitos/pré-processamento desativados por padrão
Exemplos de ajuste de efeitos diferentes para fontes diferentes são:
- Supressor de ruído
- Ajustado para supressor de ruído de vento para
CAMCORDER
- Sintonizado para supressor de ruído estacionário para
VOICE_COMMUNICATION
- Ajustado para supressor de ruído de vento para
- Controle Automático de Ganho
- Sintonizado para conversa próxima para
VOICE_COMMUNICATION
e microfone do telefone principal - Sintonizado para far-talk para
CAMCORDER
- Sintonizado para conversa próxima para
Recursos
Para obter mais informações, consulte os seguintes recursos:
- Documentação do Android para o pacote audiofx
- Documentação do Android para efeito de áudio de supressão de ruído
-
/device/google/crosshatch/audio_effects.xml
para o Pixel 3