Microfone - supressão de ruído de fundo estático no Linux

13

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 eu uso o microfone boost + 30db (necessário porque meu microfone está silencioso), fico com um ruído de fundo muito chato e barulhento (eu também confirmei o ruído de fundo com o Audacity nos dois 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 Ask Ubuntu , que por sua vez já foi respondido aqui .

    
por user1873947 16.02.2014 / 17:29

3 respostas

5

De acordo com o Especificação Realtek , o

  • Microphone Acoustic Echo Cancellation (AEC), Noise Suppression (NS), and Beam Forming (BF) technology for voice applications

está listado na lista Recursos de software . Eu também procurei no Ficha de dados do chipset ALC892 e, na verdade, não é um recurso do chipset. Por isso, confirma-se que essa funcionalidade é apenas um recurso de software, manipulado pelo driver do Windows ALC892.

Eu, portanto, colocaria o esforço para uma solução mais geral da supressão de ruído no Linux, não vinculada a esse driver em particular:

link

    
por 19.02.2014 / 08:09
3

Se este é um recurso do dispositivo e não apenas o software com o qual veio (provavelmente é o primeiro), então ele deve ser implementado no driver do kernel. 1 Parece-me que normalmente, as placas de som Realtek PCI usam o driver Intel HDA com um patch para suportar os codecs ALC (para quem estiver interessado: [src]/sound/pci/hda/patch_realtek.c ).

A pesquisa na documentação de origem do kernel, "supressão de ruído" ou "cancelamento de eco" não é mencionada em relação a esses dispositivos. Pesquisando a fonte do driver em si, não é mencionado explicitamente. Eu acho que se fosse implementado, isso quase certamente seria documentado com uma interface em /proc ou /sys que o software do espaço do usuário poderia usar, ou com opções para o módulo do driver.

A questão, é claro, é que a Realtek, como a maioria dos fabricantes de hardware, considera o código fonte do seu driver como secreto, tornando difícil ou impossível para terceiros criar drivers para, por exemplo, sistemas que a Realtek não suporta totalmente, como o linux. A Realtek tem uma página listando um driver linux , no entanto, os links parecem estar mortos. Se você tiver mais sorte, alguém tem instruções para instalá-lo aqui (esse é um site orientado para o Mint, mas o processo será ser o mesmo para qualquer distro). 2

No entanto , mesmo se você puder encontrar uma cópia em algum lugar, duvido muito que o driver implemente os recursos desejados, já que não há nenhuma menção a isso que eu possa encontrar. Muito provavelmente, é mais ou menos o mesmo que você já tem; pode ser um pouco melhor (a página Mint menciona que o driver do kernel troca os alto-falantes laterais e traseiros), mas também pode acabar sendo pior ou completamente não funcional, já que os drivers fora da árvore não são examinados pelos desenvolvedores do kernel e pode conter problemas em relação ao kernel que os autores desconhecem (note que os autores do patch hda em árvore possuem @realtek.com.tw endereços de e-mail).

Então, a menos que você ouça algo diferente, provavelmente você está sem sorte. Você pode procurar por soluções de software para isso, tais recursos são aparentemente implementados pelo Skype no linux, então eles evidentemente podem trabalhar em tempo real usando apenas o software. Alguém também escreveu um artigo sobre ele, lol. Eu não tive mais sorte em procurar por aí, infelizmente.

alguma discussão aqui sobre como usar os recursos de alsamixer para realizar alguma redução de ruído. Eu acho que você terá que desabilitar o pulseaudio para fazer isso.

1. O Pulseaudio é, na verdade, uma ferramenta de espaço do usuário construída sobre o ALSA, o subsistema de som do kernel (o que significa que: pulseaudio não implementa o acesso ao hardware, apenas funciona com fluxos provenientes do driver do kernel).

2. Se você encontrá-lo, você quer a versão 3.0, não a versão 2.6. Esses números referem-se à versão do kernel do Linux que eles são compatíveis e você está usando um kernel 3.x. No entanto, novamente, se o seu som estiver bem, eu strongmente recomendo que não se incomode com isso, pois é improvável que faça algo por você.

    
por 16.02.2014 / 18:48
0

Ativar webrtc plugin para pulseaudio ajudou no meu caso. Eu postei os passos para ativar na minha resposta em askubuntu.

    
por 14.07.2014 / 12:40