若要在網頁瀏覽器中剪輯音訊,請選擇介於非負數起始點與結束點之間的連續時間範圍,其中結束點不得超過解碼後的檔案長度,然後將對齊至音訊框架的片段匯出為 16-bit PCM WAV 檔案。現代網頁瀏覽器可在本機執行這項作業,方式是將聲音檔案讀入系統記憶體、將編碼串流解碼為浮點數音訊緩衝區,並擷取所要求的確切音訊框架序列。此工作流程無須將私人媒體傳輸至遠端伺服器,同時可精確依框架剪輯語音、音效或音樂取樣。

本機瀏覽器音訊剪輯的運作方式
完全在網頁瀏覽器內剪輯音訊,倚賴的是用戶端解碼架構,而非以伺服器為基礎的算繪管線。選取檔案後,瀏覽器會在本機讀取其原始位元組串流,並將其傳遞至 Web Audio 引擎。此系統使用 BaseAudioContext.decodeAudioData 等標準 API,解析壓縮容器並將音訊資料解壓縮至儲存在記憶體中的未壓縮緩衝區。
解壓縮後,聲音資料會成為 AudioBuffer 物件,其中包含各個獨立的 32-bit 浮點數脈衝碼調變(PCM)取樣通道。選擇起始與結束時間戳記時,系統會依據目前使用的取樣率,直接將這些時間值轉換為整數框架索引。由於處理作業發生於目前使用中的瀏覽器工作階段內,使用本機網頁工具線上剪輯音訊時,音訊檔案不會上傳。原始檔案會保持不變並留在您的磁碟中,而暫存的物件 URL 則會管理來源播放器與產生的剪輯片段,直到您替換檔案或關閉分頁。
修剪音訊並匯出 WAV 片段的步驟
您可以使用網頁工具 Audio Cutter 在本機修剪音訊片段。應用程式會在您的網頁瀏覽器內處理檔案,並在完成後產生未壓縮的 WAV 下載檔案。
- 選擇瀏覽器可解碼且符合顯示的檔案與解碼音訊限制的音訊檔案。從您的裝置中選取本機聲音檔案。輸入檔案的大小不得超過 25 MB。此工具會檢查容器格式,並將串流解碼至系統記憶體,同時顯示總長度、取樣率、通道數與框架總數。
- 輸入非負數起始時間,以及不得超過解碼長度的較晚結束時間。以秒為單位輸入所需的剪輯邊界。起始邊界必須為零或更大,而結束邊界必須嚴格大於起始時間,且不得超過來源檔案精確的解碼長度。
- 選取 Cut 並匯出 WAV,預覽 PCM16 結果,然後下載。瀏覽器會擷取指定的框架範圍,將浮點數取樣轉換為 16-bit 帶正負號的 PCM 資料,並產生 RIFF/WAVE 下載連結。您可以在儲存檔案至本機之前,直接於瀏覽器中播放輸出內容,以確認邊界準確度。
音訊限制與輸出檔案大小計算
本機瀏覽器編輯需要明確的安全門檻,以免瀏覽器分頁在處理期間耗盡堆積記憶體。大型輸入檔案或高取樣率多聲道錄音,在完全解壓縮至 RAM 後會大幅膨脹。修剪程序會嚴格 enforce 輸入與輸出邊界:來源檔案不得超過 25 MB,解碼後的音訊緩衝區則必須維持在 15 分鐘播放長度、8 個音訊通道、192 kHz 取樣率,以及所有合併通道合計上限 30 million 個取樣之內。
由於匯出的剪輯片段採用未壓縮的 16-bit PCM 編碼,輸出檔案大小嚴格依選取長度、通道數與取樣率而定,而非取決於輸入檔案的壓縮大小。每個取樣框架包含每個通道 2 bytes。檔案的精確大小以 bytes 為單位,係依下列公式決定:
Size (bytes) = (Selected Frames × Channel Count × 2) + 44
請考慮以下實際計算範例:從取樣率為 44,100 Hz 的立體聲音軌中選取 10 秒內容:
- 選取的框架:10 秒 × 44,100 Hz = 441,000 個框架
- 代入:(441,000 個框架 × 2 個通道 × 2 bytes/sample)+ 44 bytes 標頭
- 總計算:441,000 × 2 × 2 = 1,764,000 bytes 的音訊資料,加上 44 bytes 標頭 = 1,764,044 bytes(約 1.76 MB)
下表重點說明常見的輸入檔案類型與瀏覽器解碼及本機 PCM WAV 匯出功能之間的關係:
| 容器/格式 | 解碼器支援 | 保留的中繼資料 | 匯出格式 |
|---|---|---|---|
| MP3 (.mp3) | 現代瀏覽器普遍支援 | 否(移除 ID3 標籤) | 未壓縮 PCM16 WAV |
| AAC / M4A (.m4a, .aac) | 大多數 OS/瀏覽器組合支援 | 否(移除 iTunes/MP4 中繼資料) | |
| FLAC (.flac) | 現代 Web Audio 引擎支援 | 否(移除 Vorbis 註解) | 未壓縮 PCM16 WAV |
| WAV (.wav) | 瀏覽器原生支援 | 否(捨棄額外的 RIFF 區塊) | 未壓縮 PCM16 WAV |
| Ogg Vorbis / Opus (.ogg) | Chrome、Firefox、Edge 支援 | 否(移除 Ogg 註解) | 未壓縮 PCM16 WAV |
壓縮輸入與 PCM WAV 匯出之間的技術差異
線上修剪音訊時,首要考量是瞭解輸出檔案為何與輸入來源檔案不同。許多熱門的消費者格式,例如 MP3 或 AAC,皆採用有損感知壓縮,藉由移除人耳難以察覺的頻率細節來減少檔案大小。其他格式(例如 FLAC)則採用無損壓縮演算法,在維持取樣絕對逼真度的同時減少頻寬。然而,Web Audio 解碼器會在進行操作前,將所有音訊格式處理為原始、未壓縮的浮點數緩衝區。
匯出剪輯後的音訊片段時,編輯器會建立標準的 44-byte RIFF WAVE 標頭,後接交錯排列的 16-bit 帶正負號小端序整數 PCM 取樣。音訊編輯者常見的一個問題是:剪輯音訊會保留原本的 MP3 或 AAC 編碼嗎?答案是不會。匯出引擎會產生乾淨的 PCM 結構,而不會重新編碼成 MP3 或 AAC 等有損格式。在用戶端應用程式中重新編碼有損檔案,會造成世代損失與不固定的編碼器延遲;相較之下,標準 PCM WAV 可立即與編輯工具、數位音訊工作站及播放系統相容。
在這項轉換期間,既有的容器功能(例如封面圖片、曲目名稱、藝人標籤、響度正規化旗標與嵌入的提示點)都會被移除。介於 -1.0 與 +1.0 之間的浮點數音訊值,會直接縮放至介於 -32768 與 +32767 之間的 16-bit 帶正負號整數範圍。如果解碼後的記憶體串流中出現非有限值,系統會將其轉換為數位靜音,以避免產生爆音。因此,修剪 MP3 檔案後,所得 WAV 輸出檔案通常會比原始壓縮輸入檔案更大,但產生的音訊檔案不會含有額外的壓縮失真。
取樣框架準確度與邊界捨入
數位音訊的精確計時取決於取樣率,而非任意的時鐘秒數。在以 48,000 Hz 取樣的檔案中,每秒恰好包含 48,000 個獨立框架位置。當您在起始與結束輸入欄位中輸入小數秒時,系統會使用解碼後 AudioBuffer 的取樣率,將輸入值捨入至最接近的整數取樣框架邊界。
切片邊界採用包含起始框架、不包含結束框架的方式。例如,在取樣率為 44,100 Hz 時,選擇 0.0 秒的起始時間,會讓切片從框架索引 0 開始;選擇 2.0 秒的結束時間,則會將不包含的結束邊界設於框架索引 88,200,總共精確選取 88,200 個取樣框架。如果使用者設定的起始與結束值過於接近,導致計算出的範圍捨入後不足一個完整取樣框架,系統就會拒絕剪輯,以避免產生空白音訊檔案。
由於 Web Audio 會將輸入串流解碼至硬體內容的取樣率,解碼階段可能發生細微的重取樣。編輯器顯示的輸出取樣率會反映實際用於擷取的精確緩衝區速率,確保匯出的輸出長度恰好等於精確取樣數除以目前使用的取樣率。