werman/noise-suppression-for-voice

Noise suppression plugin based on Xiph's RNNoise

werman/noise-suppression-for-voice

概要 – XiphのRNNoiseニューラルネットワークモデルを使用してマイクからの背景ノイズを低減するリアルタイムオーディオプラグイン。VST2、VST3、LV2、LADSPA、AU、AUv3プラグインとして提供され、ほとんどのDAWやシステム全体のオーディオパイプラインで使用可能。

主な機能

  • RNNoiseに基づくノイズサプレッション(幅広いノイズでトレーニングされたリカレントニューラルネットワーク)。
  • 16ビット、48 kHzモノラルまたはステレオストリームに対応。
  • パラメータと診断統計を表示する最小限のGUI。
  • 調整可能な音声アクティビティ検出(VAD)設定:
    • VADしきい値(%) – 音声を通過させる前にモデルが音声の存在をどの程度確信する必要があるか。
    • VADグレース期間(ms) – 音声終了後も出力を短時間聞こえるようにし、単語の切れを防ぐ。
    • 遡及VADグレース期間(ms) – 検出が遅れた場合に音声の開始を保持するためのレイテンシを追加。
  • Windows、Linux、macOS向けにビルド可能(macOSのAU/AUv3は計画中)。
  • 各プラグイン形式ごとに個別のビルドを提供。不要な形式はCMakeフラグで無効化可能。

使用方法

  1. Windows – VST2/3 DLLをインストールし、Equalizer APO、Carla、または任意のDAWなどのホストでロード。マイクのサンプルレートを48 kHzに設定。
  2. Linux(PipeWire) – PipeWireフィルターチェーン設定を介して提供されるlibrnnoise_ladspa.soをロード(READMEにコピー可能な設定ファイルあり)。controlブロックでVADコントロールを調整。
  3. Linux(PulseAudio) – nullシンクを作成し、module-ladspa-sinkでLADSPAプラグインをロードし、マイクをシンクにループバック。自動起動のために~/.config/pulse/default.paに行を追加。
  4. macOS – ソースコードにAU/AUv3サポートが含まれています。ビルドスクリプトを完成させるための貢献を歓迎します。

ビルド

# 64ビットリリースビルド
cmake -Bbuild-x64 -H. -GNinja -DCMAKE_BUILD_TYPE=Release
ninja -C build-x64

32ビットのコンパイルや、提供されたMinGWツールチェーンを使用したWindows向けクロスコンパイルも可能。-DBUILD_VST_PLUGIN=OFFなどのCMakeフラグを使用して不要なフォーマットをスキップできます。

依存関係 – プロジェクトはgit-subrepoを介して外部コードをベンダリング:

  • JUCE (GPLv3) – GUIとプラグインラッパーのフレームワーク。
  • FST – オーディオ処理ユーティリティ。
  • catch2 – ユニットテストライブラリ。

ライセンス – GPL-3.0(RNNoiseおよびJUCEと同じ)。誰でも同じライセンスの下でプラグインを使用、変更、再配布できます。

対象ユーザー – 商用DSPソリューションに費用を払わずに、ボイスチャット、ストリーミング、録音用の低遅延・オンデバイスノイズリダクションが必要な人。特にリモートワーク環境で、システム全体のオーディオ(Equalizer APO、PipeWire、PulseAudio)に統合できるため便利。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト