Mikrofon - Unterdrückung statischer Hintergrundgeräusche unter Linux


13

Meine Soundkarte ist Realtek ALC 892. Unter Windows 7 verwende ich offizielle Realtek-Treiber, unter Linux verwende ich PulseAudio (unter Ubuntu 13.10). Wenn ich unter Windows und Linux die Mikrofonverstärkung + 30 dB aktiviere (erforderlich, weil mein Mikrofon leise ist), werden sehr störende und laute Hintergrundgeräusche erzeugt (ich habe die Hintergrundgeräusche auch mit Audacity auf beiden Systemen bestätigt).

Windows Realtek-Treiber verfügen jedoch über eine funktionierende Option zur Rauschunterdrückung (nach der Aktivierung zeigt Audacity keine Hintergrundgeräusche an und meine Ohren bestätigen auch, dass keine Hintergrundgeräusche vorhanden sind).

Bild mit Option zur Rauschunterdrückung

Meine Frage ist, wie kann ich die Unterdrückung von Hintergrundgeräuschen in ALSA / PulseAudio aktivieren? Gibt es ein Modul, das ich installieren kann, oder gibt es eine Einstellung dafür, die in der Konfigurationsdatei aktiviert werden kann?

Ich kann keine Lösung dafür finden und dies ist das einzige, was mich daran hindert, vollständig auf Linux umzusteigen. Da ich viel mit dem Mikrofon spreche und unter Windows die Realtek-Software die Hintergrundgeräusche vollständig entfernt und PulseAudio diese nicht entfernt Bedeutet, dass die unter Linux aufgenommene Stimme sehr schlecht ist.

Ich weiß, ich könnte eine bessere Soundkarte und ein besseres Mikrofon kaufen, aber wie gesagt, Windows Realtek-Treiber beseitigen das Rauschen auf Softwareebene in Echtzeit (dh kein Rauschen beim Sprechen über TeamSpeak3 / Steam / ein beliebiges VoIP-Programm), und ich hoffe, dass es eine solche Option gibt auch unter Linux.

Dies ist auch auf Ask Ubuntu angekreuzt, was hier wiederum bereits beantwortet wurde .


1
Crossposted: askubuntu.com/questions/421671/… An dieser IMO ist nichts auszusetzen, wenn Sie dies ausdrücklich angeben. Andernfalls können die Leute ihre Zeit damit verschwenden, doppelte Antworten usw. zu veröffentlichen.
goldilocks

2
@goldilocks fügte Informationen auf beiden Sites hinzu, dass es Crossposts gibt, um sicherzustellen, dass es keine doppelten Antworten gibt
user1873947

Antworten:


5

Gemäß der Realtek-Spezifikation ist die

  • Mikrofonakustische Echounterdrückung (AEC), Rauschunterdrückung (NS) und Strahlformung (BF) für Sprachanwendungen

ist in der Liste der Softwarefunktionen aufgeführt. Ich habe mir auch das Datenblatt des ALC892-Chipsatzes angesehen und es ist eigentlich kein Merkmal des Chipsatzes. Es wird daher bestätigt, dass es sich bei dieser Funktionalität ausschließlich um eine Softwarefunktion handelt, die von Ihrem Windows ALC892-Treiber verarbeitet wird.

Ich würde mich daher um eine allgemeinere Lösung der Rauschunterdrückung unter Linux bemühen, die nicht an diesen speziellen Treiber gebunden ist:

/programming//q/4875818/684229


Danke für die Antwort. Die von Ihnen verknüpfte Frage bezieht sich jedoch auf die Echokompensation, die sich von der Reduzierung des statischen Hintergrundrauschens unterscheidet (das Echo kommt von den Lautsprechern, das statische Rauschen wird im Allgemeinen von der Hardware verursacht).
user1873947

Anscheinend wurde Realtek (und andere) wegen Patentverletzung wegen der Implementierung dieser Funktion angeklagt. Lexology.com/library/… Vielleicht lohnt es sich, die dort genannten Patente zu prüfen.
Fizz

Da ich von der Haltbarkeit dieser Verbindung nicht überzeugt bin: "US-Patent Nr. 5,825,898 (das '898-Patent); 6,483,923 (das' 923-Patent); 6,049,607 (das '607-Patent); 6,363,345 (das' 345-Patent); und 6,377,637 (das '637-Patent) ".
Fizz

3

