在反向音訊中,50 MB 上限指的是瀏覽器在開始反向處理程序之前,所能接受之壓縮輸入檔的最大大小。這是針對上傳檔案位元組數量的檢查,而非您可處理之音訊長度。一個 49 MB 的 MP3 與一個 49 MB 的 WAV,即使包含相同的錄音內容,兩者皆可通過;但 WAV 通常解碼時間較長,且可能會碰到關於時長、聲道數與總取樣數的其他獨立上限。反向音訊會先檢查 50 MB 上限,這是因為在瀏覽器分頁中讀取並解碼一個數百 MB 的檔案,可能會導致記憶體不足。因此這個上限是針對檔案大小所設的安全閥,它與解碼後音訊的各項上限並列,包括時長(五分鐘)、聲道數(一至八)、取樣率(8,000 至 192,000 Hz),以及總聲道取樣數(3000 萬)。即使通過 50 MB 檢查的檔案,仍可能在解碼時失敗或超出上述其中一項解碼後音訊上限,這就是為什麼這兩組規則會分別列出並獨立測試。

what does the 50 mb limit mean when using reverse audio
反向音訊中 50 MB 上限的真正意義

50 MB 上限實際量測的內容

50 MB 上限是套用於您從裝置中選取之檔案的位元組數量上限。瀏覽器會在讀取任何音訊資料之前,先讀取所選檔案的大小標頭,並與 50 MB 進行比較。若檔案較大,工具會以特定訊息拒絕該檔案,且不會嘗試讀取其內容;若檔案大小等於或低於上限,則會開始解碼。

由於上限是針對位元組數,因此您載入的音訊類型會影響 50 MB 內實際可容納的播放時間。高位元速率的 MP3、AAC 或 Ogg 串流,在 50 MB 中可容納數小時的語音內容;同樣的 50 MB 卻只能容納幾分鐘的未壓縮錄音室音訊。反向音訊在測量前不會對檔案進行轉檔或重新取樣,因此此上限適用於檔案選擇器所交出的任何檔案。

此上限的檢查也與解碼流程獨立進行。通過大小檢查的檔案,仍可能稍後因瀏覽器無法解碼容器內的編解碼器、音訊長度超過五分鐘,或聲道數超過規則允許的數量而被拒絕。50 MB 檢查保護的是檔案讀取階段;解碼後音訊的各項檢查則保護反向與編碼階段。

為何基於瀏覽器的反向功能需要設定此上限

反向音訊會在目前的瀏覽器分頁中執行整個反向程序。檔案會被讀入 ArrayBuffer,使用 Web Audio API 進行解碼,逐樣本反向,然後重新編碼為新的 WAV。上述每一步驟皆會佔用該分頁的記憶體與 CPU,而瀏覽器分頁的可用資源遠比專用伺服器少。

因此 50 MB 上限是針對本機資源所設的防護機制。一個 50 MB 的壓縮檔,在分頁內部解碼後可能會膨脹為數百 MB 的浮點音訊,特別是在立體聲或多聲道且高取樣率的情況下。在進入點設定位元組上限,可避免分頁承諾處理一個幾乎肯定會在解碼完成前耗盡記憶體的檔案。

同樣的理由也說明了為何需要設定其他解碼後音訊上限。3000 萬聲道取樣數的預算,是用來保護實際的記憶體內音訊緩衝區;50 MB 檔案上限則是用來保護 I/O 與解碼階段。兩者皆是針對本機處理所設的限制,且都明確標示,以便在其中一項被超出時能顯示具體訊息,而非僅產生一般的瀏覽器當機。

50 MB 上限與其他上限的交互作用

50 MB 上限是檔案必須滿足才能進行反向的數項限制之一。其他限制是針對解碼後的音訊,而非檔案位元組,因此較小的檔案仍可能失敗,而接近 50 MB 的檔案只要其解碼後的形式符合所有規則,仍可成功處理。

限制範圍限制內容
50 MB 檔案大小壓縮輸入解碼前從磁碟讀取的位元組數
5 分鐘解碼後音訊可播放音訊的總長度
1 至 8 個聲道解碼後音訊檔案內的音訊串流數量
8,000 至 192,000 Hz解碼後音訊用於反向處理與 WAV 標頭的取樣率
3000 萬聲道取樣數解碼後音訊影格數乘以聲道數,為記憶體內預算

3000 萬聲道取樣數的預算值得特別說明,因為它最可能造成意外。其計算方式為影格數乘以聲道數,因此一個立體聲、五分鐘長、48 kHz 的檔案會產生 48,000 × 300 × 2 = 2880 萬聲道取樣數,雖符合預算但幾乎用盡。較高的聲道數與較高的取樣率會更快耗盡預算,這就是為什麼多聲道或高取樣率的錄音可能會觸發取樣數上限,卻從未超過 50 MB 檔案大小上限的原因。

