在瀏覽器中裁切音訊並不會保留原始的 MP3 或 AAC 編碼——每次下載都是重新編碼、未壓縮的 16 位元 PCM WAV 檔。這是瀏覽器音訊運作方式的結構性結果:音訊必須先解碼為原始取樣,才能進行任何取樣層級的選取,接著會在這些取樣外寫入一個全新的 WAV 容器。即使新檔案內部的可聽波形與所選範圍完全相同,原始 MP3 或 AAC 的幀、位元率、編碼器設定以及容器欄位都不會被保留下來。因此結果檔案會比從壓縮來源以無損方式擷取的同一範圍更大,而非更小。理解這一點——也就是編碼永遠會變成 PCM16 WAV——是規劃如何裁剪、封存與再利用裁切音訊的關鍵,因為這個工具能提供取樣精度的裁切,代價是切換到未壓縮的容器。對於大多數實際工作(例如簡報片段、語音備忘、音效以及 Podcast 摘錄)來說,這樣的取捨正是大家想要的,因為 WAV 的播放支援度極高,而且檔案可以直接拖進其他編輯器使用。

does the download keep the original mp3 or aac encoding when i cut audio
裁切音訊時,下載結果會保留原始的 MP3 或 AAC 編碼嗎?

下載檔案實際使用的是什麼格式?

Audio Cutter 下載的檔案永遠是 RIFF/WAVE 檔。在 RIFF 區塊中包含 fmt 子區塊與 data 子區塊。fmt 子區塊宣告格式代碼 1(未壓縮 PCM)、解碼緩衝區的聲道數、以赫茲為單位的解碼取樣率、位元組率、聲道數乘以 2 的區塊對齊,以及 16 位元的取樣大小。data 子區塊包含交錯、小端序、有符號 16 位元整數的取樣,排列順序與解碼後 AudioBuffer 的聲道順序一致。每個幀在原始順序中為每個聲道保存一個取樣,因此立體聲檔案會保持立體聲,而最多八個聲道的檔案也會保留所有聲道。

每個取樣兩個位元組這個數字,是輸出中最關鍵的數字。因此 44.1 kHz 立體聲幀為 4 個位元組(2 個聲道乘以 2 個位元組)。48 kHz 單聲道幀為 2 個位元組。這裡沒有壓縮、沒有預測器,也沒有位元儲備區——資料大小與表頭所宣告的完全一致,頁面會在下載開始前顯示長度與檔案大小,讓你在儲存前先行確認。

為什麼瀏覽器裁切工具無法回傳原始的 MP3 或 AAC

瀏覽器的音訊機制不允許腳本在不解碼的情況下,直接從 MP3 或 AAC 檔複製壓縮幀。Web Audio API 透過 BaseAudioContext.decodeAudioData 將解碼後的取樣緩衝區公開出來,該方法會將整個編碼後的承載轉換成浮點數的 AudioBuffer。一旦音訊進入該緩衝區,它就只是 -1 到 1 之間的浮點數聲道陣列——MP3 幀、AAC 幀以及原本的編碼器決策都已消失。將這些浮點數寫回容器必然是一次重新編碼,而瀏覽器腳本能可靠產生、又不必內建自訂編碼器的唯一容器,就是 RIFF/WAVE。

這就是為什麼在這類工具中,「能否保留原始編碼」這個問題會有一個明確的答案:答案是否定的,這是由架構決定的。某些桌面編輯器可以在壓縮幀邊界上裁切並輸出較小的 MP3 或 AAC,因為它們具備本機的編碼器函式庫,但瀏覽器分頁並沒有。因此這個裁切工具只能以 PCM16 WAV 作為輸出格式,並就此打住。Web Audio 在解碼時也可能將來源重新取樣為 AudioContext 的取樣率,這代表寫入 WAV 表頭的取樣率,是解碼後工作緩衝區的取樣率,而非原始檔案的編碼取樣率。

編碼改變時,還有哪些資訊會遺失

由於編碼器是從解碼後的取樣重新編碼,原始容器所攜帶的其他欄位同樣無法在裁切後保留下來。下載的 WAV 只包含 PCM 資料與一個 44 位元組的表頭,僅此而已。

原始容器欄位裁切後的 WAV 是否保留?
壓縮音訊幀(MP3、AAC、Vorbis、Opus、FLAC)否——已重新編碼為 PCM16
ID3、iTunes、Vorbis 註解或 Opus 標籤
專輯封面與內嵌圖片
提示點、章節、歌詞
響度中繼資料(ReplayGain、EBU R128)
編碼器設定、位元率、原始編碼取樣率否——WAV 會回報解碼後的取樣率
所選範圍的可聽波形是,逐取樣保留
聲道數與聲道順序是,最多可達八聲道限制

若上述任何中繼資料欄位對最終用途很重要,請規劃在裁切之後,於標籤編輯工具或數位音訊工作站中補回。對簡報片段或語音備忘而言,這通常沒什麼影響;但對音樂發行來說卻攸關重要,這也是為什麼應將原始的 MP3 或 AAC 視為母檔,而把裁切工具輸出的 WAV 當作工作中間檔。

如何裁切音訊並下載 WAV

