Skip to content
Raymond Lei(雷菩宇); 䨻-Ficus religiosa-Cousin edited this page Aug 8, 2025 · 1 revision

我幫你把兩個程式做了功能、數學流程、推理模式上的比較,讓你清楚看到它們差在哪裡,以及各自的設計重點:


1. 處理方式差異

項目 AudioDenoiser(16kHz) FortyEightKHzDenoiser(48kHz)
採樣率 16 kHz 48 kHz
時頻轉換 手動 torch.stft → 頻域處理 → torch.istft 還原 無 STFT,直接時域模型(input_frame)做推論
模型輸入型態 複數 STFT Frame(實部+虛部)+ 三個 Cache(conv_cache / tra_cache / inter_cache) 單一時域 Frame(大小固定 hopSize=480)+ 狀態向量(state)+ 限幅參數(atten_lim_db)
模型推論流程 Frame-by-frame 頻域卷積處理,需持續更新三種內部緩存狀態 Frame-by-frame 時域推論,僅需更新一個 state 陣列
輸出還原 頻域合成複數張量 → istft → 時域波形 時域波形直接拼接(cat)
數據緩衝管理 須手動重建 Real/Imag 矩陣 輸出直接拼接,然後去掉 Padding

4. 如何選擇

  • 如果要保留更多音質細節、特別是對付特定頻段噪聲 → 用 16kHz STFT 頻域版

  • 如果延遲極低、且能接受端到端模型音色特性 → 用 48kHz 時域版

  • 如果需要跨平台實時處理(WebRTC、SIP)→ 時域模型更容易整合,因為不用額外 FFT/IFFT。

Clone this wiki locally