Audio Speed Changer 中的 25 MB 上限是針對來源音訊檔案大小所設定的硬性上限,在瀏覽器解碼時就會套用,發生在任何速度調整或 WAV 匯出之前。它指的是您所選擇原始檔案的位元組數,而不是渲染輸出的位元組數,因此即使是 24 MB 的 MP3 只要能順利解碼就會被接受,即便最終產生的 WAV 可能會超過 25 MB。這個上限之所以存在,是因為解碼與離線渲染完全在您的瀏覽器分頁中執行,而該處的記憶體使用量必須保持可預測。搭配上對時長、聲道數、取樣率以及渲染總樣本數的限制,25 MB 這個數字只是工具在產出可下載的 PCM16 WAV 檔案前所檢查的數道關卡之一。由於上限是在選取檔案的當下進行量測,因此無論您選擇更快或更慢的速度,這個上限都不會跟著改變。

25 MB 上限實際量測的是什麼
25 MB 這個數字量測的是您交給工具的來源檔案大小,是在選取的當下進行量測,而不是在任何速度變更之後。工具會讀取檔案的位元組,請瀏覽器將其解碼為原始音訊訊框,然後才讓您選擇速度。如果您選取的檔案在磁碟上超過 25 MB,工具就不會嘗試解碼,也不會產生任何輸出。如果您選取的檔案低於 25 MB 而且能成功解碼,這個上限就完成了它的工作,接著工作流程會繼續進行。
由於這個上限是針對來源檔案進行檢查,因此它與您最終下載的渲染後 WAV 大小之間沒有直接的關聯。短小且壓縮率高的低於 25 MB 檔案,可能會渲染成比來源大好幾倍的 PCM16 WAV;而同樣大小的冗長且高壓縮檔案,則可能會渲染成與來源重量較為接近的 WAV。這個上限的目的在於限制解碼步驟,而不是預測輸出的大小。
作為對照,工具在下載前也會回報結果的時長以及渲染後 WAV 的檔案大小。這些回報的數字會反映您所選擇的速度以及原始時長,因此在 25 MB 來源關卡通過後,這是個有用的第二重檢查。
為何在瀏覽器型工具中需要這個上限
這個上限的目的是讓記憶體使用量保持可預測。當您選取檔案時,瀏覽器會將整個檔案解碼為記憶體中的原始音訊訊框,然後以您選擇的播放速率將這些訊框路由至 OfflineAudioContext,最後再將渲染後的聲道資料序列化為交錯式 little-endian PCM16 RIFF/WAVE 串流。每個階段都需要足夠的餘裕來容納一整份音訊資料的拷貝,並且與伺服器端的管線不同,這裡沒有交換空間、分散式佇列或額外的磁碟緩衝可以作為後援。瀏覽器分頁必須將整個工作納入該頁面所能使用的記憶體中。
這就是為什麼 25 MB 上限會搭配其他幾道從不同角度限制同一項工作的關卡。時長上限為 15 分鐘,因此冗長的講座錄音不會產生無上限的樣本數。聲道數上限為 8,因此會讓每秒記憶體使用量倍增的多聲道檔案在早期就被拒絕。取樣率上限為 192 kHz,因此極高取樣率的素材無法將每秒的容量推升至超過一般分頁所能承載的程度。渲染樣本數上限為 3000 萬,因此即使在速度變更之後,序列化後的 WAV 檔案也無法增長超過可預期的大小。
規範了用於渲染速度調整後音訊的 OfflineAudioContext 的 Web Audio API 規格,明確地將此種記憶體模式定為必要,要求渲染器必須以單次處理的方式將其輸出寫入固定大小的緩衝區。
與 25 MB 搭配運作的其他限制
25 MB 上限是最顯而易見的關卡,但它是五個相互關聯的限制之一。每個限制從不同的面向限制同一項工作,而通過其中一道關卡的檔案,仍可能在另一道關卡上失敗。
| 限制 | 量測的內容 | 檢查的位置 |
|---|---|---|
| 25 MB | 來源檔案在磁碟上的大小 | 在解碼之前,於您選取的檔案上 |
| 15 分鐘 | 來源的解碼後時長 | 瀏覽器完成解碼後 |
| 8 個聲道 | 來源中的音訊聲道數 | 瀏覽器完成解碼後 |
| 192 kHz | 來源中的最高取樣率 | 瀏覽器完成解碼後 |
| 3000 萬個樣本 | 速度變更後渲染的總樣本數 | 在序列化 WAV 輸出之前 |
順序很重要。一個 24 MB、96 kHz、立體聲、長度 12 分鐘的 FLAC 檔案,在每個支援的速度下都會在 3000 萬渲染樣本數的關卡上失敗。同樣的檔案若是 24 位元深度、192 kHz、6 個聲道,雖然磁碟上仍低於 25 MB,但會因為超過 3000 萬渲染樣本數限制而被拒絕。一個解碼後為 18 分鐘的 24 MB 檔案會通過 25 MB 關卡與 192 kHz 關卡,但會在 15 分鐘時長關卡上失敗。在每一種情況下,工具都不會產生輸出,而是顯示錯誤訊息,讓您能在重試前進行調整。
在 25 MB 上限內加快或放慢音訊
工作流程本身很直覺,而 25 MB 上限通常就是您需要事先考慮的唯一準備事項。
- 確認您的來源檔案在磁碟上低於 25 MB。如果超過,請在開啟工具前先修剪或重新編碼。
- 在瀏覽器中開啟 Audio Speed Changer 頁面。
- 選取來源檔案。瀏覽器會在本機讀取位元組;不會上傳任何內容到伺服器。
- 等待瀏覽器完成檔案解碼。如果檔案低於 25 MB 但您的瀏覽器無法解碼該編碼格式,工具會顯示錯誤訊息且不產生輸出。
- 選擇介於 0.5× 至 2× 之間的速度。較快的播放會縮短時長,較慢的播放會拉長時長,兩者都會讓音高隨著時長一起移動。
- 選擇變更速度並匯出 WAV。工具會以選擇的速率將解碼後的訊框路由至 OfflineAudioContext,並回報結果的時長與檔案大小。
- 預覽渲染後的輸出,以確認速度聽起來正確。
- 下載 PCM16 WAV。該檔案是全新的未壓縮拷貝,不會帶有原始的編碼格式、位元率、ID3 標籤、封面或章節資訊。
步驟 1 才是 25 MB 上限實際發揮作用的地方。一旦檔案順利選取並成功解碼,後續的工作流程就會依據您選擇的速度進行。
當檔案過大時會發生什麼
如果您選取的檔案超過 25 MB,工具不會嘗試進行解碼,也不會產生部分輸出。輸出邊界會在渲染前進行檢查,因此以過大的來源所啟動的渲染,永遠無法被正確地限制大小。頁面會改為顯示錯誤訊息,而您可以選擇修剪檔案、將其重新編碼為較小的容器,或將其切割成每個都低於上限的片段。
如果您需要把一份概念上視為單一工作的長度超過 25 MB 錄音進行速度變更,切割是支援的做法。請使用 Audio Cutter 將錄音切割成低於 25 MB 的多個片段,以相同的速率透過 Audio Speed Changer 處理每個片段,然後使用 Audio Joiner 將產生的 WAV 合併。合併後的檔案將會是全新的 PCM16 WAV,除了接合點本身之外不會產生接縫瑕疵。
如果您選取了低於 25 MB 但未通過其他關卡的檔案,同樣的「錯誤且無輸出」模式也會適用。25 MB 上限是最常見也是第一線的拒絕原因,但並非唯一的原因。如需深入瞭解這些拒絕訊息的意義以及如何從中恢復,請參閱如何排解 Audio Speed Changer 問題。
為何您下載的 WAV 可能會超過 25 MB
輸出永遠是未壓縮的 PCM16 WAV,其儲存的是每個聲道的原始 16 位元樣本,而不是像 MP3 或 AAC 那樣使用知覺編碼。壓縮格式會丟棄人耳不易察覺的音訊資訊,因此它們可以比以未壓縮 PCM 儲存的相同音訊小得多。相反地,WAV 拷貝並沒有這種捷徑,即使時長較短,其佔用的儲存空間通常還是會比來源來得多。
這也是為什麼工具會在下載前先回報結果的時長與檔案大小。這些數字能讓您在將檔案寫入磁碟之前,先確認 WAV 是否符合您的用途。較慢的速度(例如 0.5×)大約會將 WAV 的時長加倍,而較快的速度(例如 2×)則大約會將其減半。確切的輸出大小取決於來源的原始時長、取樣率以及聲道數。
由於 WAV 不會帶有 ID3 標籤、封面、章節或來源編碼格式,因此它在帶有標籤的音樂資料庫中,也不能直接取代原始檔案。它是一份乾淨、相容性高的拷貝,適用於本機交付、練習以及快速參考之用。
延伸閱讀:使用音量調整器後如何檢查結果。