是的,您可以使用瀏覽器內建的 Reverse Audio 工具來反轉音訊,該工具會透過 Web Audio API 解碼您選擇的檔案,在目前的分頁中本地反轉每個聲道中的每個取樣,並將結果儲存為一個重新編碼的 PCM16 WAV 檔案。由於檔案讀取、解碼、取樣反轉、WAV 編碼以及預覽建立全部都在您自己的裝置上完成,因此不會有任何資料被上傳到遠端伺服器,而且原始檔名、位元組內容與結果都會保留在您的電腦上。此工具接受 MP3、WAV、M4A、AAC、Ogg 和 WebM 檔案,最大可達 50 MB,但實際的編解碼器支援取決於訪客使用的瀏覽器和作業系統,因此即使是熟悉的容器格式仍可能無法解碼。解碼後的音訊長度不得超過五分鐘,聲道數須介於一到八個之間,取樣率須介於 8,000 到 192,000 Hz 之間,且總聲道取樣數不得超過 3,000 萬個。反轉作業會保留解碼後的長度、取樣率和聲道數,但會將每個可聽事件的時間點移至從結尾往前測量的對應位置。最終檔案是一個全新的 PCM16 WAV,而不是原始壓縮串流反向播放的結果,並且可直接在任何標準編輯器中開啟。