這種交互作用之所以重要,是因為觸發的上限取決於檔案的特性。一段較長、低位元速率的語音備忘錄,較可能因五分鐘規則而非 50 MB 規則而失敗。一段較短、高取樣率的錄音室音軌,則較可能因取樣預算而非檔案大小上限而失敗。一集以 MP3 形式存在的 Podcast,較可能因編解碼器解碼步驟而非檔案大小上限而失敗,因為並非每個瀏覽器都能讀取所有 MP3 變體。

如何在 50 MB 上限內反向音訊

  1. 在瀏覽器中開啟 反向音訊,並選擇一個大小等於或小於 50 MB 的支援音訊檔案。可接受的 MIME 類型涵蓋常見的 MP3、WAV、M4A、AAC、Ogg 與 WebM 音訊,但實際能否解碼取決於您的瀏覽器與作業系統。
  2. 可選擇使用內建預覽功能,在反向處理前先聆聽原始音訊。預覽會使用一個暫時的本機物件 URL,當您挑選其他檔案或離開頁面時,該 URL 即會釋放。
  3. 點擊反向音訊控制項,並等待瀏覽器在本機逐個反向每個解碼後的聲道取樣。瀏覽器會在取樣率與聲道數符合限制時保留原始值,獨立反向每個聲道,再以正確的 WAV 影格順序重新交錯聲道。
  4. 預覽結果並檢查工具所顯示的時長與音訊屬性。反向後的 WAV 應精確保留原始時長,而每個事件則會被移至從結尾往回測量的鏡像位置。
  5. 下載結果。下載的檔案永遠是新編碼的 PCM16 WAV,而非反向播放的原始編解碼器,且會標示為此類型,以避免與來源混淆。

下載檔案是將每個解碼後的取樣重新編碼為 16 位元小端序 PCM,並將值限制在 -1 至 1 的範圍內,再對應至帶正負號的整數。在大多數情況下,這個重新編碼過程會讓 WAV 檔案大於壓縮輸入。如果您需要 MP3、AAC 或其他格式的反向素材,WAV 是標準輸出,之後可在專用音訊編輯器中轉檔。

如何修剪或調整超過 50 MB 的檔案

若您的檔案觸發了 50 MB 上限,最乾淨的工作流程是在載入前先縮小檔案。剪輯檔案是最直接的選項,音訊剪輯工具可以從較長的錄音中擷取單一段時間範圍,並將修剪後的片段另存為遠低於上限的本機 PCM16 WAV。剪輯不會改變位元深度,因此修剪後的片段保留與來源相同的取樣率與聲道數,但會損失部分可播放內容。

若剪輯仍不足以解決問題,使用 音訊合併工具將檔案分割為兩個或更多部分,便可分別反向每個部分,再於同一工具中將反向後的片段串接起來。分割可保留完整錄音,但會產生兩個檔案而非一個,這在您僅需對時間軸上某個段落套用反向效果時是可接受的方案。若錄音本身已很短,將來源重新編碼為更有效率的編解碼器可進一步縮小檔案,但重新編碼無法挽救同時違反五分鐘或聲道取樣數上限的檔案。

工具如何回報限制失敗

此工具會針對每項上限回傳特定訊息,而非單一通用錯誤。超過 50 MB 的檔案會產生大小相關訊息且不會進行部分處理,因此下載的檔案絕對不會是偽裝成成功的半反向檔案。更換檔案或重試時也會清除先前的下載,因此新的錯誤產生後,舊的成功結果不會被誤認為新結果。

符合大小上限的檔案,仍可能在瀏覽器無法讀取容器內的編解碼器時產生解碼錯誤。可接受的 MIME 類型清單涵蓋 MP3、WAV、M4A、AAC、Ogg 與 WebM,但編解碼器支援與否取決於瀏覽器與作業系統。熟悉的副檔名並不保證其內部的位元串流能夠解碼;工具會回報解碼錯誤,而不會宣稱所有 MP3、所有 M4A 或所有 WebM 都一定能運作。

當解碼成功但解碼後的形式超出其中一項音訊上限時,工具會回傳相關訊息並停止處理。在已接受的檔案中,不會刻意略過、縮短或限制任何取樣,因此成功的下載永遠代表解碼後素材的完整反向結果。

若要建立可靠的工作流程,請聆聽原始預覽、執行反向處理、聆聽結果的開頭與結尾,並確認工具所顯示的時長、聲道數、取樣率與檔案大小。請在將使用該檔案的編輯器或播放器中開啟下載檔案,因為瀏覽器預覽成功,並不保證每台較舊的裝置都支援相同的 WAV 聲道配置或高取樣率。

延伸閱讀:以可靠結果使用反向音訊的最佳方式。