從本機音訊檔案正確產生音訊波形,關鍵在於遵守瀏覽器的解碼限制、在支援範圍內選擇尺寸,並記得峰值波形是時域圖,而不是頻譜圖。音訊波形產生器透過將所有解碼後的幀分割成等長的索引區段、在每個區段中取每個通道的有限最小值與最大值樣本,並為每個區段繪製一條垂直線,來建立一個具確定性的 SVG。任何違反硬性限制、混淆峰值包絡與頻率分析、或重複使用舊預覽的行為,都會被工具立即標示為錯誤,而不是默默以近似值處理。

波形產生器會與不會顯示的內容
此工具產生的峰值包絡刻意保持簡單。每個分桶會在所有解碼通道中尋找最小值與最大值的有限樣本,將防禦性的超出範圍值限制在 -1 到 1 之間,並從該分桶的最大值到最小值繪製一條垂直線。相比從每個分桶中挑選單一任意樣本,這種方式更能誠實地保留短暫的正向與負向峰值。同樣重要的是它「不會」做的事情。它不會計算頻率內容、節拍、音符、校準後的響度、語音識別、暫態或音樂結構。因此峰值波形並非響度計:兩段錄音可能顯示相似的峰值,聽起來卻截然不同,因為感知響度取決於持續時間、頻率平衡、動態與播放條件。
請將此視覺化視為一張時域圖,水平軸由左至右代表時間,垂直軸代表樣本振幅範圍,而非頻率。將此圖讀成頻譜圖的使用者,診斷方向會錯誤。垂直線代表的是每個時間分桶內的最小值與最大值樣本振幅,而不是哪些頻率曾經出現過。如果目標是頻率分析、削波歷史、相位關係或母帶合規,則需要使用其他工具。
會阻擋產生的檔案與解碼限制
解碼是透過目前瀏覽器分頁中 Web Audio API 的 AudioBuffer 進行,這表示實際的編解碼器支援取決於瀏覽器與作業系統,而非副檔名或 MIME 標籤。支援的輸入包含 MP3、WAV、M4A、AAC、Ogg、WebM 與 FLAC,但前提是目前環境確實能解碼它們。不支援、損壞、空的或偽裝過的檔案會回傳錯誤,而不是產生誤導性的空白圖片。
在按下產生之前,請確認所有互相影響的限制,因為只要漏掉任何一項,整個檔案就會被拒絕。波形絕不會僅以超出限制檔案的開頭部分悄悄產生。
| 限制 | 接受範圍 | 超過時會發生什麼 |
|---|---|---|
| 壓縮檔案大小 | 最高 50 MiB | 檔案遭拒;不會產生任何內容 |
| 解碼後長度 | 最多 5 分鐘 | 檔案遭拒;不會產生任何內容 |
| 通道數 | 1 到 8 個通道 | 檔案遭拒;不會產生任何內容 |
| 取樣率 | 8,000 Hz 到 192,000 Hz | 檔案遭拒;不會產生任何內容 |
| 通道樣本總數 | 最多 30,000,000 | 檔案遭拒;不會產生任何內容 |
常見的陷阱是假設小的壓縮檔案一定安全。一段 192 kHz 的短 MP3,在解碼時可能會展開成大得多的浮點通道陣列,因此 3000 萬通道樣本的上限是獨立於位元組限制之外而存在的。如果某個在磁碟上看起來合理的檔案卻發生錯誤,問題通常出在解碼後的長度。
尺寸、色彩與通道行為相關的錯誤
支援的寬度範圍為 320 到 1,600 像素,支援的高度範圍為 120 到 600 像素。超出這些區間的寬度與高度將不被接受,因此要求低於 320 像素的縮圖,或超過 1,600 像素的海報,將不會產生任何輸出。垂直中心永遠是所要求高度的一半,而全幅的正向或負向樣本會從該中心向上或向下延伸至高度的 45%,在頂部與底部各保留 5% 的邊界。直條會在所要求的寬度內均勻置中,這表示非常寬的圖片搭配短音訊片段時,看起來會稀疏而非密集。
色彩必須來自瀏覽器的六位數十六進制色彩控制項。所有 SVG 標記都是由經驗證的數字與這些色彩所產生,而不是從檔名或嵌入的來源中繼資料複製而來,因此色彩名稱、三位數的十六進制簡寫與 CSS 關鍵字都不被接受。一旦傳入任何未通過驗證的值,工具就不會產生圖片。
立體聲與多通道音訊需要特別留意。每個分桶會使用所有接受通道中的最小值與最大值,產生一個合併的峰值總覽,而不是分開的左右音軌。一個分桶的最小值可能來自某個通道,而最大值卻來自另一個通道。產生的結果不會顯示個別通道的音軌、不會在視覺上保留通道的身分,也不會將通道平均成新的音訊訊號。如果需要個別通道的波形,正確的工具是能將每個通道顯示為各自音軌的音訊編輯器。忘記這點會從立體聲錄音產生誤導性的「單聲道」圖片。
如何正確地產生音訊波形
- 選擇一個瀏覽器可解碼的音訊檔案,須符合 50 MiB 壓縮上限、5 分鐘解碼上限、1–8 個通道、8–192 kHz,以及 3000 萬通道樣本的限制。請確認副檔名符合目前瀏覽器實際能解碼的格式,而不是只依賴標籤。
- 將 SVG 寬度設定在 320 到 1,600 像素之間,高度設定在 120 到 600 像素之間,然後使用六位數的十六進制值選擇背景色與波形色。請避免使用三位數簡寫、色彩名稱,或從檔名貼上的值。
- 按下「產生」以建立本機的峰值包絡。工具會將每個解碼幀分割成等長的索引區段,並在整個檔案中為每個區段記錄一組最小值與最大值,相鄰的分桶之間不會省略任何幀。
- 檢查回報的解碼幀數與峰值直條數。直條數是所要求的圖片寬度、1,000 與解碼幀數中的最小值,因此短音訊片段不會捏造出比其內容更多的測量點,而長音訊片段則會維持在有界限的 SVG 與處理預算之內。
- 檢查預覽、開啟可展開的 SVG 檢查器以讀取確切的文字,並將相同的字串下載為 SVG 檔案。下載的是以文字為基礎的 SVG,而不是 PNG、JPEG、影片或音訊,因此請據此規劃任何後續的點陣圖轉檔作業。
- 若任何項目有所變更,包括來源檔案、尺寸或色彩,請在檢查或下載之前重新產生。工具會撤銷舊的物件 URL,因此不會讓舊的圖片看似代表新的輸入。
正確解讀輸出而不誤判
此頁面在可展開的檢查器中公開了確切的已產生 SVG 文字,而下載使用的也是同一段字串。檢查標記是確認實際繪製內容的最快方式,包括背景矩形、峰值線群組、固定的像素尺寸,以及相符的 viewBox。SVG 在任何顯示尺寸下都保持銳利,但若是極大的列印或編輯工作流程,仍可能需要不同的描邊寬度,或比此峰值包絡更豐富的來源資料。
兩個實用的預防措施能在多數錯誤造成損害前先行攔截。首先,在下載前開啟檢查器,確認尺寸與色彩值看起來正確。其次,下載後在支援 SVG 的編輯器中開啟檔案,確認 viewBox 與線條數符合預期。如果圖片看起來是空的,通常是因為直條數接近解碼幀數,這代表音訊片段很短,分桶數不足以顯示可見的峰值。
隱私、處理位置與從錯誤中恢復
沒有任何音訊檔案或產生的圖片會被上傳。瀏覽器解碼、峰值擷取、SVG 產生、預覽渲染與下載都發生在目前分頁中,這消除了整個「意外上傳未發行音訊」的錯誤類別。如果工具回傳錯誤且你無法判斷是哪項限制造成拒絕,請參考瀏覽器端不支援音訊的疑難排解指南,然後重新檢查壓縮大小、解碼後長度、通道數、取樣率與通道樣本總數。本網站音訊工具所使用的解碼後資料限制在此同樣適用,因此透過本網站的另一個工具確認該檔案,即可判斷拒絕原因是編解碼器相關,還是預算相關。
對於擔心伺服器是否會看到其音訊的使用者,波形產生的隱私說明確認處理過程會保留在本機,且下載的 SVG 僅包含視覺呈現,而不含原始音訊資料。解碼是透過 Web Audio API 規格中描述的 AudioBuffer 介面執行,這也是本機處理路徑能夠實現的原因。
最後,請記得原始音訊永遠不會被重寫。產生的波形是一種視覺化,而不是經過編輯的檔案。如果波形在全幅顯示削波,這反映的是來源錄音本身的狀況;並不表示工具損壞了該檔案。要診斷底層的音訊,仍須使用音訊編輯器或經過校準的響度計。