Microphone - suppression du bruit de fond statique sous Linux

13

Ma carte son est Realtek ALC 892. Sous Windows 7 j'utilise les pilotes officiels Realtek, sous Linux j'utilise PulseAudio (sur Ubuntu 13.10). Sous Windows et Linux, lorsque j'active l'amplification du microphone + 30 dB (requis parce que mon microphone 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 ​​une option de suppression du bruit qui fonctionne (après l'avoir activée, Audacity n'affiche aucun bruit de fond et mes oreilles confirment également qu'il n'y a pas de bruit de fond).

Image montrant l'option de suppression du bruit

Ma question est de savoir comment activer la suppression du bruit de fond dans ALSA / PulseAudio? Y a-t-il un module que je peux installer ou peut-être qu'il existe un paramètre pour celui-ci qui peut être activé dans le fichier de configuration?

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

Je sais que je pourrais acheter une meilleure carte son et un meilleur microphone, mais comme je l'ai dit, les pilotes Windows Realtek suppriment le bruit au niveau du logiciel en temps réel (c'est-à-dire pas de bruit lorsque vous parlez sur TeamSpeak3 / Steam / quel que soit le programme VoIP), donc j'espère qu'il existe une telle option sous Linux également.

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

user1873947
la source
1
Crossposted : askubuntu.com/questions/421671/… Il n'y a rien de mal à cette OMI si vous l'indiquez explicitement. Sinon, vous créez la possibilité pour les gens de perdre leur temps à publier des réponses en double, etc.
goldilocks
2
@goldilocks a ajouté des informations sur les deux sites indiquant qu'il est transféré pour s'assurer qu'il n'y aura pas de réponses en double
user1873947

Réponses:

5

Selon la spécification Realtek , le

  • Technologie d'annulation de l'écho acoustique du microphone (AEC), de suppression du bruit (NS) et de formation de faisceau (BF) pour les applications vocales

est répertorié dans la liste des fonctionnalités du logiciel . J'ai également regardé la fiche technique du chipset ALC892 et ce n'est en fait 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é à ce pilote particulier:

/programming//q/4875818/684229

Tomas
la source
Merci pour la réponse. Cependant, la question que vous avez liée dit sur l'annulation de l'écho, qui est différente de la réduction du bruit de fond statique (l'écho provient des haut-parleurs, le bruit statique est généralement causé par le matériel).
user1873947
Apparemment, Realtek (et d'autres) a été poursuivi pour contrefaçon de brevet pour sa mise en œuvre de cette fonctionnalité lexology.com/library/… Cela pourrait valoir la peine de vérifier les brevets qui y sont mentionnés.
Fizz
Comme je ne suis pas convaincu de la durabilité de ce lien: "brevets américains n ° 5 825 898 (le brevet '898); 6 483 923 (le brevet' 923); 6 049 607 (le brevet '607); 6 363 345 (le brevet' 345); et 6 377 637 (le brevet '637) ".
Fizz
3

S'il s'agit d'une fonctionnalité de l'appareil et pas seulement du logiciel fourni (c'est probablement le premier), il doit être implémenté dans le pilote du noyau. 1 Il me semble que normalement, les cartes son Realtek PCI utilisent en fait le pilote Intel HDA avec un correctif pour prendre en charge les codecs ALC (pour toute personne intéressée:) [src]/sound/pci/hda/patch_realtek.c.

La recherche dans la documentation de la source du noyau, la «suppression du bruit» ou «l'annulation de l'écho» n'est pas mentionnée par rapport à ces périphériques. La recherche de la source du pilote lui-même n'est pas explicitement mentionnée non plus. Je pense que si elle était mise en œuvre, ce serait presque certainement documenté avec une interface /procou /sysquel logiciel userspace pourrait utiliser, ou avec des options pour le module du pilote.

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

Cependant , même si vous pouvez en trouver une copie quelque part, je doute beaucoup que le pilote implémente les fonctionnalités que vous souhaitez, car je n'en trouve aucune mention. Très probablement, c'est plus ou moins la même chose que ce que vous avez déjà; il peut être légèrement meilleur (que la page Mint mentionne que le pilote du noyau permute les haut-parleurs latéraux et arrière), mais cela peut aussi être pire, ou complètement non fonctionnel, car les pilotes hors arborescence ne sont pas vérifiés par les développeurs du noyau et peut contenir des problèmes liés au noyau que les auteurs ignorent (notez que les auteurs du correctif hda dans l'arborescence ont des @realtek.com.twadresses e - mail).

Donc, à moins que vous n'entendiez des différences, vous n'avez probablement pas de chance. Vous pouvez chercher des solutions logicielles pour cela, de telles fonctionnalités sont apparemment implémentées par Skype sur linux, de sorte qu'elles peuvent évidemment fonctionner en temps réel en utilisant un logiciel seul. Quelqu'un a également écrit un document là- dessus, lol. Malheureusement, je n'ai plus eu de chance à chercher autour.

Il est question ici d'utiliser les fonctionnalités de alsamixerpour réaliser une certaine réduction du bruit. Je pense que vous devrez désactiver pulseaudio pour ce faire.


1. Pulseaudio est en fait un outil de l'espace utilisateur qui est construit sur ALSA, le sous-système de son du noyau (ce qui signifie: pulseaudio n'implémente pas l'accès matériel, il fonctionne uniquement avec les flux en provenance / à destination du pilote du noyau).

2. Si vous le trouvez, vous voulez la version 3.0, pas la version 2.6. Ces chiffres se réfèrent à la version du noyau linux avec laquelle ils sont compatibles et vous utilisez un noyau 3.x. Cependant, encore une fois, si votre son est par ailleurs correct, je vous déconseille fortement de vous embêter avec cela car il est peu probable qu'il fasse quoi que ce soit pour vous.

boucle d'or
la source
Merci pour la réponse en profondeur. Cependant, j'ai trouvé quelque chose appelé "module webrtc-aec" décrit ici: wiki.gentoo.org/wiki/PulseAudio . Cependant, il semble que cela ne fonctionne que dans les applications qui prennent en charge ce module, est-ce correct? Il est également possible que cela soit désactivé dans Ubuntu, par hasard savez-vous comment activer ce module dans PulseAudio? Cela peut être la solution à mon problème
user1873947
Non, désolé. Le module pulseaudio serait un exemple de solution logicielle. Cela semble être le genre de chose qui serait mieux traitée avec une question distincte et spécifique;)
goldilocks