パイプラインモジュールを使用してマイクノイズを低減

パイプラインモジュールを使用してマイクノイズを低減

pulseaudioを使用すると、マイクノイズ低減モジュールを簡単にロードできます。このリンクは非常に明確に説明します。 https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio

すべてのユーザーのマイクノイズを排除するために、rnnoiseをパイプラインワイヤにプラグインとして追加したいと思います。

私は最小限のソリューションを探しており、アプリを避けたいです。このように: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file

答え1

インストールする音声ノイズ抑制。 2024年4月現在、Ubuntuパッケージはありません。この答えがない質問インストールの指示を受けてください。ただし、Arch、Alpine、Gentoo、および openSUSE 用にパッケージ化されています。調整可能な設定については、追加情報ファイルを参照してください。

答え2

rnnoiseすべてのユーザーにプラグインをロードする方法を見つけました。pipewire

ステップ1:
このページからrnnoiseX86 Linux用にコンパイルされたドライバをダウンロードできます。これは最後のバージョンではありませんrnnoise。最新バージョンが必要な場合は、直接コンパイルする必要があるようです。公式githubリポジトリ

ステップ2:
ダウンロードしたアーカイブから必要なLinuxライブラリを見つけることができます。常にモノライブラリを使用してください。マイクは一つだけあってもいいです!オーディオフォルダに保存することをお勧めします/usr/lib/audio/ので、自分で作成する必要があります。このファイルの名前を変更すると、次のフォルダにあります。

  • radespa.so
  • lv2.so
  • vst3.so
  • VSt.so

ステップ3
pipewireこのパスを取得するには、2つのフォルダを作成します。

/etc/pipewire/pipewire.conf.d/

ステップ4
このフォルダにファイルを作成します99-mic-denoising.conf。このファイルに以下を貼り付けます。

    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
        }
    }
    }
    ]

ステップ5
Pipewireデーモンを再起動します。

systemctl restart --user pipewire.service

これで、GNOME設定でノイズキャンセルマイクを選択できるようになりました。

コメント

  1. したがって、我々はパイプラインワイヤフィルタチェーンモジュールを使用します。。文書を確認してください。とても便利です。
  2. オーディオを使用するすべてのアプリケーションは、標準(オーディオプラグインAPIと呼ばれる)を使用するように設計されています。
    • ladspa:オープンスタンダードですが…最新バージョンではありません。
    • lv2:オープンスタンダード...最新
    • vst3:独自の標準(オープンソースプログラムでは表示されません)
    • vst:排他的な標準(それはしないでください...)

したがって、私が提供するソリューションは、lv2オーディオプラグインを使用するアプリケーションには適用されません(独自の標準には興味がありません)。 LV2の助けを歓迎します。

関連情報