A versão do Android 10 inclui os seguintes requisitos para captura com VOICE_COMMUNICATION
.
- As implementações precisam fornecer um cancelamento de eco acústico (AEC) no caminho de captura ao
capturar com
VOICE_COMMUNICATION
. - Se você fornecer um AEC, ele precisa ser detectável e controlável pelo
AcousticEchoCanceler
da API 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 oferece suporte aos seguintes efeitos de pré-processamento:
Parear com instâncias do AudioSource
Os efeitos de pré-processamento são associados ao modo de caso de uso em que o
pré-processamento é solicitado. No desenvolvimento de apps Android, um caso de uso é chamado
de instância AudioSource
. 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
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 de AudioSource
, crie um
arquivo /vendor/etc/audio_effects.xml
e especifique os
efeitos de pré-processamento a serem ativados. Para conferir 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, sejam mantidos durante toda a
sessão.
O exemplo a seguir ativa o pré-processamento para as instâncias AudioSource
de VoIP e AudioSource
de câmera. Ao declarar
a configuração AudioSource
dessa maneira, o framework
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>
Sintonia da origem
O ajuste AudioSource
não tem requisitos explícitos sobre ganho
de áudio ou processamento de áudio, exceto o reconhecimento de voz
(VOICE_RECOGNITION
). Os requisitos para reconhecimento de voz incluem:
- Resposta de frequência fixa (+/- 3 dB) de 100 Hz a 4 kHz
- Configuração de conversa por perto: 90 dB SPL lê RMS de 2500 (amostras de 16 bits)
- O nível é rastreado 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óximos):
- Suporte a
SUPPORT_PROPERTY_MIC_NEAR_ULTRASOUND
, conforme definido na seção 7.8.3 do CDD. - Suporte a uma ou ambas as taxas de amostragem de 44.100 ou 48.000 sem filtros passa-banda ou anti-aliasing.
- Suporte a
- Efeitos/pré-processamento desativados por padrão
Exemplos de ajuste de efeitos diferentes para fontes diferentes:
- Supressão de ruído
- Ajustado para o supressor de ruído do vento para
CAMCORDER
- Ajuste do supressor de ruído estacionário para
VOICE_COMMUNICATION
- Ajustado para o supressor de ruído do vento para
- Controle automático de ganho
- Sintonizado para conversa próxima para
VOICE_COMMUNICATION
e microfone principal do smartphone - Ajuste para conversa à distância para
CAMCORDER
- Sintonizado para conversa próxima para
Recursos
Para 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
- Arquivo
/device/google/crosshatch/audio_effects.xml
para o Pixel 3