web-dev-qa-db-fra.com

Microphone - Suppression de bruit de fond statique

Ma carte son est Realtek ALC 892. Sous Windows 7, j'utilise les pilotes officiels Realtek, sous Linux, PulseAudio (sous Ubuntu 13.10). Sous Windows et Linux, lorsque j'active le renforcement du microphone à +30 dB (requis car mon microphone est faible), le bruit de fond est très gênant 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 de bruit qui fonctionne (après l’avoir activé, Audacity ne montre aucun bruit de fond et mes oreilles confirment également qu’il n’ya pas de bruit de fond).

Image showing noise suppression option

Ma question est la suivante: comment activer la suppression du bruit de fond dans ALSA/PulseAudio? Existe-t-il un module que je peux installer ou peut-être existe-t-il un paramètre qui peut être activé dans le fichier de configuration?

Je ne trouve pas de solution, et c’est la seule chose qui m’empêche de basculer complètement vers Linux: 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. signifie que la voix enregistrée sur Linux est très mauvaise.

Je sais que je pourrais acheter de meilleures cartes son et microphone, mais comme je l’ai dit, les pilotes Windows Realtek suppriment le bruit au niveau logiciel en temps réel (c’est-à-dire qu’il n’ya pas de bruit quand on parle sur le programme TeamSpeak3/Steam/n’importe quel programme voip), donc j’espère qu’il existe une telle option sur Linux aussi.

Ceci est également posté sur Unix StackExchange

14
user1873947

J'utilise lubuntu et ai déjà installé pulseaudio et pavucontrol. J'ai réussi à résoudre le problème avec le bruit de mon microphone en lançant skype depuis le terminal: Pulse_PROP="filter.want=echo-cancel" skype

15
Evgeniy

Un peu tard dans la journée, mais j'ai récemment eu un problème de bruit de fond statique similaire avec le microphone interne de mon ordinateur portable (même chipset Realtek, mais la solution devrait fonctionner pour toutes les cartes son). Après avoir regardé autour de nous, il existe effectivement un moyen de réduire le bruit en temps réel dans pulseaudio en utilisant le plug-in webrtc echo-cancel (le défaut speex echo-cancel dans Ubuntu/Mint ne fonctionnait pas bien pour moi). J'ai vu la mention de cela sur wiki de PulseAudio Gentoo , mais j'ai mis du temps à comprendre comment l'activer dans Ubuntu. Cela a fait toute une différence pour moi et le bruit de fond dans Skype est maintenant presque disparu.

Heureusement, Ubuntu emballe déjà la bibliothèque webrtc requise à cet effet. Nous pouvons compiler à partir de la source officielle en appliquant un changement minimal pour activer le plug-in, puis installer le package mis à jour:

Activez les dépôts de code source dans les sources logicielles, puis:

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

Après avoir édité le fichier debian/rules, allez à la ligne 57 et ajoutez "--enable-webrtc-aec" à DEB_CONFIGURE_EXTRA_FLAGS (après l’option --disable-hal-compat).

Ensuite, éditez le fichier debian/pulseaudio.install et ajoutez: usr/lib/Pulse - */modules/libwebrtc-util.so

Si vous souhaitez également le paramètre Pulse égaliseur global PulseaAudio , éditez alors debian/pulseaudio-utils.install et ajoutez: /usr/bin/qpaeq.

Puis construisez le paquet pour obtenir les nouveaux debs: dpkg-buildpackage -d -us -uc -nc

Vous devez installer les packages pulseaudio, pulseaudio-utils et libpulse parmi les debs générés (par exemple, pour la version Trusty 64 bits ou Mint 17 64 bits: 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).

Enfin, activez le plug-in webrtc dans /etc/Pulse/default.pa: Sudo gedit /etc/Pulse/default.pa

Ajoutez ce qui suit à la fin du fichier:

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

Vous pouvez également activer l’égaliseur si vous le souhaitez, comme indiqué dans le lien webupd8 ci-dessus.

Après ce redémarrage, pulseaudio (pulseaudio -k && pulseaudio --start), logoff + relogin ou reboot devrait activer le plugin noise/echo d'annulation dans pulseaudio. D'une manière ou d'une autre, j'ai trouvé que cela fonctionnait bien après un redémarrage complet, mais pas tellement après un simple relogin.

14
sumwale