輸出的 WAV 可能比來源檔案更大,因為 Audio Joiner 會建立新的、未壓縮的 PCM16 錄音,而不是保留輸入所使用的壓縮編解碼器。 壓縮的 MP3、AAC、Opus、Vorbis 或 FLAC 檔案所佔用的空間,可能遠小於以 16-bit PCM 樣本儲存的解碼音訊。

檔案大小增加並不是在每個接合處插入轉場所造成的。Audio Joiner 會直接串接解碼後的聲道樣本:一個音軌的最後一個樣本框架,緊接著下一個音軌的第一個樣本框架。它不會加入靜音、重疊、交叉淡化、正規化、轉場或自動裁剪。當產生的 WAV 擴大時,主要因素包括其儲存格式、解碼後的取樣率、聲道數,以及總長度。

why can the output wav be larger than the sources when i join audio
為什麼輸出 WAV 可能比來源檔案更大

為什麼接合後的 WAV 會變大

壓縮音訊會使用編解碼器,以較少的儲存資料表示原始錄音。PCM16 採用不同的方式:它會為每個聲道中的每個樣本儲存一個有正負號的 16-bit 值。接合檔案會將其解碼後的長度合併為一段連續的 PCM 資料,因此多個各自小巧的壓縮檔案,可能產生大得多的 WAV。

問題不單純在於「WAV」這個名稱。WAV 檔案是一種容器,而放在其中的不同檔案可以使用不同的編碼形式。Audio Joiner 會專門建立包含未壓縮、有正負號 16-bit PCM 的 RIFF/WAVE 檔案。它不會保留輸入檔案原本的編解碼器位元率或編碼器設定。

決定輸出大小的因素

對於 PCM 音訊資料,實際的關係是:解碼後的長度乘以解碼後的取樣率,再乘以聲道數與每個樣本 2 個位元組。工具接著會加上 44-byte 的 RIFF/WAVE 標頭。

因素 來源檔案 Audio Joiner 接合後的 WAV
編碼 可能使用壓縮編解碼器或未壓縮 PCM 一律編碼為未壓縮的 PCM16
樣本儲存 取決於來源編解碼器 每個解碼後的聲道樣本使用 16 bits
取樣率 每個檔案都可以有自己的儲存取樣率 使用共用解碼情境所產生的取樣率
聲道 個別檔案可能具有不同的聲道配置 每個選取的音軌都必須解碼成相同的聲道數
接合邊界 不同檔案具有各自的開頭與結尾 解碼後的框架直接接合,不插入音訊
中繼資料 可能包含標籤、專輯封面、章節或其他欄位 不會保留原始容器中的中繼資料

雖然其 PCM 資料會是 115,200,000 bytes,但一段 10 分鐘、每秒 48,000 個樣本的立體聲錄音,兩個聲道合計需要 57,600,000 個樣本,超過 30,000,000 個樣本的限制,因此 Audio Joiner 會拒絕處理,而不會產生 WAV。實際的 Audio Joiner 結果會使用選取項目所顯示的解碼後取樣率、聲道數與長度。

為什麼重新取樣可能改變總大小

瀏覽器解碼不一定會保留每個來源檔案中儲存的取樣率。Audio Joiner 會透過同一個 AudioContext 解碼每個選取的檔案,而該情境可能會將這些檔案重新取樣為單一工作取樣率。因此,顯示的音軌與結果取樣率,可能與原始檔案中的取樣率不同。輸出無法保留各來源檔案彼此獨立的取樣率。

重新取樣可能讓 PCM 大小增加或減少。如果共用工作取樣率高於原始檔案的取樣率,儲存的樣本框架就會更多;如果較低,則會更少。不過,以 PCM 取代壓縮音訊所造成的差異,通常仍是主要因素。最終大小應依解碼後的長度與取樣率判斷,而不是依原始壓縮位元率估算。

聲道數也會以相同方式影響大小。所有解碼後的音軌都必須具有相同的聲道數。單聲道與立體聲檔案混合時,工具會拒絕處理,而不會在未告知的情況下複製、移除、平均或重新映射聲道。成功接合時,符合的聲道會依解碼順序保留,並交錯寫入最終的 WAV。

檢查相容性與選取限制

