Configurar efeitos de pré-processamento

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.
  • 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
  • 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

Recursos

Para mais informações, consulte os seguintes recursos: