音量調整器的精準度來自於將每個解碼後的音訊樣本乘以一個固定的線性增益係數——這中間沒有任何猜測,也沒有任何壓縮曲線的介入。瀏覽器會將整個音訊檔解碼為浮點數的聲道樣本,套用一個介於 0 到 4 之間的乘數(即 0% 到 400% 的範圍),將任何超出數位全刻度的樣本箝制在支援範圍內,計算被截幅的樣本數量,並將結果寫入為 16 位元 PCM WAV。由於增益是一個直接的振幅乘數,您選擇的百分比等於套用到每個有限樣本的係數:100% 保持解碼後的振幅不變,50% 將每個樣本乘以 0.5,而 200% 將每個樣本乘以 2。零百分比會在整段解碼長度中寫入靜音,同時保留原始的取樣率、聲道數與訊框配置。這種確定性的、逐樣本處理的方式,正是讓瀏覽器分頁中的音量調整在不同作業系統與裝置之間都能保持可預測且可重現的原因——前提是瀏覽器確實能夠解碼來源格式。

不同工具之間精準度會有所差異,是因為「音量」可以代表好幾種不同的意思:線性振幅乘數、分貝偏移、以 LUFS 表示的響度目標、動態範圍壓縮曲線,或是平台特定的 replay-gain 數值。一個標榜「80 dB 增益提升」的工具和一個標榜「400% 增益」的工具,兩者都可能產生更響的輸出,但它們描述的是完全不同的運算,並以不同的方式保留音訊資訊。Volume Changer 工具明確歸類在線性振幅類別,而這個定位就是您在判斷音量調整是否符合預期時,首先要確認的事。

volume changer accuracy
音量調整器精準度:線性增益的意義

「音量調整器精準度」實際上代表什麼

在瀏覽器型音量工具的脈絡下,精準度有三個經常被混為一談的不同含義:

  • 算術精準度:套用到每個樣本的增益是否等於所選的百分比,達到格式所能容納的精度?
  • 動態範圍精準度:超出支援範圍的樣本是以可預測、有記錄的方式處理,還是被悄悄地失真?
  • 格式精準度:匯出的檔案是否保留原始的取樣率、聲道數與長度,還是在匯出過程中悄悄變更了這些屬性?

一個工具可能在其中一項表現良好,卻在其他項目表現糟糕。一個響度正規化工具可能在感知響度上獲得滿分,卻改變了長度、套用了壓縮,或是削減了餘裕空間(headroom)。一個簡單的線性乘數可能在算術與動態範圍精準度上獲得滿分,但對響度卻完全沒有處理。要如何解讀「精準度」,取決於您實際上需要回答的問題,而同一個詞可能描述截然不同的結果。

線性增益 vs 分貝:百分比背後的數學

Volume Changer 中顯示的百分比是線性振幅乘數,而非分貝值。多數音訊專業人士預期的換算方式是 20 × log10(振幅比),因此振幅加倍大約是 6.02 dB 的變化,而不是 100 dB 的變化。產品規格明確指出:「這不是分貝控制:線性振幅加倍大約是 6.02 dB 的變化,而不是 100 dB 的變化。」當使用者帶著「200% 代表響度增加 200 dB」的預期來搜尋時,工具會產生令他們驚訝的結果——但這個結果對它實際實作的線性模型來說,在算術上是正確的。

滑桿百分比與以 dB 表示的等效振幅變化之間的關係,對於您選擇的任何百分比都是精確的。下表顯示落在 0%–400% 範圍整數邊界上的數值:

音量設定線性乘數近似振幅變化
0%0.0靜音(數位靜音)
25%0.25−12.04 dB
50%0.5−6.02 dB
100%1.00 dB(不變)
200%2.0+6.02 dB
400%4.0+12.04 dB

−12.04、−6.02、0、+6.02 與 +12.04 dB 這些數字來自振幅比的標準 20 × log10 公式,並且與產品文件中所描述的加倍關係完全吻合。如果您的目標是加上某個特定的分貝偏移,請先將該偏移轉換為百分比;如果您的目標是「在樣本層級讓音量變成兩倍」,那麼百分比滑桿就能直接達成,不需任何中間曲線。

截幅以及它如何揭露精準度問題

由於增益會套用到每一個有限的解碼樣本,任何在乘法後絕對值超過 1.0 的樣本都必須被限制在數位全刻度內。工具會透過箝制到支援範圍並計算有多少樣本跨越邊界來達成這一點。非零的截幅樣本計數,是增益產生格式無法容納之數值的直接證據,這通常意味著在最響的段落會產生可聽見的失真。

實際演算範例:一個解碼後的樣本在 +1.0 / −1.0 全刻度軸上位於 0.8。您選擇 200% 增益,因此乘數為 2.0。乘積為 0.8 × 2.0 = 1.6。工具會將 1.6 箝制為 1.0(數位全刻度),並將截幅樣本計數器加一。同一個樣本在 50% 增益下會變成 0.8 × 0.5 = 0.4,這個值落在支援範圍內,對計數器的貢獻為零。這就是為什麼截幅樣本報告是工具中最可靠的精準度訊號:它會針對您選擇的確切檔案與百分比,告訴您有多少樣本無法在輸出中被忠實呈現。

