Est-il possible de supprimer le bruit en temps réel avec PulseAudio, de sorte que la sortie audio qui en sort soit plus douce?
module-echo-cancel
J'ai commencé à lire beaucoup de choses sur PulseAudio et sur les options "cachées" qu'il possédait afin de pouvoir en trouver une similaire à cette question. Celui que j’ai trouvé est le module de suppression de bruit, qui réduit considérablement le bruit statique sur le microphone, et même BEAUCOUP de bruit de fond, ce qui vous permet d’enregistrer uniquement votre propre voix avec une excellente qualité (pour l’enregistrement audio par exemple). Pour ce faire, suivez ces étapes:
Sudo nano /etc/Pulse/default.pa
Ajoutez la ligne suivante n'importe où dans le fichier, mais je le recommande presque à la fin, où vous trouverez un commentaire sur les éléments d'annulation d'écho (~ ligne 140):
load-module module-echo-cancel
Rechargez PulseAudio ( pulseaudio -k
) ou redémarrez simplement l'ordinateur. Vous devriez pouvoir sélectionner la nouvelle option d'annulation du bruit dans la section Périphérique d'entrée:
Vous pouvez trouver plus d’informations à ce sujet sur le page Echo Cancel Module
Si vous souhaitez définir par défaut le dispositif d'annulation d'écho, il suffit de transformer la ligne ci-dessus en:
load-module module-echo-cancel source_name=logitechsource
puis au bas du fichier, ajoutez
set-default-source logitechsource
Dans ce cas, j'ai nommé la source logitechsource
name__, mais vous pouvez la nommer comme vous voulez et simplement redémarrer pulseaudio.
Enfin, si vous ne souhaitez pas un nom très long dans les paramètres de son (lorsque vous souhaitez sélectionner un périphérique d'entrée/de sortie). Ma suggestion est de renommer le périphérique d'entrée comme ceci:
load-module module-echo-cancel source_name=logitechsource source_properties=device.description=LogitechHD
Et encore une fois, redémarrer pulseaudio. Le résultat final ressemble à ceci:
C'est une vieille question, mais j'avais le même problème et après une recherche sur Google (où je trouvais principalement des personnes qui s'accordaient à dire que ce n'était pas possible) et après avoir lu certaines pages de manuel, j'ai développé une solution basée sur l'idée de user2330377.
Vous devez d’abord créer un profil de bruit pour SoX. Utilisez n’importe quel programme d’enregistrement audio pour enregistrer quelques secondes de bruit, puis cd
dans le répertoire dans lequel vous l’avez sauvegardé et saisissez sox noise.wav -n noiseprof noise.prof
.
Ensuite, vous devez créer un périphérique de bouclage ALSA:
Sudo modprobe snd_aloop
Cela est nécessaire car pulseaudio, contrairement à Jack, ne peut pas connecter directement un logiciel audio ensemble; nous allons donc utiliser le périphérique de bouclage comme proxy.
Vous devez maintenant démarrer paman
et rechercher les noms de votre microphone (ou de tout autre périphérique d’enregistrement) et du périphérique de bouclage que nous venons de créer. Une fois que ceux-ci sont trouvés, vous pouvez exécuter la commande suivante pour commencer à enregistrer le son de votre microphone, en le transmettant via SoX, puis en le lisant sur le périphérique de bouclage:
pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo --latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw - -b 16 -e signed -c 2 -r 44100 -t raw - noisered noise.prof 0.2|pacat -p -d alsa_output.2.analog-stereo --latency=1msec
(Où vous devez substituer les noms de périphérique corrects pour les paramètres -d - le périphérique d'entrée pour la première invocation de paquet et la sortie de périphérique en boucle pour le second.)
Voilà, c'est presque fini! Dans la dernière étape, commencez à enregistrer le son avec l'application de votre choix, puis lancez pavucontrol
name__, passez à l'onglet "Recording" et réglez le périphérique audio utilisé pour l'enregistrement (affiché en tant que bouton gris à droite) à "Monitor of Loopback". Appareil audio". Vous devriez maintenant avoir un enregistrement clair et sans bruit!
Une enquête a montré qu’il n’existait aucun moyen connu de filtrage par réduction de bruit en temps réel avec un sous-système Linux. Certains sites Web pointent vers du matériel que vous pouvez acheter et qui devrait faire l’affaire bien mieux que de faire un filtre logiciel.
Alternativement, s'il s'agit d'un enregistrement, vous pouvez transmettre le son via Audacity et y utiliser le filtre de bruit.
Voici à votre manière, implémentez webrtc-aec dans le
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aec Oui Utilise la bibliothèque audioProcessing de webrtc.org pour améliorer considérablement les appels VoIP dans les applications qui le prennent en charge en effectuant la suppression de l'écho acoustique, le contrôle de gain analogique, la suppression du bruit et d'autres traitements.
Voici un article daté de 2013 sur le sujet (suppression du bruit avec pulseaudio et non pas spécifiquement sur webrtc-aec) http://lac.linuxaudio.org/2013/papers/37.pdf
"Nous avons présenté les premiers résultats d'une solution de réduction du bruit/écho multicanaux construite sur PulseAudio et ayant motivé les décisions de conception. Les travaux ont abouti à de nombreuses améliorations du cadre de suppression et d'écho d'écho PulseAudio, qui ont été a également contribué à l'optimisation du code pour le mixage de flux audio, à des méthodes de rééchantillonnage plus efficaces et à la mise en œuvre d'un AEC efficace dans le pipeline de traitement multicanal. "
Il n'y a aucune information sur la page de documentation du module sur l'annulation de bruit. Il y a seulement un algorithme AEC (Acoustic Echo Cancellation) dans module-echo-cancel, qui a plusieurs implémentations, comme webrtc | speex.
Par conséquent, vous devez acheter autant que possible des écouteurs | microphones avec fonction d'annulation du bruit intégrée.
En testant l’enregistrement vocal à Ubuntu, j’ai trouvé des qualités particulières:
Skype, Telegram utilise une entrée brute du périphérique par défaut (dans mon cas, les prises jack avant/arrière). Si vous devez annuler un bruit dans cette application, vous devez acheter des micros pour casques | uniquement avec la fonction d'annulation du bruit intégrée.
Si vous devez utiliser des appels vocaux dans un navigateur, vous devez garder à l’esprit que les navigateurs disposent de leurs propres implémentations d’algorithmes de traitement vocal, par exemple. WebRTC.
De plus, les applications Web (sites tels que talky, hangouts, paraître.in, etc.) peuvent avoir leurs propres implémentations d'algorithmes de traitement de la voix, même si elles peuvent être basées sur webrtc hangout-analysis