在瀏覽器分頁中開啟 Audio Cutter。整個作業都在本機執行,因此你的檔案不會離開裝置——想深入了解為何這很重要,請參閱這篇關於上傳與瀏覽器式裁切的文章

  1. 點選檔案選擇器,選擇一個瀏覽器可解碼的音訊檔(MP3、WAV、M4A、AAC、Ogg、WebM 或 FLAC),且大小不得超過 25 MB。
  2. 等待 Web Audio 完成解碼。解碼成功後,頁面會顯示解碼後的長度、取樣率、聲道數與總幀數;若解碼失敗,畫面會顯示說明原因的錯誤訊息,且不會保留任何緩衝區。
  3. 以秒為單位輸入非負數的起始時間,並在之後輸入結束時間。結束時間必須大於起始時間,且不得超過頁面上顯示的精確解碼長度。
  4. 選擇「Cut and export WAV」(裁切並匯出 WAV)。工具會將起始與結束時間捨入到解碼取樣率下最接近的取樣幀,包含起始幀但排除結束幀;對於捨入後小於一個幀的選取範圍會予以拒絕,而不是產生空檔案。
  5. 在頁面播放器中預覽產生的 PCM16 音訊。確認口語字詞或音樂暫態在兩端邊界都落點正確後再下載。
  6. 點選「Download」以下載重新編碼後的 WAV。頁面會在下載開始前顯示輸出長度與檔案大小。

由於不會上傳任何資料,你可以重複裁切、修改時間並重新下載,而無需離開分頁。更改任一時間欄位會清除先前的 WAV,而選擇新檔案會清除所有緩衝區、播放器、錯誤狀態與先前的結果。執行中的讀取與解碼作業會受到保護,避免較舊的工作覆蓋較新的選取範圍。

為什麼裁切後的 WAV 比來源檔案更大

128 kbps MP3 中的一段 30 秒音訊大約是 480 KB。同一段 30 秒以 PCM16 WAV、44.1 kHz 立體聲裁切時,由於 PCM 以未壓縮方式儲存每個取樣,因此檔案大小會大得多。裁切結果的精確資料大小為:所選幀數 × 聲道數 × 每取樣 2 位元組,再加上位於資料之上的 44 位元組 RIFF/WAVE 表頭。

計算範例:以解碼後取樣率 44,100 Hz 進行 30 秒的立體聲選取,等於 30 × 44,100 = 1,323,000 個幀,再乘以 2 個聲道 = 2,646,000 個取樣,再乘以 2 個位元組 = 5,292,000 位元組的音訊資料。加上 44 位元組的表頭,總計 5,292,044 位元組,約 5.05 MiB——大約是同段 MP3 的十倍大小。

由此可得出兩個結論。第一,長檔案的大範圍選取會比單看長度限制更快逼近工具的解碼取樣上限,因為高取樣率下每秒所耗的取樣數,會比低取樣率時更多。第二,若下游消費者確實需要 MP3 或 AAC,那麼從裁切工具得到的 WAV 就是第二次編碼的理想輸入——未壓縮的來源能讓重新編碼保持忠實,而對已經是有損的檔案以相同位元率再次編碼,會讓失真疊加惡化。

哪些輸入格式可用,哪些不行

檔案選擇器能辨識常見的 MP3、WAV、M4A、AAC、Ogg、WebM 與 FLAC 檔名與 MIME 類型,但僅有辨識並不保證能解碼。實際能否解碼取決於瀏覽器內建 Web Audio 解碼器的編解碼支援,而這在 Safari、Chrome、Firefox、各作業系統與瀏覽器版本之間並不相同。容器與編解碼支援屬於會在版本更新間靜悄悄變動的細節,因此在某台機器上可開啟的檔案,到了另一台上可能會失敗。

容器常見內含編解碼瀏覽器支援概況
MP3MP3廣泛支援
M4AAAC、ALAC廣泛支援;ALAC 支援度較低
WAVPCM,有時為浮點廣泛支援
OggVorbis、Opus大致支援;Opus 在大多數現代瀏覽器上可用
WebMOpus、Vorbis在現代瀏覽器中大致支援
FLACFLAC在近期瀏覽器中支援

不支援、損毀、標示錯誤、加密或不完整的檔案會產生明確的解碼錯誤,而非靜默地以其他方式處理。這個工具不會安裝編解碼器、不會將檔案送往轉檔伺服器,也不會替換成其他來源——一旦解碼失敗,頁面會直接告知並停止作業。

裁切前需要確認的限制

有五項具體限制決定檔案究竟能不能裁切,它們都會被明確強制執行,而非默默處理。這些限制都不會自動縮短檔案;超過上限的檔案會被拒絕並顯示訊息。

限制項目數值實際意義
編碼後輸入檔案大小25 MB較大的 MP3 或 AAC 檔會在檔案選擇器階段被拒絕
解碼後長度15 分鐘解碼後超過此長度的音訊會被拒絕
聲道數8 個聲道超過此聲道數的多聲道檔會被拒絕
解碼後取樣率192 kHz取樣率更高的解碼緩衝區會被拒絕
解碼取樣總數跨所有聲道共 30,000,000高取樣率或長時長的多聲道檔會率先觸及此限制

由於瀏覽器解碼必然發生在長度與取樣數能被檢查之前,因此在嘗試解碼時,高度壓縮的長檔案仍可能佔用大量暫存記憶體。若結果逼近任一上限,請選擇較短的選取範圍或取樣率較低的來源檔案,或改用以串流方式處理、不必完全解碼的專用編輯器。

為了獲得可靠的結果,請預覽裁切後的 WAV、確認兩端邊界的口語字詞或音樂暫態落點無誤、保留原始的 MP3 或 AAC 作為母檔,並在需要波形層級的淡入淡出、無損失壓縮幀裁切、中繼資料保留或專業母帶處理時,改用專用編輯器。

延伸閱讀:在瀏覽器中裁切音訊時避免常見錯誤