Volume Changer 編輯音訊的方式,就像無損的圖片縮放保留原始像素一樣:它在瀏覽器中解碼完整的檔案,將每個有限樣本乘以介於 0% 到 400% 之間的選定線性增益,然後匯出 16 位元 PCM WAV,過程中絕不透過失真編解碼器重新編碼來源檔。百分比是直接的振幅乘數,而非分貝控制 — 在 100% 時每個樣本都保留其解碼值,在 200% 時每個樣本都加倍(在削波前約增加 6.02 dB),而在 0% 時輸出為靜音,但保留原始的持續時間、取樣率與聲道數量。任何在乘法後跨越 ±1 滿刻度界限的樣本都會被計算並削波,報告會顯示產生的峰值。由於解碼、增益、預覽和編碼全部都在當前的分頁中完成,檔案不會離開您的裝置,也不會有任何佇列或外部服務來處理它。

變更音訊音量時「無品質損失」的真正意涵
在不失真的情況下變更圖片大小時,其運作原則是保留原始像素並避免重新壓縮。同樣的三個概念也適用於音訊音量編輯,它們構成你在任何聲稱能讓音訊「保持原貌」的工具中應該尋找的契約:
- 不進行失真重新編碼。來源檔只解碼一次,套用增益後,結果會以未壓縮音訊的形式寫入。原本的 MP3、AAC、Ogg 或 FLAC 壓縮設定不會被重複使用,因此你不會把一代失真壓疊加在另一代之上。
- 保留解碼後的屬性。持續時間、取樣率和聲道數與解碼後的來源完全相同,這代表你儲存的 WAV 會以與輸入相同的速度播放,並對應相同的喇叭配置。
- 保留原始檔案。非破壞性的工作流程一定會保留來源檔,以便稍後重新編輯、復原或稽核。
大多數日常的音量抱怨(「檔案聽起來比原始版本小聲」)來自於工具在套用增益後透過失真編碼器重新儲存。壓縮步驟本身並不會降低音量,但反覆的編碼—解碼循環會使暫態變得遲鈍,並減少高頻端的細節。避開這種來回處理,就像是圖片縮放時不透過 JPEG 重新儲存一樣。
為什麼 Volume Changer 能從頭到尾保留音訊品質
Volume Changer 正是圍繞著這項契約所設計。整個管線在當前瀏覽器分頁中使用 Web Audio API 執行,特別是使用 decodeAudioData 將完整的已編碼檔案轉換為浮點聲道樣本(請參閱 W3C Web Audio API 規範中說明底層方法的部分)。解碼後,每個有限樣本都會乘以所選的線性增益,結果僅在必要時被削波至數位滿刻度,然後將檔案寫入為 16 位元 PCM WAV。一切都不會被上傳、排入佇列或交由外部服務分析。
這條管線在實務上能避免損失,仰賴以下三個細節:
- 線性增益,而非分貝曲線。百分比是直接的振幅乘數。在 100% 時,每個有限樣本都乘以 1,解碼後的振幅完全不變。在 200% 時,每個有限樣本都乘以 2,這大約是在任何削波發生之前的 6.02 dB 振幅增加。在 0% 時,輸出為靜音,但持續時間、取樣率與聲道數會被完整保留。
- 削波會被回報而非隱藏。乘法後超過 +1 或低於 -1 的樣本會被削波至支援的滿刻度範圍內。下載的檔案接著會回報有多少樣本跨越了該界限,並顯示削波後的峰值。當削波樣本數不為零時,代表增益可能已引入了可聽的失真,你可以調低百分比並重新匯出。
- 輸出是 WAV,而非重新編碼的 MP3 或 AAC。WAV 可在本地編碼,無需新增編解碼器或編碼器依賴,而且產生的檔案可使用任何音訊編輯器檢查。匯出的容器為 RIFF,使用小端序整數欄位與格式代碼 1 表示未壓縮 PCM,符合 Microsoft WAVEFORMATEX 結構中記錄的版面配置。其權衡在於檔案大小:WAV 通常遠大於壓縮後的來源,但它消除了失真來回處理這一層。
在不失真的情況下變更音訊音量 — 逐步教學
以下是這個工具所建構的操作程序:
- 選擇一個不超過 50 MiB 的支援音訊檔,並等待檔名出現在輸入區域中。副檔名並不能證明媒體可以被解碼 — 格式支援取決於瀏覽器、作業系統和編解碼器版本。瀏覽器必須能夠解碼 MP3、WAV、M4A、AAC、Ogg、WebM 或 FLAC,操作才能繼續。
- 將線性輸出音量設定在 0% 到 400% 之間,然後選擇 Change volume。從接近 100% 開始是最安全的初步動作,因為它會在驗證管線其他部分的同時,讓每個有限樣本保持其解碼值。
- 預覽 WAV,檢查回報的峰值與削波樣本數,並在聆聽完整結果後再下載。下載的檔名以 -volume-adjusted.wav 結尾。如果解碼失敗,工具會停止並顯示錯誤,而不會產生空白或不完整的輸出,這能避免你交付一個損毀的檔案。
解讀百分比、峰值與削波樣本報告
百分比控制是一個線性乘數,下表摘要說明了在每個數值下,有限樣本會發生什麼情況。「削波界限」是 16 位元 PCM 可表示的 ±1 數位滿刻度範圍。
| 百分比 | 線性乘數 | 對有限樣本的效果 | 大約的 dB 偏移 | 備註 |
|---|---|---|---|---|
| 0% | 0 | 樣本被寫為 0 | −∞ (靜音) | 保留持續時間、取樣率、聲道 |
| 50% | 0.5 | 樣本被減半 | −6.02 dB | 一半振幅 |
| 100% | 1 | 樣本不變 | 0 dB | 恆等操作 |
| 200% | 2 | 樣本加倍 | +6.02 dB | 兩倍線性振幅 |
| 400% | 4 | 樣本變為四倍 | +12.04 dB | 四倍線性振幅 |
分貝欄位使用標準的振幅域公式 20 × log10(multiplier)。例如,線性振幅加倍就是 20 × log10(2) = 20 × 0.30103 ≈ 6.0206 dB。這是振幅域的測量,而非感知響度的測量;感知響度還取決於頻率平衡、動態與聆聽環境。
在套用增益後,工具會回報削波後的峰值振幅,以及跨越削波界限的樣本數。削波樣本數大於零代表部分波形被切平;如果數字很大,調低百分比並重新匯出是標準的修正方式。
決定編輯能否完成的限制
即使擁有乾淨的本地管線,在一般的筆記型電腦或行動裝置上,仍有四項硬性限制會決定操作能否完成:
- 檔案大小:輸入檔限制為 50 MiB。
- 解碼後持續時間:限制為五分鐘。
- 聲道數:限制為八個聲道。
- 解碼後的總聲道樣本數:限制為 3000 萬。
這些限制的存在是為了限制記憶體配置與主執行緒的工作量。一個小的壓縮檔在解碼後仍可能大幅膨脹,因此即使選擇的檔案遠小於 50 MiB,解碼後的限制依然重要。如果任務跨越了任何一項限制,工具會停止,而不會產生部分結果。更換檔案或百分比會使先前的結果失效,並撤銷其暫時性的物件 URL,而任務識別碼能防止較舊的非同步解碼覆蓋較新的設定。
安全編輯的訣竅
一些習慣能讓工作流程保持可預測:
- 從接近 100% 開始,僅在預覽完整輸出後再小幅調高。音量差異常出現在音軌的開頭或結尾,所以要從頭到尾聆聽。
- 檢查削波樣本數。如果它不為零且音訊聽起來刺耳,請將百分比減少四分之一並重新匯出。
- 保留原始檔案。此操作無法還原來源中已經被削波的資訊,而反覆的 PCM 轉換會讓版本控制更加困難。
- 驗證下載檔案的持續時間和聲道,再取代任何正式環境的音訊。匯出的 WAV 使用原本解碼後的取樣率與聲道數,在帶正負號的 16 位元音訊中,負值滿刻度對應到 -32768,正值滿刻度對應到 32767。
- 請記得線性增益不等於響度正規化。此工具不會計算 LUFS、真實峰值、ReplayGain 或任何平台特定的目標。若用於母帶處理或廣播送交,請使用經過測量的音訊工作流程並監聽匯出的檔案。
用於解碼的 AudioContext 在處理完畢後會被關閉,而產生的下載連結仍是暫時性的 — 當分頁關閉或新操作取代它時就會消失。此工具不會保留來源標籤、專輯封面、章節、循環點、Cue 標記、編碼器中繼資料或原始壓縮設定,因此匯出的檔案僅包含 RIFF PCM 容器中的解碼波形。
如果你正在權衡各種方案,在不失真的情況下變更 PDF 大小:音訊解答對此有詳細說明。
如果你正在權衡各種方案,在不失真的情況下變更像素大小:樣本振幅對此有詳細說明。