零截幅並不保證理想的感知響度——一個安靜的檔案可以被放大到遠超過 100%,如果其峰值很小的話,仍可能維持在全刻度以下。截幅樣本計數是一項必要的檢查,但並非充分的條件,在您決定匯出之前,應該搭配透過合適的耳機或喇叭仔細聆聽。這份報告讓增益在樣本層級而非僅在播放音量旋鈕上變得可見。

如何透過瀏覽器工具精準地調整音量

  1. 開啟 Volume Changer 工具並選擇一個瀏覽器可解碼的音訊檔(MP3、WAV、M4A、AAC、Ogg、WebM 或 FLAC),檔案大小不得超過 50 MiB。等待檔案名稱出現,這代表檔案已被接受並讀取中繼資料。
  2. 將線性輸出音量設定在 0% 到 400% 之間。如果您不確定來源音訊的峰值為何,可以從接近 100% 開始——100% 保證零截幅與零額外失真。
  3. 選擇 Change volume。瀏覽器會解碼整個檔案,將每個有限樣本乘以所選的增益,將溢出的樣本箝制到數位全刻度,並計算其數量。
  4. 在瀏覽器中預覽產生的 WAV。聆聽最響段落是否有失真,並在決定匯出之前確認感知響度符合您的預期。
  5. 檢視處理後回報的峰值與截幅樣本計數。非零的截幅樣本計數代表可能已引入可聽見的失真;調低百分比並重新執行,直到計數歸零,或直到您判斷該失真在該用途下是可接受的。
  6. 只有在預覽聽起來正確之後再下載。下載的檔案會以 -volume-adjusted.wav 為後綴命名,並包含一個完整的、RIFF 格式的、小端序的 PCM16 WAV,保留原始的取樣率與聲道數。

限制您成果精準度的上限

Volume Changer 對每個樣本套用相同的固定乘數,這代表有幾項硬性限制決定了特定檔案是否能被處理。輸入檔案必須為 50 MiB 或更小,解碼後的長度必須為五分鐘或更短,聲道數必須為八個或更少,而解碼後的總聲道樣本數必須低於 3000 萬。這些限制是為了將一般筆電與行動裝置上的記憶體用量與主執行緒時間控制在一定範圍內。

壓縮檔案在解碼後可能會大幅膨脹,因此即使所選的來源檔案很小,解碼後的限制仍然至關重要。如果您的檔案無法處理,工具會回報解碼或限制錯誤,而不是產生部分或空白的輸出——請參閱 Web Audio decodeAudioData 規格 以了解工具所依賴的底層解碼器行為。

格式支援取決於瀏覽器、作業系統與編解碼器版本。檔案副檔名並不能證明該檔案能被解碼——一個損壞的 MP3 即使副檔名為 .mp3 仍然會無法解碼。當解碼失敗時,工具會停止並顯示錯誤,而不是產生空白或部分的輸出。只要檔案成功解碼且落在公布的限制範圍內,套用到樣本上的算術運算在 32 位元浮點數解碼的精度內是精確的,而唯一剩下的精準度疑慮就是截幅。

在信任下載的 WAV 之前進行確認

線性增益並非響度正規化、刻版處理、限制(limiting)、壓縮、雜訊降低或廣播合規。感知響度取決於頻率平衡、長度、動態、喇叭與聆聽環境,本工具並不會計算 LUFS、真實峰值(true peak)、replay gain 或任何平台特定的目標。對於專業交付用途,您仍然需要一套經過測量的音訊工作流程,以及對匯出檔案的獨立監聽。

匯出的 WAVE 檔使用 RIFF 容器搭配小端序整數欄位,未壓縮 PCM 的格式代碼 1,原始解碼後的取樣率,原始的聲道數,以及每樣本 16 位元——其結構記載於 Microsoft WAVEFORMATEX 參考文件。聲道樣本以逐訊框交錯的方式排列。負向全刻度對應至 −32768,正向全刻度對應至 32767,這與帶正負號 16 位元音訊的非對稱範圍一致。

有幾項屬性是刻意不予保留的:來源標籤、專輯封面、章節、循環點、cue 標記、編碼器中繼資料,以及原始的壓縮設定。即使來源是壓縮檔,輸出永遠是 WAV,這使得結果普遍易於檢視,但通常比 MP3、AAC 或 Ogg 大上許多。在替換任何正式音訊之前,請先驗證下載檔案的長度與聲道數,並保留原始檔案,因為這個運算無法還原來源中已被截幅的資訊,而重複的 PCM 轉換可能會讓版本控管變得複雜。如果您還需要永久性的響度修正或平台特定的目標,請參閱關於如何在不損失品質的前提下變更音訊音量的完整指南,以了解線性增益在更大規模的刻版工作流程中扮演的角色。

如果您正在權衡各種選項,Audio Pitch Changer Test Online: Shift Pitch Locally 對此有詳盡的說明。