反轉音訊會將每個解碼後的取樣從錄音結尾往前播放到開頭,這是當聽眾想以反向聆聽一首曲目時,在 DistroKid 上對「音訊替換」(audio swap) 最常見的理解。相對地,DistroKid 的音訊替換功能是一個發行管理工具,它會替換已發行曲目背後的音訊檔案,但不會移除串流播放次數或播放清單位置,而且它不會改變音訊本身的播放方向。由於反轉音訊是取樣層級的操作,而不是發行管理的步驟,因此它是在你的瀏覽器中於本機端完成,然後你再將新檔案重新上傳到任何平台。Reverse Audio 工具會在目前的分頁中讀取你選擇的 MP3、WAV、M4A、AAC、Ogg 或 WebM 檔案,透過 Web Audio API 解碼每個聲道,獨立反轉每個聲道中的取樣順序,然後寫入一個重新編碼的 PCM16 WAV,讓你可以立即下載。沒有任何檔案位元組會離開你的裝置,操作完成後會關閉 Web Audio context,當原始取樣率與聲道數符合工具所宣告的限制時,這兩項數值會予以保留。

DistroKid 的音訊替換 vs. 反轉音訊播放
DistroKid 的音訊替換是為了解決一個特定問題而設計:唱片公司、發行商或藝人已經將一首曲目推送到 Spotify、Apple Music 及其他商店,他們需要替換底層的音訊檔案,原因是母帶錯誤、人聲修正或 stem 替換。此功能的設計能讓新音訊繼承既有發行的 ISRC、串流次數與播放清單位置,因此當目標是平台層級的中介資料延續,而不是創意轉換時,它就是正確的選擇。
反轉音訊是不同的問題。它是一種取樣層級的轉換,會讀取解碼錄音的每個聲道,並以反向順序寫入每個取樣,使得最後一個取樣變成第一個,而第一個變成最後一個。人們在 DistroKid 上搜尋「audio swap」時,實際上想要的是反向母帶,用於過場效果、聲音設計實驗、預告片的反向語音,或快速從不同角度聆聽錄音結尾。針對該工作流程,反向檔案是在瀏覽器中於本機端產生,然後你再決定是否將其上傳到任何地方,而 DistroKid 的發行管理功能完全不會介入。Reverse Audio 工具是針對這種理解的實際解決方案,因為它會在目前的分頁中處理取樣層級的反轉,並回傳一個全新的 WAV,讓你可以在任何編輯器中預覽、驗證並重複使用。
在瀏覽器中反轉音訊檔案
- 在目前的瀏覽器分頁中開啟 Reverse Audio 工具,然後點擊檔案選擇器來選擇 MP3、WAV、M4A、AAC、Ogg 或 WebM 檔案。瀏覽器會將 MIME 類型與支援清單進行比對,並在讀取位元組之前,拒絕任何超過 50 MB 的檔案。
- 如果你想確認選對了來源檔案,可以使用內建預覽來聆聽原始檔案。此預覽是從一個暫時的本機物件 URL 建立,當你選擇新檔案或離開頁面時,該 URL 就會被釋放。
- 選擇「Reverse audio」,然後等待 Web Audio context 解碼檔案的每個聲道。在進行任何反轉之前,解碼後的緩衝區會與五分鐘的長度上限、八聲道上限、8,000 至 192,000 Hz 的取樣率範圍,以及 3,000 萬個聲道取樣預算進行比對檢查。
- 一旦取樣通過這些檢查,每個聲道會由測試套件中使用的同一個 reverseChannels 程式獨立進行反轉,然後由共用的 encodePcm16Wav 函式編碼成全新的 PCM16 WAV。在有號小端序 PCM 位元組中,負值滿刻度取樣會被箝制為 -32768,正值滿刻度取樣會被箝制為 32767。
- 在瀏覽器中預覽結果,確認所顯示的長度、聲道數、取樣率與檔案大小,然後下載新的 WAV。會先清除先前的下載,如此一來,在發生錯誤後,舊的成功結果絕不會被誤認為是新的結果。
支援格式、檔案大小限制與解碼音訊屬性
Reverse Audio 工具接受六種最常見的瀏覽器可解碼容器,但每個容器中的編解碼器取決於你的作業系統與瀏覽器。熟悉的副檔名並不保證能成功解碼,該工具會回報明確的解碼錯誤,而不是承諾每個 MP3、M4A、AAC、Ogg 或 WebM 檔案都能運作。輸入接受與成功解碼是分開的檢查,因此檔案可以被選擇器接受,卻仍然在 BaseAudioContext.decodeAudioData 嘗試讀取位元組時失敗。
| 限制 | 數值 |
|---|---|
| 壓縮檔案大小 | 上限 50 MB |
| 解碼後長度 | 5 分鐘或更短 |
| 聲道數 | 1 至 8 個聲道 |
| 取樣率 | 8,000 至 192,000 Hz |
| 總聲道取樣數 | 30,000,000 (幀數 × 聲道數) |
| 輸出格式 | PCM16 WAV,小端序,重新編碼 |
如果超過上述任何一項限制,該檔案會以明確訊息被拒絕,而不會進行部分處理。聲道取樣預算特別用於保護分頁免於出現非預期的大型解碼陣列,即使壓縮後的來源檔案看起來很小也是如此,因為長的、多聲道的錄音在經過 Web Audio 解碼後可能會大幅膨脹。Web Audio AudioBuffer 規範 描述了驅動這些檢查的底層資料模型。
本機瀏覽器處理如何運作以及輸出內容
工作流程的每一步都在目前的分頁中執行。瀏覽器會驗證 MIME 類型與 50 MB 位元組上限,將所選檔案讀入 ArrayBuffer,然後將該緩衝區交給 BaseAudioContext.decodeAudioData。如果解碼後的音訊超過五分鐘長度、八聲道上限、3,000 萬個聲道取樣預算,或 8,000 至 192,000 Hz 的取樣率範圍,則會予以拒絕而非截斷。一旦解碼成功,由奇數、偶數與多聲道測試所執行的同一個 reverseChannels 函式會對緩衝區執行,而其 RIFF 標頭、PCM 箝制值、小端序位元組與立體聲交錯皆由黃金斷言覆蓋的同一個 encodePcm16Wav 函式會寫入結果。
輸出是重新編碼的 PCM16 WAV,而不是原始 MP3、M4A、AAC、Ogg、WebM 或壓縮 WAV 串流的反向播放。原始中介資料(例如專輯封面、ID3 標記、章節、循環標記、編碼器設定、壓縮位元率及容器專屬欄位)不會被複製,因為此工具是反轉已解碼的可聽取樣資料,而不是編輯或保留來源容器。當原始取樣率與聲道數符合所述限制時,瀏覽器會予以保留,因此 44,100 Hz 立體聲輸入在輸出中仍是 44,100 Hz 立體聲,左聲道獨立反轉,右聲道獨立反轉,然後再以正確的 WAV 幀順序重新交錯。
反轉會保留解碼後的長度、取樣率與聲道數,但它會將每個可聽事件移至從結尾往回測量的對應位置。此工具不會進行音量正規化、移除靜音、主動改變音高、時間拉伸或修復削波,因此上述任何調整都需要在下載後於另一個音訊編輯器中進行。由於下載為 PCM16,產生的 WAV 通常會比壓縮來源大得多,而將浮點取樣縮減為 16 位元可能會與 24 位元或 32 位元工作流程相比改變數值精度。
驗證反向 WAV 並處理解碼錯誤
可靠的工作流程從來源檔案開始,而不是從輸出開始。聆聽原始預覽以確認你反轉的是正確的片段,然後產生反向 WAV,並聆聽結果的開頭與結尾,以確認反轉確實發生。確認工具所顯示的長度、聲道數、取樣率與檔案大小,並在將實際使用反向檔案的編輯器或播放器中開啟下載檔案,因為瀏覽器預覽成功並不保證每個較舊的裝置都支援相同的 WAV 聲道配置或像 96,000 或 192,000 Hz 之類的高取樣率。decodeAudioData 的 MDN 文件列出了瀏覽器可能回傳的確切失敗原因集合,這也是該工具回報給你的相同介面。
即使你選擇了具有支援副檔名的檔案,工具仍然回傳解碼錯誤時,最常見的原因包括熟悉容器中使用了非標準編解碼器、檔案標頭損壞,或取樣率超出瀏覽器的解碼範圍。請使用標準編解碼器從你的 DAW 重新匯出,確認檔案大小低於 50 MB,然後重試。如果檔案通過大小檢查但仍然無法解碼,則工具的每個分頁 Web Audio context 在解碼失敗後已經被關閉一次,因此重新載入頁面可以在再次嘗試之前為你提供一個全新的解碼器。同一個 Reverse Audio 工作階段也可以重複用於聲音設計實驗、反向語音、過場效果、取樣檢查,以及從不同角度檢視錄音結尾,完全不需要上傳任何位元組。
如果你正在權衡各種選項,How to Reverse Audio on Snapchat: Local Workflow 對此有詳細說明。
如果你正在權衡各種選項,Add Reverb to an MP3 File Online Locally 對此有詳細說明。