← Página inicial
[Linux] · · 2 min de leitura

Como ativar o cancelamento de eco no PulseAudio

TL;DR

É possível melhorar consideravelmente a qualidade de áudio de um microfone disponível como dispositivo de entrada em uma distribuição Linux ao ativar um módulo de cancelamento de eco do PulseAudio chamado module-echo-cancel.

Verificando a lista de módulos do PulseAudio

  1. Abra o seu terminal e digite pacmd — isso te dará acesso a uma ferramenta que te permite reconfigurar o servidor de som PulseAudio durante a sua execução.
  2. Insira o comando list-modules para conferir uma lista de todos os módulos ativos.
  3. Procure pelo módulo module-echo-cancel. Se ele estiver listado mas inativo, você precisará configurar outros argumentos em seu arquivo /etc/pulse/default.pa para ativá-lo. Se ele não estiver ativo, você precisará adicionar algumas linhas ao fim do seu arquivo /etc/pulse/default.pa.

Editando o arquivo /etc/pulse/default.pa

  1. Com privilégios de administrador, abra o arquivo /etc/pulse/default.pa em seu editor de preferência.
  2. Adicione as seguintes linhas ao fim de seu arquivo, salvando as alterações logo em seguida:
### Enable Echo/Noise-Cancellation
load-module module-echo-cancel use_master_format=1 aec_method=webrtc aec_args="analog_gain_control=0\ digital_gain_control=1" source_name=echoCancel_source sink_name=echoCancel_sink
set-default-source echoCancel_source
set-default-sink echoCancel_sink

Efetivando as mudanças no sistema

O procedimento descrito abaixo irá interferir no uso do PulseAudio em processos em execução.
  1. Encerre o processo atual do PulseAudio.

    
    pulseaudio -k
    

  2. Inicie um novo processo.

    
    pulseaudio --start
    

Uma opção de entrada de áudio marcada como echo cancelled (ou alguma variação desta expressão) estará disponível no menu de gerenciamento de som de sua instalação GNU/Linux.

Uma captura de tela das opções de dispositivos de entrada mostrando uma opção com a etiqueta echo cancelled.

No uso de algumas distribuições Linux como Manjaro, notei que o módulo tem uma tendência a falhar logo após a inicialização do sistema. Isso pode ser resolvido aplicando o comando pactl load-module module-echo-cancel para iniciá-lo diretamente.

Referências

  1. PulseAudio Troubleshooting: Enable Echo/Noise-Cancellation [arquivado] (documentação oficial da distribuição Arch Linux)
  2. Realtime noise-removal with PulseAudio? [arquivado] (tópico do fórum Ask Ubuntu)