Microphone – suppression du bruit de fond statique sous Linux

Ma carte son est Realtek ALC 892. Sur Windows 7 j'utilise les drivers officiels de Realtek, sous Linux j'utilise PulseAudio (sur Ubuntu 13.10). Sous Windows et Linux, quand j'active le micro boost + 30db (requirejs parce que mon micro est silencieux), j'obtiens un bruit de fond très ennuyeux et fort (j'ai également confirmé le bruit de fond avec Audacity sur les deux systèmes).

Cependant, les pilotes Windows Realtek ont ​​l'option de suppression de bruit qui fonctionne (après l'avoir activé, Audacity ne montre aucun bruit de fond et mes oreilles confirment également qu'il n'y a pas de bruit de fond).

Image showing noise suppression option

Ma question est comment puis-je activer la suppression du bruit de fond dans ALSA / PulseAudio? Y at-il un module que je peux installer ou peut-être il y a un paramètre qui peut être activé dans le file de configuration?

Je n'arrive pas à find de solution et c'est la seule chose qui m'empêche de passer complètement à Linux – comme je parle beaucoup avec le microphone et sur Windows, le logiciel Realtek supprime complètement le bruit de fond et PulseAudio ne le supprime pas signifie que la voix enregistrée sur Linux est très mauvaise.

Je sais que je pourrais acheter une meilleure carte son et un microphone, mais comme je l'ai dit, les pilotes Windows Realtek suppriment le bruit en time réel (donc pas de bruit quand on parle de TeamSpeak3 / Steam / quel que soit le programme voip) sur Linux aussi.

Ceci est également posté sur Ask Ubuntu qui à son tour a déjà été répondu ici .

Selon la spécification de Realtek , la

  • Annulation de l'écho acoustique (AEC), suppression du bruit (NS) et technologie Beam Forming (BF) pour les applications vocales

est répertorié dans la list des fonctionnalités du logiciel . J'ai également regardé dans la fiche technique du chipset ALC892 et ce n'est pas une caractéristique du chipset. Il est donc confirmé que cette fonctionnalité est uniquement une fonctionnalité logicielle, gérée par votre pilote Windows ALC892.

Je mettrais donc l'effort à une solution plus générale de la suppression du bruit sur linux, non liée à ce pilote particulier:

https://stackoverflow.com/q/4875818/684229

Si c'est une fonctionnalité de l'appareil et pas seulement le logiciel fourni (c'est probablement le premier), il doit être implémenté dans le pilote du kernel. 1 Il me semble que normalement, les maps son Realtek PCI utilisent le pilote Intel HDA avec un patch pour supporter les codecs ALC (pour toute personne intéressée: [src]/sound/pci/hda/patch_realtek.c )).

La search dans la documentation source du kernel, "suppression de bruit" ou "annulation d'écho" n'est pas mentionnée en relation avec ces périphériques. La search de la source du pilote elle-même n'est pas explicitement mentionnée non plus. Je pense que si elle était implémentée, cela serait presque certainement documenté avec une interface dans /proc ou /sys que le logiciel d'espace user pourrait utiliser, ou avec des options pour le module de pilote.

Le problème, bien sûr, est que Realtek, comme la plupart des fabricants de matériel, considère leur code source comme étant secret, ce qui rend difficile ou impossible pour des tiers de créer des pilotes pour des systèmes tels que linux . Realtek a une page répertoriant un pilote Linux , cependant, les liens semblent être morts. Si vous avez de la chance, quelqu'un a des instructions pour l'installer ici (c'est un site orienté Mint, mais le process sera le même pour n'importe quelle dissortingbution). 2

Cependant , même si vous pouvez find une copy quelque part, je doute fort que ce pilote implémente les fonctionnalités que vous voulez, puisqu'il n'y a aucune mention de ceci que je puisse find. Très probablement, c'est plus ou less la même chose que ce que vous avez déjà; il peut être légèrement meilleur (la page Mint mentionne que le pilote du kernel permute les haut-parleurs latéraux et arrière), mais cela peut aussi finir par être pire ou complètement non fonctionnel, car les pilotes d'arborescence ne sont pas vérifiés par les développeurs du kernel et peuvent contenir des problèmes concernant le kernel dont les auteurs ne sont pas conscients (notez que les auteurs du patch hda dans l'arborescence ont des @realtek.com.tw e-mail @realtek.com.tw ).

Donc, à less que vous n'entendiez autre chose, vous n'avez probablement pas de chance. Vous pouvez searchr des solutions logicielles à ce sujet, de telles fonctionnalités sont apparemment implémentées par Skype sur Linux, de sorte qu'elles peuvent évidemment fonctionner en time réel en utilisant uniquement le logiciel. Quelqu'un a aussi écrit un article , lol. Je n'ai pas eu plus de chance de chercher autour, malheureusement.

Il y a une discussion ici sur l'utilisation des fonctionnalités d' alsamixer pour réaliser une réduction du bruit. Je pense que vous devrez désactiver pulseaudio pour faire cela.


1. Pulseaudio est en fait un outil d'espace user qui s'appuie sur ALSA, le sous-système audio du kernel (ce qui signifie que pulseaudio n'implémente pas l'access matériel, il fonctionne uniquement avec les stream provenant du pilote du kernel).

2. Si vous le trouvez, vous voulez la version 3.0, pas la version 2.6. Ces nombres se réfèrent à la version du kernel Linux avec laquelle ils sont compatibles et vous utilisez un kernel 3.x. Cependant, encore une fois, si votre son est correct, je vous recommand fortement de ne pas vous préoccuper de cela car il est peu probable de faire quoi que ce soit pour vous.

Permettre le plugin webrtc à pulseaudio a aidé pour mon cas. J'ai posté les étapes pour activer dans ma réponse sur askubuntu.