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?
sound
pulseaudio
noise
Vadim Peretokin
la source
la source
Réponses:
Module Pulseaudio
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. Vous avez ainsi l’avantage 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):
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 trouverez plus d'informations à ce sujet sur la page Module d'écho
Définir l'entrée comme valeur par défaut
Si vous souhaitez définir par défaut le dispositif d'annulation d'écho, il suffit de transformer la ligne ci-dessus en:
puis au bas du fichier, ajoutez
Dans ce cas, j'ai nommé la source
logitechsource
, mais vous pouvez la nommer comme vous le souhaitez et simplement redémarrer pulseaudio.Renommer l'appareil
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:
Et encore une fois, redémarrer pulseaudio. Le résultat final ressemble à ceci:
la source
load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
selon gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/224C'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 des 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ésox noise.wav -n noiseprof noise.prof
.Ensuite, vous devez créer un périphérique de bouclage ALSA:
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:(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 démarrez-le
pavucontrol
, passez à l'onglet "Enregistrement" et réglez le périphérique audio utilisé pour l'enregistrement (affiché en tant que bouton gris à droite) sur "Moniteur de bouclage audio". Dispositif". Vous devriez maintenant avoir un enregistrement clair et sans bruit!la source
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, ce 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.
la source
module-echo-cancel
qui a plusieurs implémentations, comme webrtc | speex.Voici à votre manière, implémentez webrtc-aec dans le
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aec Oui Utilise la bibliothèque de traitement audio 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 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 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é Nous avons é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. "
la source
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 / arrière). Si vous devez annuler un bruit dans cette application, vous devez acheter des microphones avec seulement 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, Look.in, etc.) peuvent avoir leurs propres implémentations d'algorithmes de traitement de la voix, même si elles peuvent être basées sur l' analyse de hangouts de webrtc.
la source