跳轉到

第9章 音效處理#

录音室與遊戲引擎裡的魔法,多半是幾個古老的訊號處理技巧的精緻版本:讓聲音有空間感、換個音高、時間快慢不用重唱、背景雜訊消失。本章逐一揭開這些技巧的演算法內幕。

殘響(reverb)是空間 perception 的關鍵。物理上我們可以用鏡像法計算早期反射,再以指數衰減的統計擴散近似尾部;工程上則有經典的 Schroeder reverb 與 Freeverb:用梳狀濾波器疊出密集回音、全通濾波器增加叢密性,全部只需要 delay line 與乘加運算。音高轉移與時間伸縮(pitch shifting / time-stretching)呈現一對有趣的對偶:律它們其實是同一件事的兩面,粒度合成(granular synthesis)以小視窗搬移與相位聲碼器(phase vocoder)則是兩大實作路線。噪音抑制包括光譜減法、Wiener 濾波與以轉移函數比率的經典方法,並延伸到今日常見的自適應濾波 LMS 與主動降噪原理,用「以噪音消除噪音」的相位移位波做直觀的示範。

每個演算法都配備 numpy 實作,讓你聽不見也不打緊——數字會說話!