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

how to do audio swap on distrokid
how to do audio swap on distrokid

DistroKid 的音訊替換 vs. 反轉音訊播放

DistroKid 的音訊替換是為了解決一個特定問題而設計:唱片公司、發行商或藝人已經將一首曲目推送到 Spotify、Apple Music 及其他商店,他們需要替換底層的音訊檔案,原因是母帶錯誤、人聲修正或 stem 替換。此功能的設計能讓新音訊繼承既有發行的 ISRC、串流次數與播放清單位置,因此當目標是平台層級的中介資料延續,而不是創意轉換時,它就是正確的選擇。

反轉音訊是不同的問題。它是一種取樣層級的轉換,會讀取解碼錄音的每個聲道,並以反向順序寫入每個取樣,使得最後一個取樣變成第一個,而第一個變成最後一個。人們在 DistroKid 上搜尋「audio swap」時,實際上想要的是反向母帶,用於過場效果、聲音設計實驗、預告片的反向語音,或快速從不同角度聆聽錄音結尾。針對該工作流程,反向檔案是在瀏覽器中於本機端產生,然後你再決定是否將其上傳到任何地方,而 DistroKid 的發行管理功能完全不會介入。Reverse Audio 工具是針對這種理解的實際解決方案,因為它會在目前的分頁中處理取樣層級的反轉,並回傳一個全新的 WAV,讓你可以在任何編輯器中預覽、驗證並重複使用。

在瀏覽器中反轉音訊檔案

  1. 在目前的瀏覽器分頁中開啟 Reverse Audio 工具,然後點擊檔案選擇器來選擇 MP3、WAV、M4A、AAC、Ogg 或 WebM 檔案。瀏覽器會將 MIME 類型與支援清單進行比對,並在讀取位元組之前,拒絕任何超過 50 MB 的檔案。
  2. 如果你想確認選對了來源檔案,可以使用內建預覽來聆聽原始檔案。此預覽是從一個暫時的本機物件 URL 建立,當你選擇新檔案或離開頁面時,該 URL 就會被釋放。
  3. 選擇「Reverse audio」,然後等待 Web Audio context 解碼檔案的每個聲道。在進行任何反轉之前,解碼後的緩衝區會與五分鐘的長度上限、八聲道上限、8,000 至 192,000 Hz 的取樣率範圍,以及 3,000 萬個聲道取樣預算進行比對檢查。
  4. 一旦取樣通過這些檢查,每個聲道會由測試套件中使用的同一個 reverseChannels 程式獨立進行反轉,然後由共用的 encodePcm16Wav 函式編碼成全新的 PCM16 WAV。在有號小端序 PCM 位元組中,負值滿刻度取樣會被箝制為 -32768,正值滿刻度取樣會被箝制為 32767。
  5. 在瀏覽器中預覽結果,確認所顯示的長度、聲道數、取樣率與檔案大小,然後下載新的 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 對此有詳細說明。