Configurando efeitos de pré-processamento

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.
  • 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
  • Controle Automático de Ganho
    • Sintonizado para conversa próxima para VOICE_COMMUNICATION e microfone do telefone principal
    • Sintonizado para far-talk para CAMCORDER

Recursos

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