Reduzieren von Mikrofonrauschen durch Pipewire-Module

Reduzieren von Mikrofonrauschen durch Pipewire-Module

Mit pulseaudio war es einfach, ein Modul zur Mikrofon-Rauschunterdrückung zu laden. Dieser Link erklärt es deutlich: https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio

Ich möchte rnnoise als Plugin von Pipewire hinzufügen, um das Mikrofonrauschen für alle Benutzer zu unterdrücken.

Ich suche eine minimalistische Lösung und möchte auf Applikationen verzichten. Wie diese hier: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file

Antwort1

InstallierenRauschunterdrückung für Sprache. Ab April 2024 gibt es kein Ubuntu-Paket, siehediese offene Fragefür Installationsanweisungen. Es ist jedoch für Arch, Alpine, Gentoo und openSUSE gepackt. In der README-Datei finden Sie Einstellungen, die Sie anpassen können.

Antwort2

Ich habe einen Weg gefunden, es rnnoiseals pipewirePlugin für alle Benutzer zu laden.

Schritt 1:
Auf dieser SeiternnoiseSie können die für X86-Linux kompilierten Treiber herunterladen . Dies ist nicht die letzte Version von rnnoise. Wenn Sie die neueste Version möchten, müssen Sie die Kompilierung meines Erachtens selbst durchführen.offizielles GitHub-Repo.

Schritt 2:
Im heruntergeladenen Archiv finden Sie die benötigten Linux-Bibliotheken. Nehmen Sie immer Mono-Bibliotheken. Sie haben wahrscheinlich nur ein Mikrofon! Ich schlage vor, sie in zu speichern. /usr/lib/audio/Sie müssen also den Ordner „Audio“ erstellen. Da ich die Dateien umbenannt habe, habe ich jetzt in diesem Ordner:

  • ladspa.so
  • lv2.so
  • vst3.so
  • vst.so

Schritt 3
Erstellen Sie die beiden pipewireOrdner, um diesen Pfad zu erhalten:

/etc/pipewire/pipewire.conf.d/

Schritt 4
Erstellen Sie in diesem Ordner die Datei 99-mic-denoising.conf. Fügen Sie in diese Datei diesen Inhalt ein:

    context.modules = [
        {name = libpipewire-module-filter-chain
        args = {
            node.description =  "Noise Canceling source"
            media.name =  "Noise Canceling source"
            filter.graph = {
                nodes = [
                    {
                    type = ladspa
                    name = rnnoise
                    plugin = /usr/lib/audio/ladspa.so
                    label = noise_suppressor_mono
                    control = {
                        "VAD Threshold (%)" = 90.0
                        "VAD Grace Period (ms)" = 200
                        "Retroactive VAD Grace (ms)" = 0
                    }
                }
            ]
        }
        capture.props = {
            node.name =  "capture.rnnoise_source"
            node.passive = true
            audio.rate = 48000
        }
        playback.props = {
            node.name =  "rnnoise_source"
            media.class = Audio/Source
            audio.rate = 48000
        }
    }
    }
    ]

Schritt 5
Starten Sie den Pipewire-Daemon neu:

systemctl restart --user pipewire.service

Jetzt können Sie in den Gnome-Einstellungen das Mikrofon mit Geräuschunterdrückung auswählen.

Kommentare

  1. Wir verwenden daher das Pipewire-Filterkettenmodul. Sehen Sie sich die Dokumentation an, sie ist sehr nützlich.
  2. Jede Anwendung (die Audio verwendet) wurde für die Verwendung eines Standards (Audio-Plugin-API genannt) entwickelt:
    • ladspa: offener Standard...aber es ist nicht der neuste
    • lv2: offener Standard ... der neuste
    • vst3: proprietärer Standard (bei Open-Source-Programmen sollte er nicht vorkommen)
    • vst: proprietärer Standard (das sollten Sie nicht tun ...)

Die von mir bereitgestellte Lösung deckt also keine Anwendungen ab, die das LV2-Audio-Plugin verwenden (proprietäre Standards sind mir egal). Jede Hilfe für LV2 ist willkommen.

verwandte Informationen