Configurar 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 estiver fornecendo um AEC, ele deverá ser detectável e controlável por meio do AcousticEchoCanceler da API do SDK.

A plataforma Android fornece efeitos de áudio em dispositivos suportados 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 AudioSource

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 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. Por 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 criadas e destruídas, permitindo que os efeitos (como o Loudness Enhancer) persistam durante toda a sessão.

O exemplo a seguir permite 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 possui requisitos explícitos de 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 Close-talk: 90 dB SPL lê RMS de 2500 (amostras de 16 bits)
  • O nível rastreia 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 antialiasing.
  • Efeitos/pré-processamento desabilitados 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
    • Ajustado para supressor de ruído estacionário para VOICE_COMMUNICATION
  • Controle Automático de Ganho
    • Ajustado para conversa próxima para VOICE_COMMUNICATION e microfone do telefone principal
    • Sintonizado para conversação remota para CAMCORDER

Recursos

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