為 M4A 音訊檔加上 reverb 是本機、在瀏覽器內執行的作業,使用 W3C Web Audio API 來解碼你的檔案,並採用已公開的三點反射,延遲時間為 29.7、37.1 與 41.1 毫秒,權重分別為 0.50、0.35 與 0.25,再乘上一個 0–100% 的量值控制,接著寫入一個新的 PCM16 little-endian WAV,讓你在同一個分頁下載。這個 reverb 並非 convolution 引擎、空間模擬器,也不是任何品牌的硬體模擬;它是一個確定性的早期反射設計,採用固定延遲與權重,因此相同的輸入在相同的量值下永遠會產生相同的輸出。Audio Effects Online 在當前頁面上執行每一步:檔案讀取、解碼、取樣處理、WAV 編碼與下載建立。音訊不會被上傳到伺服器,整個處理鏈中也沒有藏著任何 AI 轉換。因為大約 41 毫秒的完整 reverb 尾音會在處理前先行配置,最後一個反射永遠不會被截斷,但尾音確實會讓輸出多出幾格畫面。你的原始 M4A 維持不動,結果是一個全新的 PCM16 WAV,其精確的聲道數、取樣率、影格數、峰值與位元組大小都會顯示在頁面上,讓你能確認實際寫入了什麼。

add reverb to audio online m4a
add reverb to audio online m4a

M4A 檔案需要能解碼 AAC 的瀏覽器

M4A 是一種容器格式,最常裝載 AAC 編碼的音訊,有時也會裝載 ALAC。以 .m4a 結尾的檔名會告訴作業系統磁碟上裝載的是哪種容器,但瀏覽器內部實際的解碼步驟,取決於瀏覽器本身的 AAC 實作以及底層作業系統的支援。Safari、Chrome 與 Edge 在 macOS 與 Windows 上通常都能毫無問題地解碼 M4A/AAC。Firefox 過去一直較為挑剔,在 Linux 上可能會拒絕特定的 M4A profile。對 reverb 處理而言重點很簡單:如果瀏覽器無法解碼你那個特定的 M4A,Audio Effects Online 就不會產生結果,也不會寫出任何 WAV,因為契約就是「解碼一個受支援的檔案」,而不是「無論如何都轉檔」。如果你的 M4A 無法解碼,務實的替代做法是先在你自己的機器上把它轉成更普遍支援的格式,例如 WAV 或 FLAC,然後再用轉出來的檔案作為 reverb 步驟的輸入。Reverb 本身不在乎原本的容器是什麼;它在 Web Audio 將取樣回傳之後,直接處理已解碼的取樣。

Audio Effects Online 在分頁內實際做了什麼

Audio Effects Online 圍繞著一條很明確的契約來建構。它一次只接受一個瀏覽器可解碼的音訊檔,對每一格已解碼的影格只套用六種有限轉換中的「剛好一種」,然後把完整的處理後音訊匯出成一個新的 PCM16 RIFF/WAVE 檔。這六個選項分別是:單一 200 ms 的回音、三點輕量 reverb、反轉、淡入、淡出以及峰值正規化。沒有串接多個效果按鈕,也沒有多效果同時渲染;如果你需要超過一種轉換,就下載第一個結果,然後把新的 WAV 帶著選好的下一個效果重新餵回工具。每一步都在當前分頁內於本機執行:檔案讀取、Web Audio 解碼、取樣影格運算、WAV 編碼以及下載建立全部都在瀏覽器中發生,沒有任何音訊會離開你的機器。處理完成後,頁面會顯示聲道數、取樣率、輸入影格數、輸出影格數、輸出峰值,以及 WAV 的精確位元組大小,讓你不必盲目信任工具就能驗證實際寫入的內容。

效果操作典型用途
回音單一 200 ms 半強度延遲拷貝Slap-back 雙重化
Reverb29.7、37.1、41.1 ms 的三點反射輕量空間感
反轉以反序讀取已解碼取樣創意翻轉
淡入從乾訊部分線性放大到滿載平順的開頭
淡出從滿載線性衰減到乾訊部分平順的結尾
正規化向 0.95 取樣峰值縮放最大化音量

如何線上為 M4A 檔加入 Reverb

  1. 在目前版本的桌面瀏覽器分頁中開啟 Audio Effects Online。
  2. 點擊檔案選擇器,挑選一個大小在 50 MiB 以下(含)的 M4A 檔案。以 .m4a 結尾的檔名會被接受,但實際能否解碼仍取決於你的瀏覽器與作業系統。
  3. 從效果清單中選擇「Reverb」。Reverb 選項是輕量三點反射,不是 convolution 引擎或大廳模擬器。
  4. 將量值設成介於 0 到 100 之間的整數。在 0 時 reverb 是靜音,在 100 時每一點都會以完整基礎權重觸發。
  5. 點擊「Apply」。三點會在 29.7、37.1 與 41.1 ms 觸發,且完整尾音會預先配置,所以最後一個反射不會被截斷。
  6. 閱讀後處理面板:聲道數、取樣率、輸入影格數、輸出影格數、輸出峰值,以及 WAV 的精確位元組大小都會列出來供你檢查。
  7. 點擊「Download」儲存新的 PCM16 WAV。原始的 M4A 不會被修改,也不會在伺服器上保留任何拷貝。

