A versão do Android 10 inclui os seguintes
requisitos para captura com VOICE_COMMUNICATION
.
- As implementações precisam fornecer um cancelador de eco acústico (AEC) no caminho de captura ao
capturar com
VOICE_COMMUNICATION
. - Se você fornecer um AEC, ele precisará ser detectável e controlável pela
AcousticEchoCanceler
das APIs do SDK.
A plataforma Android oferece efeitos de áudio em dispositivos compatíveis no pacote
audiofx
, que está disponível para acesso dos desenvolvedores.
Por exemplo, o Nexus 10 é compatível com os seguintes efeitos de pré-processamento:
Parear com instâncias AudioSource
Os efeitos de pré-processamento são pareados com o modo de caso de uso em que o pré-processamento é solicitado. No desenvolvimento de apps Android, um caso de uso é chamado
de uma instância AudioSource
, e os desenvolvedores de apps solicitam o uso da
abstração AudioSource
em vez do dispositivo de hardware de áudio
real. O Gerenciador de políticas de áudio do Android mapeia uma instância AudioSource
para uma configuração de caminho de captura específica (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 a 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 AudioSource
, crie um
arquivo /vendor/etc/audio_effects.xml
e especifique os
efeitos de pré-processamento a serem ativados. Para ver um exemplo, consulte a implementação do Nexus 10 em device/samsung/manta/audio_effects.xml
.
As instâncias AudioEffect
adquirem e liberam uma sessão quando são criadas e destruídas,
permitindo que os efeitos (como o Loudness Enhancer) persistam durante toda a
sessão.
O exemplo a seguir ativa o pré-processamento para as instâncias de VoIP
AudioSource
e Camcorder AudioSource
. Ao declarar a configuração AudioSource
dessa maneira, o framework solicita automaticamente o uso desses efeitos da HAL.
<preprocess> <stream type="voice_communication"> <apply effect="aec"/> <apply effect="ns"/> </stream> <stream type="camcorder"> <apply effect="agc"/> </stream> </preprocess>
Ajuste de origem
A sintonia do AudioSource
não tem requisitos explícitos sobre ganho ou processamento de áudio, exceto para reconhecimento de voz (VOICE_RECOGNITION
). Os requisitos para reconhecimento de voz incluem:
- Resposta de frequência estável (+/- 3 dB) de 100 Hz a 4 kHz
- Configuração de fala próxima: 90 dB SPL lê RMS de 2500 (amostras de 16 bits)
- O nível varia linearmente de -18 dB a +12 dB em relação a 90 dB SPL
- THD < 1% (90 dB SPL na faixa de 100 a 4.000 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 44.100 ou 48.000 sem filtros passa-banda ou anti-aliasing.
- Suporte para
- Efeitos/pré-processamento desativados por padrão
Exemplos de ajuste de diferentes efeitos para diferentes fontes:
- Supressor de ruído
- Ajustado para o supressor de ruído do vento para
CAMCORDER
- Ajustado para supressor de ruído estacionário para
VOICE_COMMUNICATION
- Ajustado para o supressor de ruído do vento para
- Controle automático de ganho
- Ajustado para falar perto do microfone do
VOICE_COMMUNICATION
e do smartphone principal - Ajustado para conversas à distância para
CAMCORDER
- Ajustado para falar perto do microfone do
Recursos
Para mais informações, consulte os seguintes recursos:
- Documentação do Android para o pacote audiofx
- Documentação do Android para o efeito de áudio de supressão de ruído
- Arquivo
/device/google/crosshatch/audio_effects.xml
para o Pixel 3