DeepFilterNet3 WAV ノイズ抑制ツール(WAV 音声に DeepFilterNet3 を適用し、背景ノイズを抑制するコマンドラインツール)
| .gitignore | 1 day ago | ||
| README.md | 1 day ago | ||
| deepfilternet3_enhance.py | 1 day ago | ||
WAV 音声に DeepFilterNet3 を適用し、背景ノイズを抑制するコマンドラインツールです。
入力音声は DeepFilterNet3 の処理サンプリング周波数(通常 48 kHz)へ自動変換されます。処理後は、既定では入力と同じサンプリング周波数の PCM16 WAV として保存されます。
pipこのスクリプトは DeepFilterNet 0.5.6、PyTorch 2.11.0、TorchAudio 2.11.0、CUDA 12.8 の組み合わせを基準にしています。DeepFilterNet は利用可能な CUDA デバイスを自動的に選択します。
NVIDIA ドライバーをインストールし、PowerShellでGPUが認識されていることを確認します。
nvidia-smi
Python 3.11をインストールしてから、プロジェクト用の仮想環境を作成します。
cd D:\usr\prog\deepfilternet3_enhance py -3.11 -m venv .venv .\.venv\Scripts\Activate.ps1 python -m pip install --upgrade pip
PowerShell の実行ポリシーにより仮想環境を有効化できない場合は、その PowerShell セッションに限って次を実行してから、もう一度有効化してください。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass .\.venv\Scripts\Activate.ps1
CUDA 12.8対応のPyTorchと、アプリケーションの依存パッケージをインストールします。
python -m pip install torch==2.11.0 torchaudio==2.11.0 --index-url https://download.pytorch.org/whl/cu128 python -m pip install deepfilternet==0.5.6 soundfile
NVIDIA ドライバーをインストールし、GPUが認識されていることを確認します。
nvidia-smi
Python 3.11と仮想環境機能を導入します。Ubuntu/Debian系では、次のようにインストールできます。
sudo apt update sudo apt install python3.11 python3.11-venv python3-pip
使用しているディストリビューションにPython 3.11のパッケージがない場合は、そのディストリビューションの手順に従ってPython 3.11を導入してください。
プロジェクト用の仮想環境を作成します。
cd /path/to/deepfilternet3_enhance python3.11 -m venv .venv source .venv/bin/activate python -m pip install --upgrade pip
CUDA 12.8対応のPyTorchと、アプリケーションの依存パッケージをインストールします。
python -m pip install torch==2.11.0 torchaudio==2.11.0 --index-url https://download.pytorch.org/whl/cu128 python -m pip install deepfilternet==0.5.6 soundfile
Windows、Linuxともに、仮想環境を有効にした状態で次を実行します。
python -c "import torch; print('PyTorch:', torch.__version__); print('CUDA runtime:', torch.version.cuda); print('CUDA available:', torch.cuda.is_available()); print('GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else 'not available')"
正常に認識されている場合は、CUDA available: True と GPU 名が表示されます。DeepFilterNet 0.5.6 は利用可能な CUDA デバイスを自動的に選択するため、このツールに GPU 用オプションを指定する必要はありません。実行ログにも Running on device cuda と表示されます。
基本構文は次のとおりです。
python deepfilternet3_enhance.py INPUT_WAV OUTPUT_WAV [オプション]
例:
python deepfilternet3_enhance.py sample1a305s.wav enhanced.wav
出力先の親ディレクトリが存在しない場合は自動的に作成されます。利用可能な引数は --help でも確認できます。
python deepfilternet3_enhance.py --help
| 引数 | 必須 | 説明 |
|---|---|---|
INPUT_WAV | はい | 入力 WAV ファイル。拡張子は .wav である必要があります。 |
OUTPUT_WAV | はい | 出力 WAV ファイル。拡張子は .wav である必要があります。 |
--post-filter | いいえ | ポストフィルタを有効にし、ノイズ抑制をやや強くします。 |
--atten-lim-db DB | いいえ | 最大抑制量を dB で制限します。0 より大きい値を指定してください。未指定時は制限しません。 |
--mono | いいえ | ステレオなどの多チャンネル入力を、チャンネル平均によりモノラル化してから処理します。 |
--model-rate-output | いいえ | 入力の周波数へ戻さず、モデルのサンプリング周波数(通常 48 kHz)で出力します。 |
-h, --help | いいえ | ヘルプを表示して終了します。 |
ポストフィルタを有効にして、抑制を強める場合:
python deepfilternet3_enhance.py input.wav output_pf.wav --post-filter
最大抑制量を 12 dB に制限し、音声の変質を抑えたい場合:
python deepfilternet3_enhance.py input.wav output_lim12.wav --atten-lim-db 12
ステレオ入力をモノラル化する場合:
python deepfilternet3_enhance.py input.wav output_mono.wav --mono
モデルのサンプリング周波数で保存する場合:
python deepfilternet3_enhance.py input.wav output_48k.wav --model-rate-output
オプションは組み合わせて指定できます。
python deepfilternet3_enhance.py input.wav output.wav --post-filter --atten-lim-db 18 --mono
実行中は、入力チャンネル数、サンプリング周波数、音声の長さ、処理時間などが表示されます。
Real-time factor は「処理時間 ÷ 音声時間」です。1 未満なら、音声の再生時間より短い時間で処理できたことを示します。処理後ピーク値 が 1.0 を超えた場合は、PCM16 の範囲に収めるためにクリッピングされ、警告が標準エラー出力へ表示されます。0、エラー発生時は 1 です。--model-rate-output を指定してください。--post-filter はノイズを強く抑えられる一方、声の質感や残響も変化しやすくなります。結果を試聴して利用を判断してください。--atten-lim-db の値を小さくすると抑制が控えめになり、原音の変質を抑えやすくなります。ただし、背景ノイズは多く残ります。--mono を指定しない場合、入力のチャンネル数は維持されます。モノラル化するとステレオ定位の情報は失われます。ModuleNotFoundError: No module named 'df'仮想環境を有効にし、DeepFilterNet をインストールしてください。
.\.venv\Scripts\Activate.ps1 python -m pip install deepfilternet==0.5.6 soundfile
ModuleNotFoundError: No module named 'torchaudio.backend'DeepFilterNet 0.5.6 と新しい TorchAudio の組み合わせで発生する互換性エラーです。このスクリプトは旧 API の import に対する互換処理を内蔵し、実際の WAV 入出力には SoundFile を使用します。最新版のスクリプトを使用し、SoundFile が未導入の場合はインストールしてください。
python -m pip install soundfile
現在のディレクトリとファイル名を確認するか、引用符付きの絶対パスを指定してください。
python deepfilternet3_enhance.py "D:\audio files\input.wav" "D:\audio files\output.wav"
まず短い WAV で動作を確認してください。必要に応じて音声を複数ファイルへ分割して処理します。分割する場合は、つなぎ目で音が不自然にならないよう、前後に余裕を持たせてください。
CUDA available: False と表示される次の点を順番に確認してください。
nvidia-smi で NVIDIA GPU とドライバーが認識されているかpython -m pip show torch が、意図した仮想環境のパッケージを示しているかtorch.version.cuda が None になっていないか。None の場合はCUDA対応ビルドがインストールされていません。CUDA対応ビルドが入っていない場合は、前述のWindowsまたはLinuxのセットアップ手順に従って torch と torchaudio を入れ直してください。