{"allowContribute":false,"item":{"content":"\u003e **任務**：AI 音訊 R\u0026D 研究員 — 尋找即時低延遲音源分離模型，應用於遊戲腳步聲的加強處理\n\u003e **調研日期**：2026-07-22\n\n---\n\n## 1. Executive Summary（執行摘要）\n\n本報告針對「遊戲腳步聲即時增強」應用場景，系統性地調研了當前即時低延遲音源分離／目標聲音提取（Target Sound Extraction, TSE）領域的 SOTA 模型與技術路線。\n\n### 核心結論\n\n| 面向 | 建議 |\n|------|------|\n| **最佳模型架構** | **Waveformer**（即時目標聲音提取專用）— 首個實現 streaming TSE 的模型，相較 prior models runtime 降低 1.5–2x、SI-SNRi 提升 2.2–3.3 dB |\n| **輕量替代方案** | **Conv-TasNet**（5.1M params, ~2ms latency）— 時域端到端分離，支持 causal 模式，最成熟的即時分離 backbone |\n| **最新 SOTA** | **Band-SCNet**（2.59M params, SDR 7.79 dB, 因果設計）— Interspeech 2025 最佳學生論文，稀疏壓縮+跨頻帶模組 |\n| **超輕量備選** | **RNNoise 風格 GRU**（~0.06M params / 111KB INT8）— 以極低成本做頻域 mask 增強，適合嵌入到 APO 等受限環境 |\n| **兩階段 Pipeline 建議** | 第一階段：Tiny CRNN 腳步聲**偵測** → 第二階段：輕量來源分離/增強模型 **分離並放大** 腳步聲 |\n\n**可行性總結**：在現代遊戲 PC（具備 CPU/GPU）上，Conv-TasNet 或 Waveformer 均可實現 \u003c10ms 端到端延遲。若目標是 Windows APO 部署（無 GPU、無 heap allocation），建議走兩階段 Pipeline：輕量 CNN/GRU 偵測觸發 + 簡化 band-split EQ/RNNoise 增強。\n\n---\n\n## 2. State-of-the-Art (SOTA) \u0026 技術路線分析\n\n### 2.1 主流模型比較表\n\n| 模型 | 發表年 | 參數量 | 延遲 | 性能指標 | Domain | 因果 | 特點 |\n|------|--------|--------|------|---------|--------|------|------|\n| **Conv-TasNet** | 2019 (TASLP) | **5.1M** | **~2 ms** (L=16 @ 8kHz) | SI-SNRi 15.3 dB (WSJ0-2mix) | 時域 (1D Conv) | ✅ | TCN 分離模組，depthwise separable conv，感受野 1.53s |\n| **DCCRN** | 2020 (Interspeech) | **3.7M** | ~10 ms (frame) | DNS Challenge 即時 #1 | 複數頻域 | ✅ | 複數 CNN+RNN，相位感知，頻域復數 mask |\n| **Waveformer** | 2023 (ICASSP) | ~3-5M (估) | 即時 streaming | SI-SNRi +2.2–3.3 dB vs prior | 混合 (時域+Transformer) | ✅ | 首個 streaming TSE，擴張因果 Conv Encoder + Transformer Decoder |\n| **HS-TasNet** | 2024 (ICASSP) | ~5-8M (估) | 23 ms | SDR 4.65 (basic) / 5.55 (aug) (MusDB) | 混合頻域+時域 | ✅ | Hybrid Demucs 靈感，23ms 即時可行 |\n| **Band-SCNet** | 2025 (Interspeech ★) | **2.59M** | 92 ms (評估窗) | SDR **7.79 dB** (MUSDB18-HQ) | 頻域子帶 | ✅ | 稀疏壓縮+CSA 自注意力融合，跨頻帶+窄頻帶模組 |\n| **RNNoise** | 2017 (opensource) | **0.06M** | ~1-2 ms | MOS 3.2-3.5 (DNS) | 頻域 (handcrafted features) | ✅ | GRU+handcrafted features，111KB INT8，極輕量 |\n| **DeepFilterNet** | 2023 | ~1.5M | ~5 ms | DNSMOS OVRL 3.1+ | 頻域 (gammatone + deep filtering) | ✅ | 兩階段：envelope 估計 + 多幀 deep filtering |\n| **Sub-ms FIR** | 2025 (MS Research) | **0.626M** | **0.32–1.25 ms** 算法 | SI-SDR 6.33 dB (CHiME-2) | 頻域→時域 (FIR) | ✅ | 2層 LSTM 預測 FIR 係數，DSP 可即時 (376 MIPS) |\n\n### 2.2 技術路線對比\n\n#### 路線 A：單純頻域 Mask 增強 (RNNoise / DeepFilterNet 風格)\n- **原理**：計算 STFT/Mel 特徵 → DNN 預測時頻 mask → 相乘 → iSTFT\n- **優點**：極輕量、低延遲、成熟、文檔多\n- **缺點**：mask 本質是元素級 gain，對腳步聲這種瞬態訊號的時域輪廓保留有限\n- **適合場景**：嵌入式/APO 部署，算力極度受限\n\n#### 路線 B：時域端到端分離 (Conv-TasNet / Waveformer 風格)\n- **原理**：1D Conv Encoder → 分離模組 (TCN/Transformer) → mask → 1D Conv Decoder 重建波形\n- **優點**：延遲極低 (~2ms)、無頻域解析度限制、對瞬態訊號保留佳\n- **缺點**：參數量較大 (5M+)、訓練需較多數據、TCN 順序計算在 CPU 上較重\n- **適合場景**：遊戲 PC (有 GPU 或夠強 CPU)、高品質腳步聲分離\n\n#### 路線 C：混合頻域+時域 (HS-TasNet 風格)\n- **原理**：同時在頻譜域和波形域進行分離，互補優缺點\n- **優點**：兼顧頻域語義和時域解析度\n- **缺點**：計算量大、延遲較高 (23ms)\n- **適合場景**：非即時或可接受 23ms 延遲的場景\n\n#### 路線 D：目標聲音提取 TSE (Waveformer 風格)\n- **原理**：給定目標聲音的 reference/embedding，僅提取該特定聲音\n- **優點**：專對腳步聲訓練後，只輸出腳步聲成分，抑制所有其他聲音\n- **缺點**：需要 reference audio 或 embedding 作為 conditioning\n- **適合場景**：遊戲中只想要腳步聲、排除槍聲/環境音/語音\n\n### 2.3 對腳步聲增強應用關鍵考量\n\n**腳步聲頻率特徵**：根據音頻工程實務資料，核心頻段在 **1–4 kHz**，以 **2–4 kHz** 最關鍵。低頻 (\u003c150 Hz) 容易被遊戲中的爆炸/引擎聲掩蓋。\n\n**即時處理需求**：人耳對 ~10ms 以下的延遲基本無感。遊戲音訊 pipeline 通常允許 **5–15ms** 的額外處理延遲。超過 20ms 會造成可感知的 audio-visual 不同步。\n\n---\n\n## 3. 資料集與預處理 Pipeline (Dataset \u0026 Preprocessing)\n\n### 3.1 建議公開資料集\n\n| 資料集 | 內容 | 大小 | 適合用途 |\n|--------|------|------|----------|\n| **BGG Dataset (Enemy Spotted)** | 37 種 FPS 遊戲槍枝，含距離/方向標註 | IEEE CoG 2022 | 槍枝負樣本、混音背景 |\n| **Footstep Sound Dataset (Kaggle/AxonData)** | 50 小時走路音頻，含表面分類標註 | 50h, 166 verified files | 腳步聲正樣本訓練 |\n| **EWFootstep 1.0** | 176 人腳步聲，真實環境採集 | Nature 2026 | 多類別腳步聲資料 |\n| **FSD50K** | 200 類聲音事件 (含 footstep, walk 等) | 51k clips, 100h+ | 腳步聲分類、混音素材 |\n| **UrbanSound8K** | 10 類城市聲音 (含 gunshot) | 8,732 clips | 負樣本（槍聲/引擎聲） |\n| **MUSAN** | 音樂/語音/噪聲庫 | ~100h | 資料增強（加背景噪） |\n| **AudioSet** | 527 類、5800h 音頻 (含 footstep, walk) | 5800h | 預訓練 (PANNs)、特徵提取 |\n| **DNS Challenge Dataset (Microsoft)** | 乾淨語音+各類噪聲 | 750h+ | 噪聲增強技術參考 |\n\n### 3.2 資料合成策略\n\n為了訓練腳步聲分離模型，需要「混合音頻 → 乾淨腳步聲」的配對數據，建議以下合成策略：\n\n1. **乾淨腳步聲**：從 Footstep Dataset / FSD50K 提取僅含腳步聲的 clip\n2. **遊戲背景**：使用遊戲錄製片段、MUSAN 噪聲、爆炸/槍聲 clip\n3. **混合合成**：隨機 SNR (-5dB ~ +15dB) 將腳步聲與背景混合\n4. **資料增強**：\n   - 時域：隨機時間偏移、微小 pitch shift (±5%)\n   - 頻域：SpecAugment (時間/頻率 masking)\n   - 空間模擬：HRTF 捲積（模擬不同方向腳步聲）\n   - 動態範圍壓縮：模擬遊戲音訊引擎處理\n\n### 3.3 特徵工程與 Domain 設定\n\n| Domain | 特徵 | 適合模型 | 優點 | 缺點 |\n|--------|------|----------|------|------|\n| **時域 (Time)** | Raw waveform 1D segments | Conv-TasNet, Waveformer | 延遲極低、保留瞬態 | 參數量較大 |\n| **頻域 (STFT)** | Magnitude + Phase / Complex | DCCRN, DeepFilterNet | 頻率語義清晰 | 窗函數延遲 tradeoff |\n| **Mel-spectrogram** | Mel 頻譜 + 時間 | 偵測模型 (CRNN) | 符合聽覺感知 | 高頻解析度損失 |\n| **子帶 (Subband)** | 壓縮到 3-8 個子帶 | Band-SCNet | 參數效率高、頻帶特定處理 | 模型設計複雜 |\n| **複數域 (Complex)** | STFT 實部+虛部 | DCCRN | 相位感知、高品質重建 | 計算量較大 |\n\n**建議**：對腳步聲分離，推薦 **時域 (Time-domain)** 或 **STFT 複數域**。腳歩聲是典型瞬態訊號（short-duration, sharp onset），時域方法對瞬態保留遠優於頻域 mask 方法。\n\n---\n\n## 4. 模型架構與訓練指南 (Model \u0026 Training Pipeline)\n\n### 4.1 推薦模型：Waveformer（首選）\n\n**架構細節**：\n- Encoder：堆疊擴張因果卷積層 (dilated causal conv) — 逐步擴張感受野\n- Decoder：Transformer Decoder Layer — 利用 cross-attention 與 target embedding 交互\n- Conditioning：以目標聲音 reference embedding 作為 query 引導分離\n\n**Tensor Shapes**：\n- 輸入波形：`(B, 1, T)` → Encoder Conv1D → `(B, D, T')`\n- 分離 mask：`(B, D, T')` → mask 與編碼特徵相乘\n- 重建波形：`(B, 1, T)` 解碼器輸出\n\n**Loss Function**：\n- **主 loss**：SI-SDR (Scale-Invariant Signal-to-Distortion Ratio) — 目標聲音分離業界標準\n- **輔助 loss**：Multi-resolution STFT loss (3-4 種解析度) — 提升頻域感知品質\n\n### 4.2 推薦架構：Conv-TasNet（成熟可靠備選）\n\n**核心模組**：\n- Encoder：1D Conv, kernel L=16, stride=L/2, N=512 filters\n- Separation：R×M TCN blocks, depthwise separable conv, 擴張因子 1,2,4,...,2^(M-1)\n- Decoder：1D Transpose Conv\n\n**Causal 模式關鍵設定**：\n- 用 cumulative layer normalization (cLN) 取代全局 LN\n- 不用 future frames\n- 最小延遲 = encoder kernel L / sample_rate = 2ms (@16kHz, L=32)\n\n**Footstep 特化調整**：\n- 減少 TCN 堆疊層數 R (default 3→2) 降低延遲\n- 調整 encoder kernel L=32 (@16kHz = 2ms) L=64 (@48kHz = ~1.3ms)\n- 可加入一個額外 output 分支輸出腳步聲**偵測機率**\n\n### 4.3 評估指標 (Metrics)\n\n| 指標 | 說明 | 適合場景 |\n|------|------|----------|\n| **SI-SDRi** | 尺度不變訊號失真比改善值 | 分離品質核心指標 |\n| **SDRi** | 訊號失真比改善值 | 相容性較高 |\n| **PESQ / MOS** | 感知品質評分 | 人耳感受 |\n| **ESTOI** | 短時間客觀可懂度 | 語音類評估 |\n| **Latency (ms)** | 算法延遲+計算延遲 | **即時性關鍵** |\n| **RTF (Real-Time Factor)** | 處理時間/音頻時長 | 計算效率 |\n\n### 4.4 訓練步驟與技巧\n\n1. **階段一：PANNs 預訓練 Backbone**\n   - 使用 AudioSet 預訓練 CNN6/CNN10 作為特徵提取器\n   - Fine-tune 腳步聲分類 head 建立腳步聲 embedding\n\n2. **階段二：Waveformer / Conv-TasNet 分離訓練**\n   - 初始化 encoder 後 freeze 前幾層\n   - 使用合成的腳步聲+遊戲背景混合數據\n   - Batch size 32, Adam optimizer, lr 3e-4, cosine schedule\n\n3. **階段三：量化與部署優化**\n   - INT8 量化 (ONNX Runtime / TensorRT)\n   - 若用 RNNoise 路線：GRU → INT8 → 111KB 模型\n\n4. **資料不平衡處理**\n   - 腳步聲在遊戲中約佔 ~5-15% 時間（稀疏事件）\n   - 建議：只在有腳步聲的 segment 計算 loss，或使用 focal loss\n\n---\n\n## 5. 系統部署與潛在風險 (Deployment \u0026 Risks)\n\n### 5.1 Pipeline 設計方案\n\n#### 方案 A：一階段分離（推薦 MVP）\n```\n遊戲音訊 (48kHz) → Resample → 分離模型 (Conv-TasNet/Waveformer) → \n腳步聲增強輸出 → 混入原始音訊 (blend ratio 可控)\n```\n- 延遲：~2–10ms\n- 優點：簡單、延遲低\n- 缺點：全時運算，CPU 佔用穩定\n\n#### 方案 B：兩階段偵測+分離（進階）\n```\n遊戲音訊 → 輕量偵測模型 (Tiny CRNN) → 有腳步聲？→ \n  ├ Yes → 分離模型 (輕量 Conv-TasNet) → 增強後疊回\n  └ No → bypass (原始音訊直通)\n```\n- 延遲：~5–15ms (含偵測視窗)\n- 優點：大幅降低平均計算量（腳步聲只佔 ~10% 時間）\n- 缺點：偵測 False Negative = 漏掉腳步聲\n\n#### 方案 C：純 EQ + 動態增強（最低成本）\n```\n遊戲音訊 → Band-split EQ (1-4kHz boost) → 動態壓縮 → 輸出\n```\n- 延遲：\u003c 1ms\n- 優點：極低延遲、零訓練成本\n- 缺點：同時放大所有高頻內容（含干擾噪音）\n\n### 5.2 即時性與硬體資源考量\n\n| 部署目標 | 推薦模型 | 預估延遲 | 硬體需求 |\n|----------|----------|----------|----------|\n| **遊戲 PC (有 GPU)** | Conv-TasNet / Waveformer | 2–5 ms | GPU: 任何 NVIDIA/AMD 獨顯 |\n| **遊戲 PC (僅 CPU)** | Conv-TasNet (INT8) / DCCRN | 5–15 ms | CPU: 4 核以上, AVX2 支援 |\n| **Windows APO** | RNNoise-GRU / 2-stage CRNN | 1–5 ms | CPU: 任何 x64, 禁止 heap alloc |\n| **掌機/Steam Deck** | DeepFilterNet (INT8) | 3–8 ms | ARM/x86, 需 NEON/AVX 優化 |\n\n### 5.3 潛在技術坑點\n\n1. **Domain Leakage**：訓練時用合成的腳步聲+背景噪，真實遊戲引擎輸出的音訊有 dynamic compression、reverb、occlusion 等處理，導致 domain mismatch。**解法**：收集真實遊戲錄音做 domain adaptation 或 fine-tune。\n\n2. **腳步聲+槍聲同時發生**：當腳步聲和槍聲時間重疊，分離模型可能無法完美分離。**解法**：設計對抗性訓練數據，加入重疊事件合成。\n\n3. **延遲累積**：遊戲音訊 pipeline 本身已有 ~20-50ms 延遲（採集、編碼、傳輸）+ 額外分離延遲可能超過 60ms 人耳閾值上限。**解法**：採用 causal streaming 模型並測量端到端總延遲。\n\n4. **腳步聲定義模糊**：「腳步聲」包含多種材質（水泥、木頭、金屬、草地）、不同速度、不同鞋款。單一類別訓練可能泛化不足。**解法**：使用多類別資料增強，或考慮 few-shot TSE 適應玩家特徵。\n\n5. **窗函數延遲** (頻域模型)：STFT 需要未來幀來計算頻譜（除非 causal STFT），典型 20ms 窗引入 10ms 算法延遲。**解法**：用時域模型規避此問題，或使用 causal STFT（單邊 pad）。\n\n6. **APO 環境限制**：Windows APO 禁止 memory allocation、mutex、file I/O，且須在 buffer 週期內完成。ONNX Runtime C++ API 需預先 allocate 所有 tensor。\n\n### 5.4 Phase 1 MVP 建議\n\n**最低可行產品 (MVP)** 方案：\n\n1. **第一步：Pure DSP Baseline**（1–2 週）\n   - 實現即時 band-split EQ：boost 1-4kHz band by +6dB\n   - 壓低 \u003c150Hz 低頻減噪\n   - 動態壓縮器限制峰值\n   - 延遲 \u003c 1ms，可直接在 Unity/Wwise 音訊 plugin 中實現\n\n2. **第二步：輕量 DNN 分離**（4–6 週）\n   - 基於 Conv-TasNet (causal, 2ms latency) 或簡化 DCCRN\n   - 使用合成腳步聲+遊戲噪聲訓練\n   - ONNX Runtime 部署，CPU 推理\n   - 集成到遊戲音訊 pipeline 作為 middleware\n\n3. **第三步：目標聲音提取 (TSE)**（8–12 週，可選）\n   - 基於 Waveformer 實現 streaming TSE\n   - 加入腳步聲 reference embedding\n   - 自動增益控制，根據背景噪聲動態調整增強強度\n\n---\n\n## 附錄 A：論文引用清單\n\n| 論文 | 引用 |\n|------|------|\n| Conv-TasNet (Luo et al., 2019) | IEEE/ACM TASLP, DOI: 10.1109/TASLP.2019.2935160 |\n| DCCRN (Hu et al., 2020) | Interspeech 2020, arXiv: 2008.00264 |\n| Waveformer (Veluri et al., 2023) | ICASSP 2023, arXiv: 2211.02250 |\n| HS-TasNet (Venkatesh et al., 2024) | ICASSP 2024, arXiv: 2402.17701 |\n| Band-SCNet (Yang et al., 2025) | Interspeech 2025 ★ Best Student Paper |\n| SCNet (Tong et al., 2024) | arXiv: 2401.13276 |\n| RNNoise (Valin, 2018) | Mozilla / GitHub: xiph/rnnoise |\n| DeepFilterNet (Schröter et al., 2023) | Interspeech 2022, GitHub: Rikorose/DeepFilterNet |\n| Sub-ms Latency SE (MS Research, 2025) | ICASSP 2025, arXiv: 2409.18239 |\n| RT-STT (Wu et al., 2025) | arXiv: 2511.13146 |\n\n---\n\n## 附錄 B：腳步聲頻率特性\n\n根據遊戲音訊工程文獻與 EQ 設定指南：\n- **核心頻段**：1–4 kHz（腳步聲主體）\n- **打擊感** (attack transient)：2–4 kHz\n- **材質感** (texture)：4–8 kHz\n- **低頻衝擊**：150–450 Hz\n- **掩蓋風險**：\u003c150 Hz（爆炸/引擎）、\u003e8 kHz（環境高頻）\n\n此頻率分布決定了分離模型的特徵提取重點應放在中高頻區域。","createdAt":1784702341017,"deletedAt":null,"id":"7aeea673bf6f94317683c95b","isNew":false,"isPublic":true,"itemType":"NOTE","name":"即時低延遲音源分離模型調研：遊戲腳步聲增強應用","parents":{"ce6132e77e556fbc5188fd3f":1784702341017},"preParentID":null,"updatedAt":1784706632451,"version":5},"ownerName":"張志豪","subtree":[{"content":"\u003e **任務**：AI 音訊 R\u0026D 研究員 — 尋找即時低延遲音源分離模型，應用於遊戲腳步聲的加強處理\n\u003e **調研日期**：2026-07-22\n\n---\n\n## 1. Executive Summary（執行摘要）\n\n本報告針對「遊戲腳步聲即時增強」應用場景，系統性地調研了當前即時低延遲音源分離／目標聲音提取（Target Sound Extraction, TSE）領域的 SOTA 模型與技術路線。\n\n### 核心結論\n\n| 面向 | 建議 |\n|------|------|\n| **最佳模型架構** | **Waveformer**（即時目標聲音提取專用）— 首個實現 streaming TSE 的模型，相較 prior models runtime 降低 1.5–2x、SI-SNRi 提升 2.2–3.3 dB |\n| **輕量替代方案** | **Conv-TasNet**（5.1M params, ~2ms latency）— 時域端到端分離，支持 causal 模式，最成熟的即時分離 backbone |\n| **最新 SOTA** | **Band-SCNet**（2.59M params, SDR 7.79 dB, 因果設計）— Interspeech 2025 最佳學生論文，稀疏壓縮+跨頻帶模組 |\n| **超輕量備選** | **RNNoise 風格 GRU**（~0.06M params / 111KB INT8）— 以極低成本做頻域 mask 增強，適合嵌入到 APO 等受限環境 |\n| **兩階段 Pipeline 建議** | 第一階段：Tiny CRNN 腳步聲**偵測** → 第二階段：輕量來源分離/增強模型 **分離並放大** 腳步聲 |\n\n**可行性總結**：在現代遊戲 PC（具備 CPU/GPU）上，Conv-TasNet 或 Waveformer 均可實現 \u003c10ms 端到端延遲。若目標是 Windows APO 部署（無 GPU、無 heap allocation），建議走兩階段 Pipeline：輕量 CNN/GRU 偵測觸發 + 簡化 band-split EQ/RNNoise 增強。\n\n---\n\n## 2. State-of-the-Art (SOTA) \u0026 技術路線分析\n\n### 2.1 主流模型比較表\n\n| 模型 | 發表年 | 參數量 | 延遲 | 性能指標 | Domain | 因果 | 特點 |\n|------|--------|--------|------|---------|--------|------|------|\n| **Conv-TasNet** | 2019 (TASLP) | **5.1M** | **~2 ms** (L=16 @ 8kHz) | SI-SNRi 15.3 dB (WSJ0-2mix) | 時域 (1D Conv) | ✅ | TCN 分離模組，depthwise separable conv，感受野 1.53s |\n| **DCCRN** | 2020 (Interspeech) | **3.7M** | ~10 ms (frame) | DNS Challenge 即時 #1 | 複數頻域 | ✅ | 複數 CNN+RNN，相位感知，頻域復數 mask |\n| **Waveformer** | 2023 (ICASSP) | ~3-5M (估) | 即時 streaming | SI-SNRi +2.2–3.3 dB vs prior | 混合 (時域+Transformer) | ✅ | 首個 streaming TSE，擴張因果 Conv Encoder + Transformer Decoder |\n| **HS-TasNet** | 2024 (ICASSP) | ~5-8M (估) | 23 ms | SDR 4.65 (basic) / 5.55 (aug) (MusDB) | 混合頻域+時域 | ✅ | Hybrid Demucs 靈感，23ms 即時可行 |\n| **Band-SCNet** | 2025 (Interspeech ★) | **2.59M** | 92 ms (評估窗) | SDR **7.79 dB** (MUSDB18-HQ) | 頻域子帶 | ✅ | 稀疏壓縮+CSA 自注意力融合，跨頻帶+窄頻帶模組 |\n| **RNNoise** | 2017 (opensource) | **0.06M** | ~1-2 ms | MOS 3.2-3.5 (DNS) | 頻域 (handcrafted features) | ✅ | GRU+handcrafted features，111KB INT8，極輕量 |\n| **DeepFilterNet** | 2023 | ~1.5M | ~5 ms | DNSMOS OVRL 3.1+ | 頻域 (gammatone + deep filtering) | ✅ | 兩階段：envelope 估計 + 多幀 deep filtering |\n| **Sub-ms FIR** | 2025 (MS Research) | **0.626M** | **0.32–1.25 ms** 算法 | SI-SDR 6.33 dB (CHiME-2) | 頻域→時域 (FIR) | ✅ | 2層 LSTM 預測 FIR 係數，DSP 可即時 (376 MIPS) |\n\n### 2.2 技術路線對比\n\n#### 路線 A：單純頻域 Mask 增強 (RNNoise / DeepFilterNet 風格)\n- **原理**：計算 STFT/Mel 特徵 → DNN 預測時頻 mask → 相乘 → iSTFT\n- **優點**：極輕量、低延遲、成熟、文檔多\n- **缺點**：mask 本質是元素級 gain，對腳步聲這種瞬態訊號的時域輪廓保留有限\n- **適合場景**：嵌入式/APO 部署，算力極度受限\n\n#### 路線 B：時域端到端分離 (Conv-TasNet / Waveformer 風格)\n- **原理**：1D Conv Encoder → 分離模組 (TCN/Transformer) → mask → 1D Conv Decoder 重建波形\n- **優點**：延遲極低 (~2ms)、無頻域解析度限制、對瞬態訊號保留佳\n- **缺點**：參數量較大 (5M+)、訓練需較多數據、TCN 順序計算在 CPU 上較重\n- **適合場景**：遊戲 PC (有 GPU 或夠強 CPU)、高品質腳步聲分離\n\n#### 路線 C：混合頻域+時域 (HS-TasNet 風格)\n- **原理**：同時在頻譜域和波形域進行分離，互補優缺點\n- **優點**：兼顧頻域語義和時域解析度\n- **缺點**：計算量大、延遲較高 (23ms)\n- **適合場景**：非即時或可接受 23ms 延遲的場景\n\n#### 路線 D：目標聲音提取 TSE (Waveformer 風格)\n- **原理**：給定目標聲音的 reference/embedding，僅提取該特定聲音\n- **優點**：專對腳步聲訓練後，只輸出腳步聲成分，抑制所有其他聲音\n- **缺點**：需要 reference audio 或 embedding 作為 conditioning\n- **適合場景**：遊戲中只想要腳步聲、排除槍聲/環境音/語音\n\n### 2.3 對腳步聲增強應用關鍵考量\n\n**腳步聲頻率特徵**：根據音頻工程實務資料，核心頻段在 **1–4 kHz**，以 **2–4 kHz** 最關鍵。低頻 (\u003c150 Hz) 容易被遊戲中的爆炸/引擎聲掩蓋。\n\n**即時處理需求**：人耳對 ~10ms 以下的延遲基本無感。遊戲音訊 pipeline 通常允許 **5–15ms** 的額外處理延遲。超過 20ms 會造成可感知的 audio-visual 不同步。\n\n---\n\n## 3. 資料集與預處理 Pipeline (Dataset \u0026 Preprocessing)\n\n### 3.1 建議公開資料集\n\n| 資料集 | 內容 | 大小 | 適合用途 |\n|--------|------|------|----------|\n| **BGG Dataset (Enemy Spotted)** | 37 種 FPS 遊戲槍枝，含距離/方向標註 | IEEE CoG 2022 | 槍枝負樣本、混音背景 |\n| **Footstep Sound Dataset (Kaggle/AxonData)** | 50 小時走路音頻，含表面分類標註 | 50h, 166 verified files | 腳步聲正樣本訓練 |\n| **EWFootstep 1.0** | 176 人腳步聲，真實環境採集 | Nature 2026 | 多類別腳步聲資料 |\n| **FSD50K** | 200 類聲音事件 (含 footstep, walk 等) | 51k clips, 100h+ | 腳步聲分類、混音素材 |\n| **UrbanSound8K** | 10 類城市聲音 (含 gunshot) | 8,732 clips | 負樣本（槍聲/引擎聲） |\n| **MUSAN** | 音樂/語音/噪聲庫 | ~100h | 資料增強（加背景噪） |\n| **AudioSet** | 527 類、5800h 音頻 (含 footstep, walk) | 5800h | 預訓練 (PANNs)、特徵提取 |\n| **DNS Challenge Dataset (Microsoft)** | 乾淨語音+各類噪聲 | 750h+ | 噪聲增強技術參考 |\n\n### 3.2 資料合成策略\n\n為了訓練腳步聲分離模型，需要「混合音頻 → 乾淨腳步聲」的配對數據，建議以下合成策略：\n\n1. **乾淨腳步聲**：從 Footstep Dataset / FSD50K 提取僅含腳步聲的 clip\n2. **遊戲背景**：使用遊戲錄製片段、MUSAN 噪聲、爆炸/槍聲 clip\n3. **混合合成**：隨機 SNR (-5dB ~ +15dB) 將腳步聲與背景混合\n4. **資料增強**：\n   - 時域：隨機時間偏移、微小 pitch shift (±5%)\n   - 頻域：SpecAugment (時間/頻率 masking)\n   - 空間模擬：HRTF 捲積（模擬不同方向腳步聲）\n   - 動態範圍壓縮：模擬遊戲音訊引擎處理\n\n### 3.3 特徵工程與 Domain 設定\n\n| Domain | 特徵 | 適合模型 | 優點 | 缺點 |\n|--------|------|----------|------|------|\n| **時域 (Time)** | Raw waveform 1D segments | Conv-TasNet, Waveformer | 延遲極低、保留瞬態 | 參數量較大 |\n| **頻域 (STFT)** | Magnitude + Phase / Complex | DCCRN, DeepFilterNet | 頻率語義清晰 | 窗函數延遲 tradeoff |\n| **Mel-spectrogram** | Mel 頻譜 + 時間 | 偵測模型 (CRNN) | 符合聽覺感知 | 高頻解析度損失 |\n| **子帶 (Subband)** | 壓縮到 3-8 個子帶 | Band-SCNet | 參數效率高、頻帶特定處理 | 模型設計複雜 |\n| **複數域 (Complex)** | STFT 實部+虛部 | DCCRN | 相位感知、高品質重建 | 計算量較大 |\n\n**建議**：對腳步聲分離，推薦 **時域 (Time-domain)** 或 **STFT 複數域**。腳歩聲是典型瞬態訊號（short-duration, sharp onset），時域方法對瞬態保留遠優於頻域 mask 方法。\n\n---\n\n## 4. 模型架構與訓練指南 (Model \u0026 Training Pipeline)\n\n### 4.1 推薦模型：Waveformer（首選）\n\n**架構細節**：\n- Encoder：堆疊擴張因果卷積層 (dilated causal conv) — 逐步擴張感受野\n- Decoder：Transformer Decoder Layer — 利用 cross-attention 與 target embedding 交互\n- Conditioning：以目標聲音 reference embedding 作為 query 引導分離\n\n**Tensor Shapes**：\n- 輸入波形：`(B, 1, T)` → Encoder Conv1D → `(B, D, T')`\n- 分離 mask：`(B, D, T')` → mask 與編碼特徵相乘\n- 重建波形：`(B, 1, T)` 解碼器輸出\n\n**Loss Function**：\n- **主 loss**：SI-SDR (Scale-Invariant Signal-to-Distortion Ratio) — 目標聲音分離業界標準\n- **輔助 loss**：Multi-resolution STFT loss (3-4 種解析度) — 提升頻域感知品質\n\n### 4.2 推薦架構：Conv-TasNet（成熟可靠備選）\n\n**核心模組**：\n- Encoder：1D Conv, kernel L=16, stride=L/2, N=512 filters\n- Separation：R×M TCN blocks, depthwise separable conv, 擴張因子 1,2,4,...,2^(M-1)\n- Decoder：1D Transpose Conv\n\n**Causal 模式關鍵設定**：\n- 用 cumulative layer normalization (cLN) 取代全局 LN\n- 不用 future frames\n- 最小延遲 = encoder kernel L / sample_rate = 2ms (@16kHz, L=32)\n\n**Footstep 特化調整**：\n- 減少 TCN 堆疊層數 R (default 3→2) 降低延遲\n- 調整 encoder kernel L=32 (@16kHz = 2ms) L=64 (@48kHz = ~1.3ms)\n- 可加入一個額外 output 分支輸出腳步聲**偵測機率**\n\n### 4.3 評估指標 (Metrics)\n\n| 指標 | 說明 | 適合場景 |\n|------|------|----------|\n| **SI-SDRi** | 尺度不變訊號失真比改善值 | 分離品質核心指標 |\n| **SDRi** | 訊號失真比改善值 | 相容性較高 |\n| **PESQ / MOS** | 感知品質評分 | 人耳感受 |\n| **ESTOI** | 短時間客觀可懂度 | 語音類評估 |\n| **Latency (ms)** | 算法延遲+計算延遲 | **即時性關鍵** |\n| **RTF (Real-Time Factor)** | 處理時間/音頻時長 | 計算效率 |\n\n### 4.4 訓練步驟與技巧\n\n1. **階段一：PANNs 預訓練 Backbone**\n   - 使用 AudioSet 預訓練 CNN6/CNN10 作為特徵提取器\n   - Fine-tune 腳步聲分類 head 建立腳步聲 embedding\n\n2. **階段二：Waveformer / Conv-TasNet 分離訓練**\n   - 初始化 encoder 後 freeze 前幾層\n   - 使用合成的腳步聲+遊戲背景混合數據\n   - Batch size 32, Adam optimizer, lr 3e-4, cosine schedule\n\n3. **階段三：量化與部署優化**\n   - INT8 量化 (ONNX Runtime / TensorRT)\n   - 若用 RNNoise 路線：GRU → INT8 → 111KB 模型\n\n4. **資料不平衡處理**\n   - 腳步聲在遊戲中約佔 ~5-15% 時間（稀疏事件）\n   - 建議：只在有腳步聲的 segment 計算 loss，或使用 focal loss\n\n---\n\n## 5. 系統部署與潛在風險 (Deployment \u0026 Risks)\n\n### 5.1 Pipeline 設計方案\n\n#### 方案 A：一階段分離（推薦 MVP）\n```\n遊戲音訊 (48kHz) → Resample → 分離模型 (Conv-TasNet/Waveformer) → \n腳步聲增強輸出 → 混入原始音訊 (blend ratio 可控)\n```\n- 延遲：~2–10ms\n- 優點：簡單、延遲低\n- 缺點：全時運算，CPU 佔用穩定\n\n#### 方案 B：兩階段偵測+分離（進階）\n```\n遊戲音訊 → 輕量偵測模型 (Tiny CRNN) → 有腳步聲？→ \n  ├ Yes → 分離模型 (輕量 Conv-TasNet) → 增強後疊回\n  └ No → bypass (原始音訊直通)\n```\n- 延遲：~5–15ms (含偵測視窗)\n- 優點：大幅降低平均計算量（腳步聲只佔 ~10% 時間）\n- 缺點：偵測 False Negative = 漏掉腳步聲\n\n#### 方案 C：純 EQ + 動態增強（最低成本）\n```\n遊戲音訊 → Band-split EQ (1-4kHz boost) → 動態壓縮 → 輸出\n```\n- 延遲：\u003c 1ms\n- 優點：極低延遲、零訓練成本\n- 缺點：同時放大所有高頻內容（含干擾噪音）\n\n### 5.2 即時性與硬體資源考量\n\n| 部署目標 | 推薦模型 | 預估延遲 | 硬體需求 |\n|----------|----------|----------|----------|\n| **遊戲 PC (有 GPU)** | Conv-TasNet / Waveformer | 2–5 ms | GPU: 任何 NVIDIA/AMD 獨顯 |\n| **遊戲 PC (僅 CPU)** | Conv-TasNet (INT8) / DCCRN | 5–15 ms | CPU: 4 核以上, AVX2 支援 |\n| **Windows APO** | RNNoise-GRU / 2-stage CRNN | 1–5 ms | CPU: 任何 x64, 禁止 heap alloc |\n| **掌機/Steam Deck** | DeepFilterNet (INT8) | 3–8 ms | ARM/x86, 需 NEON/AVX 優化 |\n\n### 5.3 潛在技術坑點\n\n1. **Domain Leakage**：訓練時用合成的腳步聲+背景噪，真實遊戲引擎輸出的音訊有 dynamic compression、reverb、occlusion 等處理，導致 domain mismatch。**解法**：收集真實遊戲錄音做 domain adaptation 或 fine-tune。\n\n2. **腳步聲+槍聲同時發生**：當腳步聲和槍聲時間重疊，分離模型可能無法完美分離。**解法**：設計對抗性訓練數據，加入重疊事件合成。\n\n3. **延遲累積**：遊戲音訊 pipeline 本身已有 ~20-50ms 延遲（採集、編碼、傳輸）+ 額外分離延遲可能超過 60ms 人耳閾值上限。**解法**：採用 causal streaming 模型並測量端到端總延遲。\n\n4. **腳步聲定義模糊**：「腳步聲」包含多種材質（水泥、木頭、金屬、草地）、不同速度、不同鞋款。單一類別訓練可能泛化不足。**解法**：使用多類別資料增強，或考慮 few-shot TSE 適應玩家特徵。\n\n5. **窗函數延遲** (頻域模型)：STFT 需要未來幀來計算頻譜（除非 causal STFT），典型 20ms 窗引入 10ms 算法延遲。**解法**：用時域模型規避此問題，或使用 causal STFT（單邊 pad）。\n\n6. **APO 環境限制**：Windows APO 禁止 memory allocation、mutex、file I/O，且須在 buffer 週期內完成。ONNX Runtime C++ API 需預先 allocate 所有 tensor。\n\n### 5.4 Phase 1 MVP 建議\n\n**最低可行產品 (MVP)** 方案：\n\n1. **第一步：Pure DSP Baseline**（1–2 週）\n   - 實現即時 band-split EQ：boost 1-4kHz band by +6dB\n   - 壓低 \u003c150Hz 低頻減噪\n   - 動態壓縮器限制峰值\n   - 延遲 \u003c 1ms，可直接在 Unity/Wwise 音訊 plugin 中實現\n\n2. **第二步：輕量 DNN 分離**（4–6 週）\n   - 基於 Conv-TasNet (causal, 2ms latency) 或簡化 DCCRN\n   - 使用合成腳步聲+遊戲噪聲訓練\n   - ONNX Runtime 部署，CPU 推理\n   - 集成到遊戲音訊 pipeline 作為 middleware\n\n3. **第三步：目標聲音提取 (TSE)**（8–12 週，可選）\n   - 基於 Waveformer 實現 streaming TSE\n   - 加入腳步聲 reference embedding\n   - 自動增益控制，根據背景噪聲動態調整增強強度\n\n---\n\n## 附錄 A：論文引用清單\n\n| 論文 | 引用 |\n|------|------|\n| Conv-TasNet (Luo et al., 2019) | IEEE/ACM TASLP, DOI: 10.1109/TASLP.2019.2935160 |\n| DCCRN (Hu et al., 2020) | Interspeech 2020, arXiv: 2008.00264 |\n| Waveformer (Veluri et al., 2023) | ICASSP 2023, arXiv: 2211.02250 |\n| HS-TasNet (Venkatesh et al., 2024) | ICASSP 2024, arXiv: 2402.17701 |\n| Band-SCNet (Yang et al., 2025) | Interspeech 2025 ★ Best Student Paper |\n| SCNet (Tong et al., 2024) | arXiv: 2401.13276 |\n| RNNoise (Valin, 2018) | Mozilla / GitHub: xiph/rnnoise |\n| DeepFilterNet (Schröter et al., 2023) | Interspeech 2022, GitHub: Rikorose/DeepFilterNet |\n| Sub-ms Latency SE (MS Research, 2025) | ICASSP 2025, arXiv: 2409.18239 |\n| RT-STT (Wu et al., 2025) | arXiv: 2511.13146 |\n\n---\n\n## 附錄 B：腳步聲頻率特性\n\n根據遊戲音訊工程文獻與 EQ 設定指南：\n- **核心頻段**：1–4 kHz（腳步聲主體）\n- **打擊感** (attack transient)：2–4 kHz\n- **材質感** (texture)：4–8 kHz\n- **低頻衝擊**：150–450 Hz\n- **掩蓋風險**：\u003c150 Hz（爆炸/引擎）、\u003e8 kHz（環境高頻）\n\n此頻率分布決定了分離模型的特徵提取重點應放在中高頻區域。","createdAt":1784702341017,"deletedAt":null,"id":"7aeea673bf6f94317683c95b","isNew":false,"isPublic":true,"itemType":"NOTE","name":"即時低延遲音源分離模型調研：遊戲腳步聲增強應用","parents":{"ce6132e77e556fbc5188fd3f":1784702341017},"preParentID":null,"updatedAt":1784706632451,"version":5}]}