一言で言うと
「ノートPCのCPUでリアルタイム動作する、実用性重視のノイズ除去モデル」
基本情報
┌─────────────────────────────────────────────────────────┐
│ │
│ モデル名: DeepFilterNet(v1 / v2 / v3) │
│ 開発者: Hendrik Schröter et al. │
│ 所属: Friedrich-Alexander-Universität / WS Audiology │
│ 初出: ICASSP 2022 │
│ ライセンス: MIT License(オープンソース) │
│ │
│ GitHub: https://github.com/Rikorose/DeepFilterNet │
│ 論文: https://arxiv.org/abs/2110.05588 │
│ │
└─────────────────────────────────────────────────────────┘
なぜDeepFilterNetなのか
┌─────────────────────────────────────────────────────────┐
│ │
│ 【問題意識】 │
│ │
│ SOTAモデルは性能は高いが... │
│ ・計算量が大きすぎてリアルタイム処理できない │
│ ・GPUがないと動かない │
│ ・補聴器やエッジデバイスには載せられない │
│ │
│ 【DeepFilterNetの解決策】 │
│ │
│ ・人間の聴覚特性(ERB)を活用して計算量削減 │
│ ・Deep Filteringで効率的に音声強調 │
│ ・Full-band(48kHz)対応でありながら軽量 │
│ │
│ → CPU単独でリアルタイム動作を実現 │
│ │
└─────────────────────────────────────────────────────────┘
アーキテクチャ
┌─────────────────────────────────────────────────────────┐
│ │
│ 【2段階処理】 │
│ │
│ Stage 1: ERB Gain(スペクトル包絡の強調) │
│ ├─ 入力をERBスケール(32バンド)に変換 │
│ ├─ 人間の周波数知覚をモデル化 │
│ └─ 粗い強調を実行 │
│ │
│ Stage 2: Deep Filtering(調波成分の強調) │
│ ├─ 音声の周期的成分(ハーモニクス)を強調 │
│ ├─ 複素フィルタで位相も考慮 │
│ └─ 細かい強調を実行 │
│ │
└─────────────────────────────────────────────────────────┘
図解:処理フロー
入力(ノイズ入り48kHz音声)
│
▼
┌─────────────┐
│ STFT │ 短時間フーリエ変換
└─────────────┘
│
├────────────────────────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ ERB Encoder │ │ DF Encoder │
│ (32バンド) │ │ (96バンド) │
└─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ GRU層 │ │ GRU層 │
└─────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌─────────────┐
│ ERB Gains │ │ Deep Filter │
│ (粗い強調) │ │ (精密強調) │
└─────────────┘ └─────────────┘
│ │
└────────────┬───────────┘
▼
┌─────────────┐
│ iSTFT │ 逆変換
└─────────────┘
│
▼
出力(クリーンな48kHz音声)
Deep Filteringとは
┌─────────────────────────────────────────────────────────┐
│ │
│ 【従来のマスク処理】 │
│ │
│ Y(t,f) × M(t,f) = X̂(t,f) │
│ │
│ 各時間-周波数ビンに対して点ごとにマスクを掛ける │
│ → 時間方向の相関を活用できない │
│ │
│ ──────────────────────────────────────────── │
│ │
│ 【Deep Filtering】 │
│ │
│ X̂(t,f) = Σ H(t,f,τ) × Y(t-τ,f) │
│ τ │
│ │
│ 複数の時間フレームから複素フィルタで推定 │
│ → 音声の調波構造(ハーモニクス)を活用できる │
│ → 位相の復元も自然に行える │
│ │
└─────────────────────────────────────────────────────────┘
ERB(Equivalent Rectangular Bandwidth)
┌─────────────────────────────────────────────────────────┐
│ │
│ 【人間の聴覚特性】 │
│ │
│ 人間の耳は、低周波数ほど細かく、高周波数ほど │
│ 粗く周波数を知覚する(対数的)。 │
│ │
│ 周波数 (Hz): 100 500 1k 2k 4k 8k 16k │
│ ERBバンド: ████ ███ ██ ██ ███ ████ █████ │
│ (細かい) → → → → (粗い) │
│ │
│ 【DeepFilterNetでの活用】 │
│ │
│ ・481周波数ビン → 32 ERBバンドに圧縮 │
│ ・人間に重要でない情報は粗く処理 │
│ ・計算量を大幅削減しつつ知覚品質を維持 │
│ │
└─────────────────────────────────────────────────────────┘
バージョンの違い
┌─────────────┬────────────────────────────────────────────┐
│ バージョン │ 特徴 │
├─────────────┼────────────────────────────────────────────┤
│ v1 (2022) │ 初版、基本的なDeep Filtering │
│ │ ICASSP 2022で発表 │
├─────────────┼────────────────────────────────────────────┤
│ v2 (2022) │ 組み込みデバイス向けに最適化 │
│ │ Raspberry Pi 4でリアルタイム動作 │
│ │ Declipping(音割れ修復)に対応 │
├─────────────┼────────────────────────────────────────────┤
│ v3 (2023) │ 知覚品質をさらに向上 │
│ │ Perceptually Motivated設計 │
│ │ INTERSPEECH 2023で発表 │
└─────────────┴────────────────────────────────────────────┘
性能
【VoiceBank+DEMAND ベンチマーク】
┌─────────────────┬───────┬───────┬───────┬───────┐
│ モデル │ PESQ │ STOI │ CSIG │ CBAK │
├─────────────────┼───────┼───────┼───────┼───────┤
│ Noisy (入力) │ 1.97 │ 0.92 │ 3.35 │ 2.44 │
├─────────────────┼───────┼───────┼───────┼───────┤
│ DeepFilterNet │ 2.81 │ 0.94 │ 4.14 │ 3.31 │
│ DeepFilterNet2 │ 3.08 │ 0.95 │ 4.37 │ 3.56 │
│ DeepFilterNet3 │ 3.03* │ - │ - │ - │
├─────────────────┼───────┼───────┼───────┼───────┤
│ FRCRN │ 3.24 │ 0.96 │ 4.51 │ 3.71 │
│ MP-SENet │ 3.60 │ 0.96 │ 4.64 │ 3.83 │
└─────────────────┴───────┴───────┴───────┴───────┘
* v3は知覚品質重視の設計のため単純比較は難しい
【計算効率】
┌─────────────────┬────────────┬────────────┬──────────┐
│ モデル │ パラメータ │ RTF (CPU) │ 遅延 │
├─────────────────┼────────────┼────────────┼──────────┤
│ DeepFilterNet2 │ 2.3M │ 0.04 │ 5ms │
│ DeepFilterNet3 │ 2.0M │ 0.19 │ 5ms │
├─────────────────┼────────────┼────────────┼──────────┤
│ FRCRN │ 5.0M │ 高い │ 高い │
│ MP-SENet │ 2.3M │ GPU必要 │ 高い │
└─────────────────┴────────────┴────────────┴──────────┘
RTF (Real-Time Factor): 1秒の音声を処理するのに何秒かかるか
RTF < 1 でリアルタイム処理可能
インストールと使い方
# PyPIからインストール
pip install deepfilternet
# または conda
conda install -c conda-forge deepfilternet
# Pythonでの使用
from df import enhance, init_df
# モデル初期化
model, df_state, _ = init_df()
# ファイルを強調
from df.io import load_audio, save_audio
audio, sr = load_audio("noisy.wav", sr=df_state.sr())
enhanced = enhance(model, df_state, audio)
save_audio("enhanced.wav", enhanced, sr)
# コマンドラインツール
deep-filter noisy.wav -o enhanced.wav
# 複数ファイルを一括処理
deep-filter *.wav -o output_dir/
# ポストフィルタ有効化
deep-filter noisy.wav --pf -o enhanced.wav
対応フォーマット
┌─────────────────────────────────────────────────────────┐
│ │
│ 【入力】 │
│ ・サンプリングレート: 48kHz(推奨) │
│ ※ 16kHzも内部でアップサンプリングして処理 │
│ ・チャンネル: モノラル │
│ ・フォーマット: WAV │
│ │
│ 【出力】 │
│ ・サンプリングレート: 入力と同じ │
│ ・チャンネル: モノラル │
│ │
└─────────────────────────────────────────────────────────┘
ユースケース
┌─────────────────────────────────────────────────────────┐
│ │
│ 【最適なユースケース】 │
│ │
│ ✓ オンライン会議のノイズ除去 │
│ ✓ ポッドキャスト・動画の後処理 │
│ ✓ 補聴器・イヤホンのリアルタイム処理 │
│ ✓ エッジデバイス(Raspberry Pi等)での動作 │
│ ✓ CPU環境での大量ファイル処理 │
│ │
│ 【向いていないケース】 │
│ │
│ ✗ 最高品質が必要な場合 → MP-SENet等を検討 │
│ ✗ 話者分離が必要 → 音源分離モデルを使用 │
│ ✗ 音楽のノイズ除去 → 専用モデルを使用 │
│ │
└─────────────────────────────────────────────────────────┘
強みと弱み
【強み】
✓ CPU単独でリアルタイム動作(RTF 0.04)
✓ 低遅延(5ms)で会話に使える
✓ 48kHz Full-band対応
✓ オープンソース(MIT License)
✓ インストールが簡単
✓ Declipping(音割れ修復)にも対応
【弱み】
✗ PESQスコアはSOTAに及ばない
✗ 残響除去は限定的
✗ モノラル専用(ステレオは分割処理)
まとめ
| 項目 | 内容 |
|---|---|
| コンセプト | 軽量・リアルタイム・実用重視 |
| アーキテクチャ | ERB Gains + Deep Filtering の2段階 |
| PESQ | 約3.0(v2/v3) |
| RTF | 0.04(CPU単独でリアルタイム) |
| 遅延 | 5ms |
| サンプリングレート | 48kHz対応 |
| 最適用途 | オンライン会議、補聴器、エッジデバイス |
参考文献
- DeepFilterNet: A Low Complexity Speech Enhancement Framework for Full-Band Audio based on Deep Filtering
- DeepFilterNet2: Towards Real-Time Speech Enhancement on Embedded Devices for Full-Band Audio
- DeepFilterNet: Perceptually Motivated Real-Time Speech Enhancement
Speech Enhancementシリーズ、お役に立てたらフォローお願いします!