Microfone - supressão de ruído de fundo estático [duplicado]

14

Minha placa de som é Realtek ALC 892. No Windows 7 eu uso drivers oficiais Realtek, no Linux eu uso o PulseAudio (no Ubuntu 13.10). No Windows e no Linux, quando habilito o aumento de microfone + 30dB (necessário porque meu microfone está silencioso), fico com um ruído de fundo muito chato e barulhento (também confirmei o ruído de fundo com o Audacity em ambos os sistemas).

No entanto, os drivers do Windows Realtek possuem a opção de supressão de ruído que funciona (depois de habilitá-lo, o Audacity não mostra nenhum ruído de fundo e meus ouvidos também confirmam que não há ruído de fundo).



Minha pergunta é: como habilitar a supressão de ruído de fundo no ALSA / PulseAudio? Existe algum módulo que eu possa instalar ou talvez haja uma configuração para ele que possa ser ativada no arquivo de configuração?

Eu não consigo encontrar solução para isso e isso é a única coisa que me impede de mudar completamente para o Linux - como eu falo muito com o microfone e no Windows o software Realtek remove completamente o ruído de fundo e o PulseAudio não remove isso significa que a voz gravada no Linux é muito ruim.

Eu sei que posso comprar melhor placa de som e microfone, mas como eu disse, os drivers do Windows Realtek removem o ruído em nível de software em tempo real (ou seja, sem barulho quando se fala no programa TeamSpeak3 / Steam / whatever voip) é essa opção no Linux também.

Isso também é colocado no Unix StackExchange

    
por user1873947 16.02.2014 / 15:43

2 respostas

15

Eu uso o lubuntu e já instalei o pulseaudio e o pavucontrol. Consegui consertar o problema com o ruído do microfone iniciando o skype no terminal: PULSE_PROP="filter.want=echo-cancel" skype

    
por Evgeniy 21.01.2015 / 23:58
12

Um pouco tarde no dia, mas eu recentemente tive um problema similar de ruído de fundo estático com o microfone interno do meu laptop (mesmo chipset Realtek eu acredito, mas a solução deve funcionar para todas as placas de som). Depois de olhar ao redor, há de fato uma maneira de reduzir o ruído em tempo real no pulseaudio usando o plugin webrtc echo-cancel (o padrão speex echo-cancel no Ubuntu / Mint não funcionou bem para mim). Eu vi menção a isso no wiki do PulseAudio Gentoo , mas demorei para descobrir como habilitar no Ubuntu. Isso fez uma diferença para mim e o ruído de fundo no Skype está praticamente acabado.

Por sorte, o Ubuntu já empacota a biblioteca webrtc necessária para isso. Podemos compilar a partir da fonte oficial, aplicando a alteração mínima para habilitar o plugin e, em seguida, instalar o pacote atualizado:

Ativar repositórios de código-fonte em fontes de software e, em seguida:

sudo apt install build-essential

# do this if like me you have libjack-jackd2-0 installed and not libjack0
sudo apt install libjack-jackd2-dev

# for jack dependency problem accept the second solution of not installing libjack-dev, libjack0 since we already have installed required dev package above
sudo apt build-dep pulseaudio

# also install webrtc
sudo apt install libwebrtc-audio-processing-dev

# get the pulse source package
apt source pulseaudio
cd pulseaudio-4.0

Depois de editar o arquivo debian / rules, vá para ~ 57 e adicione " --enable-webrtc-aec " a DEB_CONFIGURE_EXTRA_FLAGS (digamos após a opção --disable-hal-compat )

Em seguida, edite o arquivo debian / pulseaudio.install e adicione: usr / lib / pulse - * / modules / libwebrtc-util.so

Se você também deseja o pulso PulseaAudio System-Wide Equalizer , edite debian/pulseaudio-utils.install e adicione: /usr/bin/qpaeq .

Em seguida, crie o pacote para obter os novos debs: dpkg-buildpackage -d -us -uc -nc

Você deve instalar pacotes pulseaudio, pulseaudio-utils e libpulse entre os debs gerados (por exemplo, para o lançamento do Trusty 64bit ou o Mint 17 64bit: sudo dpkg -i pulseaudio_4.0-0ubuntu11_amd64.deb pulseaudio-utils_4.0-0ubuntu11_amd64.deb libpulse0_4.0-0ubuntu11_amd64.deb libpulsedsp_4.0-0ubuntu11_amd64.deb libpulse-mainloop-glib0_4.0-0ubuntu11_amd64.deb )

Por fim, ative o plug-in webrtc em /etc/pulse/default.pa: sudo gedit /etc/pulse/default.pa

Adicione o seguinte no final do arquivo:

### Load echo cancellation module
load-module module-echo-cancel source_name=echosource aec_method=webrtc
set-default-source echosource

Você também pode ativar o equalizador se desejar, conforme mencionado no link webupd8 acima.

Depois de reiniciar o pulseaudio ( pulseaudio -k && pulseaudio --start ), ou logoff + relogin, ou reinicialização, habilite o plugin de cancelamento de ruído / ruído no pulseaudio. De alguma forma eu achei que funcionava bem após uma reinicialização completa, mas não muito depois de apenas um relogin.

    
por sumwale 14.07.2014 / 12:34