瀏覽器內音訊反轉的運作原理
反轉音訊意味著從錄音的結尾往開頭播放,讓每個可聽事件以相反的順序出現。在以瀏覽器為基礎的工作流程中,這個過程是將選擇的檔案讀入 ArrayBuffer,使用 Web Audio API 解碼為一個包含浮點取樣的 AudioBuffer,然後獨立反轉每個聲道內部的取樣順序。此工具在目前的分頁中執行這項作業,而非在遠端伺服器上進行,並且會將結果重新編碼為一個新檔案,而非重新封裝來源檔。
由於每個被接受的聲道會各自獨立進行反轉,然後再將聲道以標準的 WAV 幀順序交錯回去,因此立體聲輸入會保持為立體聲,單聲道輸入會保持為單聲道,擁有多聲道的錄音也遵循相同的規則。當這些數值符合所述限制時,反轉作業會保留解碼後的長度、取樣率和聲道數。改變的是每個事件的時間位置:原本位於三秒標記處的小鼓敲擊聲,在反轉後會落在總長度減去三秒的位置,而原始檔案的最後一幀則會成為反轉檔案的第一幀。
反轉取樣與時間拉伸、音高位移或反轉壓縮容器是不同的操作。此工具僅重新排列解碼後的可聽取樣資料。它不會正規化音量、移除靜音、刻意改變音高、拉伸時間或修復爆音,且原始的詮釋資料、標籤和封面藝術並不保證會被帶入新的 WAV 檔案中。
開始前的檔案類型與限制
在開啟檔案選擇器之前,了解此工具接受哪些檔案、會拒絕哪些檔案會有所幫助,因為檔案選擇器、位元組限制和解碼器各自都會進行檢查。接受與成功解碼是分開的步驟,因此檔案可能通過選擇器的檢查,卻在 Web Audio 嘗試讀取位元組時失敗。
選擇器接受常見的 MP3、WAV、M4A、AAC、Ogg 和 WebM 音訊 MIME 類型。壓縮後的來源檔案大小不得超過 50 MB。一旦解碼,音訊長度不得超過五分鐘,聲道數須介於一到八個之間,取樣率須介於 8,000 到 192,000 Hz 之間,且總聲道取樣數不得超過 3,000 萬個。聲道取樣預算是指幀數乘以聲道數,這個限制可在解碼陣列意外過大時保護分頁,即使是一個看起來無害的小型壓縮檔案也可能觸發。
| 限制 | 允許的值 |
|---|---|
| 壓縮檔案大小 | 最大 50 MB |
| 解碼後長度 | 最大 5 分鐘 |
| 聲道數 | 1 到 8 |
| 取樣率 | 8,000 到 192,000 Hz |
| 總聲道取樣數 | 最大 3,000 萬 |
超出任何限制的檔案會收到一則特定訊息,且不會被部分處理。更換檔案或重試也會先清除先前的下載,因此發生錯誤後,舊的成功結果不會被誤認為新的結果。
如何在瀏覽器中反轉音訊檔案
完整的工作流程包含三個高階步驟。選擇器、反轉作業和下載各司其職,下方的步驟會直接按照已驗證的操作步驟進行說明。
- 使用檔案選擇器選擇一個支援的音訊檔案(最大 50 MB),並可選擇在覽器中預覽原始檔案,以便與反轉後的結果進行比較。
- 選擇 Reverse audio,然後等待目前分頁中每個解碼後的聲道取樣在本地完成反轉。立體聲檔案會獨立反轉每個聲道,多聲道檔案也是對每個聲道進行相同的處理,用於解碼的 Web Audio context 在作業完成後或工作被取代時會被關閉。
- 預覽結果,驗證其長度和音訊屬性,然後下載新檔案。下載的檔案永遠是一個全新編碼的 PCM16 WAV,即使原始檔案是 MP3、M4A、AAC、Ogg、WebM 或壓縮的 WAV。
此流程有防護機制以避免過時的工作結果,因此先前的非同步作業不會取代新的結果。原始檔案會取得一個用於內建預覽的臨時本地物件 URL,製作完成的 WAV 則會取得一個獨立的臨時下載 URL,而選擇其他檔案、再次執行作業或離開頁面都會釋放掉不再需要的 URL,避免它們殘留在分頁中。
檢查輸出結果:長度、聲道數和取樣率
下載的檔案並非來源容器反向播放的結果,而是一個從反轉後的解碼取樣所寫入的新 PCM16 WAV 檔案。每個瀏覽器解碼的浮點取樣會被裁剪到 -1 到 1 的範圍內,並對應到有號 16 位元 PCM,然後以小端序寫入,因此負滿刻度會對應到 -32768,正滿刻度則會對應到 32767。將浮點取樣縮減為 16 位元可能會改變數值精度,而產生的 WAV 檔案可能會比壓縮來源大得多。
反轉作業會保留解碼後的長度、取樣率和聲道數,且每個被接受的聲道都會以正確的順序寫回 WAV 中。對於立體聲來源而言,左聲道會獨立反轉,右聲道也會獨立反轉,然後兩個聲道會再次以正確的幀順序交錯,確保整個檔案中的左右交替順序正確無誤。原始的釋資料、專輯封面、標籤、章節、循環標記、編碼器設定、壓縮位元率以及容器特有的欄位都不會被複製,因為此工具是反轉解碼後的取樣資料,而非編輯或保留來源容器。
若要進行可靠的檢查,請聆聽結果的開頭和結尾,確認工具顯示的長度、聲道數、取樣率和檔案大小,並在將使用的編輯器或播放器中開啟下載檔案。覽器中的預覽成功並不保證每台較舊的裝置都支援相同的 WAV 聲道配置或高取樣率,因此在將檔案正式用於專案前,先在目的地程式中快速開啟確認相容性是必要的。
熟悉的檔案格式無法解碼時
擁有熟悉副檔名的檔案仍可能失敗,原因通常出在編解碼器的支援上,而非檔案選擇器。選擇器接受常見的 MP3、WAV、M4A、AAC、Ogg 和 WebM 音訊 MIME 類型,但實際的編解碼器支援取決於訪客使用的覽器和作業系統。一個容器中可能包含特定瀏覽器無法解碼的編解碼器,這就是為什麼此工具會回報解碼錯誤,而不會聲稱每個具有熟悉副檔名的檔案都一定能正常運作。
Web Audio 的 decodeAudioData 會回傳一個 Promise,當位元組能夠被解碼時,該 Promise 會解析為一個 AudioBuffer;當無法解碼時則會拒絕,因此工具會在任何取樣被反轉之前停止作業,並顯示清楚的解碼錯誤。不會上傳任何資料來診斷檔案,也不會替換為遠端的備援方案,更不會安裝 FFmpeg 或伺服器端的轉檔器來救回輸入檔案。如果檔案在目前的瀏覽器中無法讀取,實際可行的做法是:從來源程式將片段重新匯出為支援更廣泛的編解碼器、切換到其他瀏覽器,或使用可在本地解碼該檔案的桌面音訊編輯器。
編解碼器的限制也可能與其他限制產生交互作用。一個小型壓縮檔案可能會解碼成一個又長又大的取樣陣列,即使檔案大小保持在 50 MB 以下,也可能讓總聲道取樣數超過 3,000 萬個。總聲道取樣預算就是為了在此情況下保護分頁,將原本可能無聲當機的狀況轉變成一個明確的具名錯誤。
何時該選擇音訊編輯器
當目標只是為了音效設計、過場效果、反向歌詞訊息或從另一個方向快速聆聽而將錄音反向播放時,基於瀏覽器的反轉作業就已足夠。本地工作流程也很適合用於取樣檢查,因為反轉一個短片段可以揭示一些原本埋藏在錄音結尾的爆音、呼吸聲或暫態訊號。
當需要更多功能時,桌面音訊編輯器是更好的選擇。淡入淡出、修剪、編解碼器選擇、釋資料保留、正規化、響度目標、爆音修復、時間拉伸或音高位移——這些都不在瀏覽器內建工具的設計範圍內。它只會反轉解碼後的可聽取樣資料並重新編碼為新的 PCM16 WAV,因此任何依賴標籤、封面藝術或特定壓縮編解碼器的處理,都應該在反轉後的 WAV 下載完成後,交由完整的編輯器來執行。
對於行動裝置的使用者來說,使用較小的來源檔案仍然是最佳選擇,因為手機可能會在大型解碼作業中耗盡記憶體。讓片段保持在 50 MB、五分鐘和聲道取樣數的限制之內,可讓手機和筆記型電腦上的反轉作業都保持穩定可預測,並在反轉取樣準備過程中為分頁中的預覽播放保留足夠的餘裕。