Audio Effects Online 會在你已開啟的分頁中,對單一可由瀏覽器解碼的音訊檔套用回音、殘響、反轉、淡入、淡出與音量正規化,然後提供 PCM16 WAV 下載,完全不必將音訊傳送至任何伺服器。整個管線都存在於當前的瀏覽器分頁中:檔案讀取、Web Audio 解碼、樣本處理、WAV 編碼與下載建立,全部都在開啟此頁面的裝置上進行。由於音訊從未被複製離開使用者磁碟,因此不需要任何上傳步驟。背景中亦無伺服器端算繪,也沒有任何隱藏的人工智慧轉換。換取這項隱私的代價是一個嚴格且明確的合約:工具僅接受單一檔案、對每個樣本框套用恰好一項已揭露的操作、在輸出限制內配置完整的殘響尾段,並匯出符合標準的小端序 PCM16 RIFF/WAVE 檔。堅守這些界線正是讓效果能在瀏覽器而非遠端叢集上執行,也讓結果在多次執行與不同機器間保持可重現的原因。

瀏覽器分頁如何在不上傳的情況下處理音訊
網頁能執行真正的音訊處理工作,是因為現代瀏覽器內建了一套完整的音訊引擎,稱為 Web Audio,由 W3C Web Audio API 規範所定義。該引擎會公開一個 AudioContext,將檔案解碼為由 32 位元浮點樣本框組成的記憶體內 AudioBuffer,並讓 JavaScript 讀取或寫入每一個獨立樣本。當你造訪使用 Web Audio 的工具時,解碼與處理都在本機端進行;網頁不需要將檔案上傳到遠端服務以取得處理後的結果。
Audio Effects Online 完全依賴該引擎。檔案讀取透過標準的檔案輸入進行,解碼透過 AudioContext.decodeAudioData 進行,而唯一的網路流量就是小型 HTML 網頁本身。由於載入檔案的同一個 JavaScript 執行階段也在寫入新的樣本資料並觸發儲存對話框,音訊得以全程留在磁碟上。處理完成後,頁面會顯示聲道數、取樣率、輸入與輸出框計數、輸出峰值,以及精確的 WAV 位元組大小,這些全部衍生自本機的 AudioBuffer。這種緊密的回饋迴圈之所以可能,正是因為音訊從未離開分頁。
正是這個僅限本機的合約,決定了本工具並非具備所有效果的通用音訊編輯器。它是一條固定且已揭露的管線:一個輸入、一項操作、一個輸出。在單次執行中挑選超過一個效果,將需要更重的分頁內引擎,或需要在樣本間來回傳輸,這兩種做法都會把運算推離使用者裝置。保持精簡的功能選單,正是讓同一組效果能在任何機器上執行且不外洩資料的關鍵。
六種效果實際的運作方式
本工具提供一份精簡的效果清單,使每項操作都有文件可循、具確定性且易於理解。挑選合適的效果,要先了解每項效果在樣本層級做了什麼,因為同一個百分比滑桿在六個選項之間的行為差異極大。
Echo 是單一確定性的延遲。當強度設為百分之百時,每個輸入樣本會被保留,並在正好 200 毫秒後疊加一個半強度複本。較低的強度會線性縮放該延遲複本,因此百分之五十時僅疊加四分之一強度複本,百分之零時輸出等於輸入。完整的延遲尾段會在處理開始前先行配置,因此即使在很長的輸入下,最後一個回音也不會被截斷。
Reverb 是一套已揭露的輕量三點早期反射設計,而非真正的房間或錄音室模擬。反射分別在 29.7、37.1 與 41.1 毫秒加入,權重為 0.50、0.35 與 0.25,並乘上強度滑桿。這些係數是作為產品設定而公開,並非任何音樂廳、金屬板、彈簧、錄音室、脈衝響應或品牌處理器的量測結果,因此本效果並不模擬空間尺寸、頻率相關衰減、立體聲擴散、阻尼、前置延遲、摺積或專業殘響尾段。
Reverse 會以相反順序讀取解碼後的樣本框,並依強度與原始訊號混合,因此百分之五十會產生與緩衝區等音量反向鏡像再與原始訊號混合的結果。Fade in 從所選乾訊比例在開頭線性提升至結尾的全音量;fade out 則執行相反的動作。Normalization 會找出解碼後絕對值最大的樣本,並將其縮放至 0.95 的峰值。它屬於峰值振幅目標,而非響度、LUFS、感知音量、廣播合規或等響度目標,且靜音輸入會維持靜音。
| 效果 | 操作 | 關鍵參數 | 尾段或持續時間 |
|---|---|---|---|
| echo | dry + 強度 × 0.5 × 延遲樣本 | 200 ms 固定延遲 | 配置完整尾段 |
| reverb | dry + 強度 × (0.50·t29.7 + 0.35·t37.1 + 0.25·t41.1) | 三點反射,權重固定 | 配置完整尾段 |
| reverse | (1 − 強度) × dry + 強度 × reversed | 0 到 100 百分比混合 | 與輸入同長度 |
| fade in | 由強度線性提升至 1.0 的斜坡 | 整段檔案長度 | 與輸入同長度 |
| fade out | 由 1.0 線性下降至強度的斜坡 | 整段檔案長度 | 與輸入同長度 |
| normalization | 縮放至 0.95 樣本峰值 | 輸入的峰值 | 與輸入同長度 |
當乾訊與延遲樣本重疊時,較強的回音或殘響設定可能會發生截波。因此輸出樣本在 WAV 量化前會被限制在 −1 到 +1 的合法浮點範圍內,使下載的檔案永遠不會包含超出 PCM16 範圍的值。
在不上傳檔案的情況下套用一種效果
- 於目前的桌面或行動瀏覽器中開啟 Audio Effects Online,並選擇一個不超過 50 MiB 的音訊檔。可辨識的檔名包含 MP3、WAV、M4A、AAC、Ogg、WebM 與 FLAC,但實際解碼取決於瀏覽器的 Web Audio 實作,因此可辨識的副檔名並不保證能成功解碼。
- 從選單中挑選六種效果之一:echo、輕量 reverb、reverse、fade in、fade out 或 normalization。本工具每次執行僅套用恰好一種效果,因此請先決定所需的操作。
- 將強度滑桿設為 0 到 100 之間的整數。強度會依前述說明縮放或混合各操作;對 fade in 與 fade out 而言,它設定的是檔案開頭或結尾的乾訊比例,而非單純的強度控制。
- 在本機套用效果。處理完成後,頁面將顯示聲道數、取樣率、輸入框計數、輸出框計數、輸出峰值,以及精確的 WAV 位元組大小。若解碼失敗或輸出超出聲道樣本預算,則不會產生任何檔案。
- 下載 PCM16 WAV。下載的檔案是一個新產生的交錯小端序 PCM16 RIFF/WAVE 檔。請保留未經處理的原始檔,因為匯出的是全新的編碼,而非來源檔的包裝複製。
為具體說明預算計算,以一段 44,100 Hz 的 10 秒單聲道錄音為例。輸入包含 441,000 個樣本框,遠低於 3,000 萬聲道樣本的預算。在百分之百強度下選擇 echo,會在 200 ms 加入一個延遲複本,即 0.2 × 44,100 = 8,820 個樣本框。因此輸出包含 441,000 + 8,820 = 449,820 框。以每框兩個位元組編碼為 PCM16 單聲道,輸出 WAV 為 449,820 × 2 = 899,640 位元組,而僅輸入框便會產生 882,000 位元組,因此 echo 恰好增加 17,640 位元組。這些運算完全在本機的 AudioBuffer 上執行,這也是頁面能在處理完成瞬間顯示精確位元組數的原因:這些數字直接來自處理器所使用的同一預算。
決定工作能否完成的限制
本機管線設有明確的邊界,這些邊界有其存在的理由:將運算保留在單一瀏覽器分頁的記憶體內,並避免靜默寫出部分結果。每項限制都會在效果執行前強制檢查,失敗時僅以不產生下載的方式回報。
| 限制 | 數值 | 達到邊界時的行為 |
|---|---|---|
| 檔案大小 | 上限 50 MiB | 超過的檔案會在解碼前被拒絕 |
| 檔名辨識 | mp3、wav、m4a、aac、ogg、webm、flac | 瀏覽器編解碼支援仍有所不同 |
| 聲道 | 1 到 8,等長 | 超出範圍則不產生結果 |
| 取樣率 | 8,000 到 192,000 Hz | 超出範圍則不產生結果 |
| 效果強度 | 0 到 100 的整數 | 其他數值會被拒絕 |
| 輸入聲道樣本 | 上限 30,000,000 | 超過預算則解碼被拒絕 |
| 輸出聲道樣本 | 上限 30,000,000 | 超過預算時不截斷、不產生檔案 |
| Echo 與 reverb 尾段 | 額外增加的框數 | 可能通過輸入預算但未通過輸出預算 |
輸入與輸出預算會分開檢查,因為 echo 與 reverb 會增加框數。一個 3,000 萬樣本的輸入可能通過輸入關卡,但同一檔案在滿強度 echo 或 reverb 下可能因尾段使總量超過 3,000 萬聲道樣本而無法通過輸出關卡。此情況下不會截斷任何內容:不會寫出半完成的 WAV、不會顯示警告對話框,唯一徵兆就是沒有下檔。過時的結果也無法取代較新的狀態,因為每個工作都會取得自己的身分,且先前的物件 URL 會被撤銷。
輸出保留與捨棄的內容
下載的 PCM16 WAV 保留處理後的樣本資料與取樣率,但它是全新的編碼,而非容器層級的複製。若來源檔帶有音訊波形以外的資訊,這項差異便格外重要。標籤、封面、章節、cue 點、循環標記及其他容器詮釋資料皆不會保留;來源編解碼器、位元率與壓縮品質也不會延續,因為音訊已完整解碼為 32 位元浮點樣本,再重新量化為帶正負號 16 位元 PCM。
正是這種全新編碼的行為,使工具得以在處理後顯示精確的輸出位元組大小。Microsoft 為 PCM 資料所記錄的 WAVE 區塊對齊方式為聲道數乘以每樣本位元數再除以八,因此十六位元單聲道每框產生兩個位元組,十六位元立體聲每框產生四個位元組。這個關係結合頁面上回報的框計數,便決定了最終的檔案大小。若將同一個 WAV 透過有損編解碼器重新編碼後再載入,反覆的解碼與 PCM 處理可能會顯現來源瑕疵,因此最佳做法是保留未經處理的原始檔,僅在刻意需要乾淨鏈時,才將下載的 WAV 作為下一個輸入。
Build a Multi-Effect Chain by Re-Using the WAV
The tool applies only one effect per run by design. To stack effects, download the result, inspect the page's reported frame count and peak, and use that WAV as the next input. Each run is independent: changing the file, the effect, or the amount invalidates older work, so two open runs of the same source with different settings do not interfere with each other.
A reasonable chain is fade in, then normalization, then a light reverb. Apply fade in to remove a hard start, download the WAV, reopen that WAV, and apply normalization to bring the faded-in signal to a 0.95 peak, then download, re-open, and add a small amount of reverb to put the recording in a virtual room. None of those intermediate files leave the device, so the chain stays as private as a single run. If you want to A/B the chain against the untouched original, just keep the original file open in another tab and switch back to compare, since the tool never edits the source.
For readers who want a deeper walkthrough of the local pipeline and the WAV export, the guide on applying audio effects online locally and downloading a WAV covers the same procedure with extra detail. For the underlying decoder contract, the W3C Web Audio API 1.1 specification defines how AudioBuffer length is measured in sample frames and how decodeAudioData behaves.
For a deeper look, see Audio Equalizer Online: Local Effects to Adjust Your Audio.