
pulseaudio を使用すると、マイクのノイズ低減用のモジュールを簡単にロードできます。このリンクでわかりやすく説明されています。 https://askubuntu.com/questions/18958/realtime-noise-removal-with-pulseaudio
すべてのユーザーのマイクのノイズをキャンセルするために、pipewire のプラグインとして rnnoise を追加したいと考えています。
私は最小限のソリューションを探しており、アプリケーションは避けたいと思っています。次のようなもの: https://github.com/noisetorch/NoiseTorch?tab=readme-ov-file
答え1
答え2
すべてのユーザー向けにプラグインrnnoise
としてロードする方法を見つけました。pipewire
ステップ1:
このページではX86 Linux用にコンパイルされたドライバをダウンロードできますrnnoise
。これはの最後のバージョンではありませんrnnoise
。最新バージョンが必要な場合は、自分でコンパイルを実行する必要があると思います。公式githubリポジトリ。
ステップ2:
ダウンロードしたアーカイブには、必要な Linux ライブラリがあります。常にモノラル ライブラリを使用してください。マイクは 1 つしかない可能性があります。これらを保存することを提案します。/usr/lib/audio/
そのため、フォルダー audio を作成する必要があります。ファイル名を変更したので、次のフォルダーに入っています。
- ラドスパ
- lv2.so
- VSTS3.so の
- VSTS の
ステップ3pipewire
このパスを取得するには、 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 設定でノイズキャンセル機能付きのマイクを選択できるようになりました。
コメント
- パイプワイヤーフィルターチェーンモジュールを使用しますドキュメントを確認してください。非常に役立ちます。
- 各アプリケーション (オーディオを使用する) は、標準 (オーディオ プラグイン API と呼ばれる) を使用するように設計されています。
- ladspa: オープンスタンダード...ただし最新のものではない
- lv2: オープンスタンダード...最新のもの
- vst3: 独自の標準 (オープンソース プログラムでは使用されないはずです)
- vst: 独自の標準 (使用しないでください)
したがって、私が提供したソリューションは、lv2 オーディオ プラグインを使用するアプリケーションには対応していません (独自の標準については気にしません)。lv2 に関するあらゆる支援を歓迎します。