檔案選擇器可辨識常見的 MP3、WAV、M4A、AAC、Ogg、WebM 與 FLAC 檔名及 MIME 類型。副檔名可辨識,並不保證每種編解碼器變體都能由目前的瀏覽器與作業系統解碼。Audio Joiner 依賴瀏覽器的 Web Audio API,而不會加入編解碼器程式庫或使用伺服器備援。損毀、加密、不完整、標示錯誤或不支援的檔案會產生錯誤。MDN decodeAudioData 參考資料與 AudioBuffer 參考資料說明了相關的瀏覽器解碼與解碼後緩衝區屬性。

接合前,請檢查每項相關限制:

選取項目 支援的限制
檔案數量 2–10
每個已編碼的輸入檔案 不得大於 25 MiB,或 26,214,400 bytes
所有已編碼輸入的合計 不得超過 100 MiB,或 104,857,600 bytes
解碼後的總長度 不得超過 30 分鐘
解碼後的取樣率 不得超過 192 kHz
解碼後的聲道數 不得超過八個聲道,且每個選取的音軌都必須具有相同數量
解碼後的樣本總數 不得超過 30 million,依所有聲道合計計算

高取樣率或多聲道的選取內容,可能在達到長度限制前,就先觸及樣本預算。Audio Joiner 不會為了讓選取內容符合限制而縮短、下混音、降取樣或省略內容,而是會以特定訊息拒絕該選取內容。

依照想要的順序接合檔案

  1. 開啟 Audio Joiner,並一次選取 2–10 個可由瀏覽器解碼的音訊檔案。確認選取內容符合顯示的個別檔案與總輸入限制。
  2. 等待瀏覽器解碼檔案。預覽每個解碼後的音軌,然後使用 Move up 或 Move down,直到可見清單符合所需的順序。
  3. 依此順序選取 Join,並在儲存產生的 PCM16 WAV 前先加以預覽。
  4. 下載 WAV,但請保留來源檔案,直到你確認下載檔案的長度、音軌順序、接合處、聲道播放與檔案大小。如果任一檢查失敗,請替換或重新排序選取內容,然後再次接合。

檔案讀取、解碼、串接、WAV 編碼、預覽與下載,全都發生在目前的瀏覽器分頁中,因此來源檔案不會上傳。選取檔案與完成的 WAV 會使用暫時的本機物件 URL,並在遭替換或分頁關閉時釋放。

新 WAV 保留的內容,以及不保留的內容

下載內容是重新編碼的 RIFF/WAVE 檔案,其中的 PCM 樣本為交錯式、小端序、有正負號的 16-bit。其標頭會記錄聲道數、解碼後取樣率、位元組速率、區塊對齊、16-bit 位元深度,以及精確的資料長度。接合作業會保留選取順序與相符的聲道身分,但會建立靜態 PCM 表示,而不會沿用來源容器。

因此,輸出不會保留原始編解碼器、位元率、編碼器設定、標籤、專輯封面、章節、cue 點、循環點、響度欄位、時間戳記或其他容器中繼資料。這些欄位並不存在,並不是檔案較大的原因;真正原因是擴大的 PCM 音訊資料。

讓結果維持在合理大小

100 MiB 的總輸入限制適用於你選取的已編碼檔案,而非產生的 WAV 大小。30,000,000 個聲道樣本的上限,會將可接受的 PCM16 WAV 限制在包含標頭共 60,000,044 bytes,約 57.2 MiB,因此不會超過 100 MiB。接合前請檢視解碼後的長度、取樣率與聲道數,因為這些數值比原始檔案大小更準確地決定最終資料量。

Audio Joiner 一律匯出 PCM16 WAV,因此當儲存效率是優先考量時,並不提供壓縮輸出選項。如果你需要壓縮傳送、保留中繼資料、淡化效果、響度匹配、聲道轉換或樣本層級修復,專業編輯器才是合適的選擇。如果你只需要特定時間範圍,而非完整音軌,Audio Cutter可在產生的 WAV 接合前提供符合需求的作業流程。

如需深入了解,請參閱 線上剪輯音訊檔案:將精確範圍裁剪為 WAV。

如需深入了解,請參閱 Audio Joiner 應用程式:在本機將片段接合為一個 WAV。