Wenn dies eine Funktion des Geräts ist und nicht nur die Software, mit der es geliefert wurde (wahrscheinlich die erstere), muss es im Kerneltreiber implementiert werden. 1 Normalerweise verwenden Realtek PCI-Soundkarten den Intel HDA-Treiber mit einem Patch zur Unterstützung der ALC-Codecs (für alle Interessierten:) [src]/sound/pci/hda/patch_realtek.c.

Das Durchsuchen der Kernel-Quelldokumentation, "Noise Suppression" oder "Echo Cancellation" wird in Bezug auf diese Geräte nicht erwähnt. Das Durchsuchen der Treiberquelle selbst wird ebenfalls nicht explizit erwähnt. Ich denke , wenn sie umgesetzt wurden, dies mit ziemlicher Sicherheit mit einer Schnittstelle in dokumentiert werden würde /procoder /sysdie User - Space - Software nutzen könnte, oder mit Optionen für das Treibermodul.

Das Problem ist natürlich, dass Realtek, wie die meisten Hardwarehersteller, den Quellcode ihres Treibers für geheim hält, was es Dritten erschwert oder unmöglich macht, Treiber für z. B. Systeme zu erstellen, die Realtek nicht vollständig unterstützt, wie z. B. Linux . Realtek hat eine Seite mit einem Linux-Treiber , die Links scheinen jedoch nicht mehr zu funktionieren . Wenn Sie mehr Glück haben, hat jemand Anweisungen, wie Sie es hier installieren können (das ist eine Mint-orientierte Site, aber der Vorgang ist für jede Distribution der gleiche). 2

Allerdings , auch wenn Sie eine Kopie irgendwo finden kann, bezweifle ich sehr , dass Treiber implementiert die Funktionen , die Sie wollen, da es nicht erwähnt ist , dass ich finden kann. Höchstwahrscheinlich ist es mehr oder weniger dasselbe wie das, was Sie bereits haben. Möglicherweise ist es etwas besser (auf der Mint-Seite wird erwähnt, dass der Kerneltreiber den Seiten- und den hinteren Lautsprecher vertauscht), es kann jedoch auch schlimmer oder völlig funktionsunfähig werden, da die Kernel-Entwickler keine Nicht-Baum-Treiber überprüfen und kann Probleme in Bezug auf den Kernel enthalten, von denen die Autoren nichts wissen (beachten Sie, dass die Autoren des in-tree hda-Patches @realtek.com.twE-Mail-Adressen haben).

Wenn Sie also nichts anderes hören, haben Sie wahrscheinlich Pech. Sie könnten sich nach Softwarelösungen umsehen, solche Funktionen werden anscheinend von Skype unter Linux implementiert, sodass sie offensichtlich in Echtzeit nur mit Software funktionieren können. Jemand hat auch eine Zeitung darüber geschrieben, lol. Ich hatte leider kein weiteres Glück beim Stöbern.

Es wird hier diskutiert , die Funktionen von alsamixerzu verwenden, um eine gewisse Rauschreduzierung zu erreichen. Ich denke, Sie müssen pulseaudio deaktivieren, um das zu tun.


1. Pulseaudio ist eigentlich ein Userspace-Tool, das auf ALSA, dem Sound-Subsystem des Kernels, aufbaut (das heißt: Pulseaudio implementiert den Hardware-Zugriff nicht, sondern funktioniert nur mit Streams, die vom / zum Kerneltreiber kommen).

2. Wenn Sie es finden, möchten Sie die 3.0-Version, nicht die 2.6-Version. Diese Zahlen beziehen sich auf die Version des Linux-Kernels, mit dem sie kompatibel sind, und Sie verwenden einen 3.x-Kernel. Wenn Ihr Sound ansonsten in Ordnung ist, empfehle ich Ihnen jedoch dringend , sich nicht damit zu beschäftigen, da es unwahrscheinlich ist, dass Sie etwas dagegen tun.


Vielen Dank für die ausführliche Antwort. Allerdings habe ich hier etwas namens "webrtc-aec module" beschrieben: wiki.gentoo.org/wiki/PulseAudio . Es scheint jedoch, dass es nur in Apps funktioniert, die dieses Modul unterstützen. Ist das richtig? Es ist auch möglich, dass dies in Ubuntu deaktiviert ist. Weißt du vielleicht, wie man dieses Modul in PulseAudio aktiviert? Es könnte die Lösung für mein Problem sein
user1873947

Tut mir leid Das pulseaudio-Modul wäre ein Beispiel für eine Softwarelösung. Es scheint die Art von Sache, die am besten mit einer separaten, spezifischen Frage behandelt werden würde;)
Goldlöckchen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.