三點 Reverb 的內部構造

這個 reverb 刻意設計得很簡單,讓你能在紙上推導它的行為。原始訊號的三份拷貝會以固定的 29.7、37.1 與 41.1 ms 延遲回加,已公開的基礎權重分別為 0.50、0.35 與 0.25。量值控制會線性地縮放這些權重,因此 50% 的量值會把它們變成 0.250、0.175 與 0.125,而 0% 量值則會讓 reverb 完全靜音。由於工具會在逐一走訪輸入取樣之前就預先配置整段尾音,最後一個反射一定會被寫入,即使在 100% 量值時也是如此。

延遲 (ms)基礎權重
129.70.50
237.10.35
341.10.25

50% 量值、44.1 kHz 單聲道的數值演算範例

取一個 44.1 kHz 的單聲道檔,將 reverb 量值設為 50。量值因子為 50 / 100 = 0.50,實際的點權重會變成:

基礎權重 × 量值因子 = 實際權重 0.50 × 0.50 = 0.250 0.35 × 0.50 = 0.175 0.25 × 0.50 = 0.125

在 44.1 kHz 下把毫秒延遲換算成取樣影格位移:29.7 × 44.1 ≈ 1310 影格,37.1 × 44.1 ≈ 1636 影格,41.1 × 44.1 ≈ 1813 影格。對於影格 N 上的每一個輸入取樣,reverb 會加上影格 N − 1310 處取樣的 0.250 倍、影格 N − 1636 處取樣的 0.175 倍,以及影格 N − 1813 處取樣的 0.125 倍。總尾音長度大約是 41.1 ms,在 44.1 kHz 下約為 1813 影格。接著會把輸出裁剪到合法的 −1 到 +1 浮點範圍,再量化為 16-bit PCM。

這不是音樂廳、金屬板、彈簧或 convolution reverb。沒有依頻率而變的衰減、沒有立體聲擴散、沒有阻尼,也沒有 pre-delay。這三點是一種快速、透明的方式,能在乾淨的錄音上加上空間感或重複感,用於音效設計的初稿,而 瀏覽器 reverb 實作步解 從稍微不同的角度展示了同一個工具。

需要事先規畫的檔案大小、取樣預算與尾音上限

Reverb 步驟受到兩個交互作用的上限所限制。輸入檔不得超過 50 MiB,而解碼後的輸出(含 reverb 尾音)最多只能有 3000 萬個聲道取樣。當輸出會超出預算時,執行會被拒絕而不會截斷,意思是一個非常長、取樣率又高的檔案即使能放進某個不會增加影格的效果預算,也可能讓 reverb 步驟失敗。回音與 reverb 是唯二會延長輸出的效果,因為它們的尾音會在原始長度之外再增加取樣。當 100% 量值時,乾訊與延遲拷貝大幅重疊,加總後的取樣可能會超出合法的 ±1 浮點範圍;編碼器會在量化成 16-bit PCM 之前,把有限的結果裁回範圍內,因此在強烈設定下可能會毫無預警地出現可聽見的失真。

聲道與取樣率上限承襲自本機音訊管線。輸入必須具備 1 到 8 個等長聲道,以及介於 8,000 與 192,000 Hz 之間的取樣率。如果你的 M4A 解碼後落在這個範圍之外,就不會套用 reverb。輸出容器由 Microsoft 的 WAVEFORMATEX 區塊對齊規則 規範,在 16-bit PCM 下,單聲道每影格寫入 2 位元組、立體聲每影格寫入 4 位元組,這就是為什麼頁面能顯示 WAV 的精確位元組大小而非估算值。

利用 WAV 輸出構築更長的效果鏈

由於 Audio Effects Online 每次執行只套用剛好一種效果,任何需要 reverb 加其他轉換的鏈都必須分階段建立。典型模式是:從原始 M4A 開始,先套用 reverb,下載 WAV,然後把這個 WAV 餵給下一輪執行,選擇其他效果,例如反轉、淡出尾音或峰值正規化。每一輪都會配置自己的輸出緩衝區,所以第一輪的 WAV 會成為第二輪的輸入。反覆的有損解碼與 PCM 處理可能會讓原始失真浮現,反覆的裁剪或正規化也可能會改變錄音的動態範圍,因此值得保留原始 M4A 不動,並把中間的 WAV 標示清楚,以便需要時能從乾淨的來源重新開始一條新鏈。

Audio Effects Online 同樣值得為了其他五種效果再回頭使用,因為跨執行之間的檔案格式契約維持不變,唯一會改變的只有選定的操作。解碼環境會在每次執行之間被關閉,過時的工作無法覆蓋較新的狀態,臨時的物件 URL 在被取代時也會被撤銷,因此重新載入頁面或切換效果並不會洩漏記憶體,也不會把舊結果跟新結果混在一起。

延伸閱讀:為影片萃取出的音軌加入 Reverb