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, na sigla em inglês) no caminho de captura ao
capturar com
VOICE_COMMUNICATION. - Se você fornecer um AEC, ele precisará ser detectável e controlável pelas APIs do SDK
AcousticEchoCanceler.
A plataforma Android oferece efeitos de áudio em dispositivos compatíveis no
audiofx pacote, que está disponível para os desenvolvedores.
Por exemplo, o Nexus 10 oferece suporte aos 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 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 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.CAMCORDERandroid.media.MediaRecorder.AudioSource.VOICE_COMMUNICATIONandroid.media.MediaRecorder.AudioSource.VOICE_CALLandroid.media.MediaRecorder.AudioSource.VOICE_DOWNLINKandroid.media.MediaRecorder.AudioSource.VOICE_UPLINKandroid.media.MediaRecorder.AudioSource.VOICE_RECOGNITIONandroid.media.MediaRecorder.AudioSource.MICandroid.media.MediaRecorder.AudioSource.DEFAULT
Os efeitos de pré-processamento padrão aplicados a cada instância 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 conferir 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 AudioSource do VoIP e da câmera de vídeo.AudioSource 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>
Ajuste da fonte
O ajuste de AudioSource não tem requisitos explícitos sobre ganho ou processamento de áudio, com exceção do 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 fala próxima: 90 dB SPL lê RMS de 2.500 (amostras de 16 bits)
- Nível de faixas 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 quase ultrassom (para testes, consulte
Testes de quase ultrassom):
- 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 de banda ou anti-aliasing.
- Suporte a
- Efeitos/pré-processamento desativados por padrão
Exemplos de ajuste de diferentes efeitos para diferentes fontes são:
- Supressor de ruído
- Ajustado para supressor de ruído de vento para
CAMCORDER - Ajustado para supressor de ruído estacionário para
VOICE_COMMUNICATION
- Ajustado para supressor de ruído de vento para
- Controle automático de ganho
- Ajustado para fala próxima para
VOICE_COMMUNICATIONe microfone principal do smartphone - Ajustado para fala distante para
CAMCORDER
- Ajustado para fala próxima para
Recursos
Para mais informações, acesse:
- 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.xmlpara o Pixel 3