音訊波形產生器會將立體聲與多聲道檔案顯示為一個合併的峰值總覽,而不是分開的左右音軌或每個聲道一列的獨立圖層。時間仍然由左到右在畫布上推進,但影像上的每一條垂直線代表該時間切片中所有解碼聲道裡最小與最大的有限樣本。一個區間可以從左聲道取得最低值、從右聲道取得最高值,反之亦然,這代表此圖片保留了任何聲道的短暫峰值,而不會捏造新的音訊訊號。原始音訊絕對不會被改寫,聲道絕對不會被平均成新的混音,SVG 中也不會視覺上保留任何聲道身分。如果你的工作明確需要獨立的左右音軌,你必須使用能將每個聲道當作獨立軌道來呈現的音訊編輯器;本產生器只會輸出合併後的檢視。視覺化全程都在本機進行:Web Audio 會在你目前的瀏覽器分頁中解碼檔案,工具計算封包,然後 SVG 會在不上傳任何資料到伺服器的情況下產生並下載。

在產生器中,立體聲與多聲道音訊看起來是什麼樣子
不管你的檔案包含幾個聲道,產生器在畫布上每一欄只會繪製一條垂直峰值線。對於立體聲檔案,左右聲道並不會上下堆疊、不會並排繪製,也不會以不同顏色區分成獨立音軌。對於三、六或八個聲道的檔案,行為完全相同:每個聲道都會餵入同一個區間的最小值與最大值,每一欄只會畫出一條合併的範圍線。由於該範圍是取自所有已解碼的聲道,因此產生的圖片代表的是在該段音訊中,任何聲道所產生的最大振幅擺盪。
因此,一首安靜的主聲人聲混合在響亮的立體聲鼓組中時,即使在人聲無聲的切片裡,看起來也會跟鼓聲擊點一樣高——最響亮的聲道決定上緣,最安靜的聲道決定下緣。這種取捨正是為什麼本工具被描述為峰值封包檢視,而不是每聲道的視覺化,這也誠實地回答了「當你產生音訊波形時,立體聲與多聲道檔案是如何繪製的」這個問題。
合併檢視是如何計算出來的
合併檢視的產生方式是將每一個已解碼的訊框分割成大小相等的索引範圍,稱為區間。區間數會是所要求的影像寬度、1000 與已解碼訊框數三者中的最小值,這樣可以避免短音訊被填入虛構的量測值,也可以避免長音訊超出有界的 SVG。對於每個區間,實作會找出在該範圍內貢獻了音訊的所有聲道中,有限的最小與最大樣本,然後防衛性地將任何超出範圍的值箝制在 -1 到 1 之間,如此毀損或偽裝過的檔案就不會產生失控的線條高度。
接著,最小值與最大值會被繪製成一條在區間中水平置中的垂直 SVG 線。垂直座標是確定性的:垂直中心位於所要求高度的一半處,滿刻度的正負樣本會分別延伸至該中心上下各 45% 的高度處。上下各保留 5% 的留白,以便滿刻度音訊絕不會碰觸到影像邊緣,而欄位中心則會在所要求的度上均分布。
為立體聲或多聲道音訊產生波形
- 在瀏覽器中開啟 音訊波形產生器,並選擇一個瀏覽器能原生解碼的檔案——MP3、WAV、M4A、AAC、Ogg、WebM 或 FLAC。請將壓縮大小維持在 50 MiB 以下、解碼後長度維持在 5 分鐘以下,因為超過限制的音訊會被整體拒絕。
- 將 SVG 寬度設定在 320 到 1600 像素之間、高度在 120 到 600 像素之間、背景顏色使用六位數十六進位、波形顏色使用六位數十六進位。這些尺寸與顏色會如實寫入 SVG 中。
- 點擊產生,然後查看回報的訊框數與峰值欄數。檢查預覽或開啟可展開的 SVG 文字檢查器,確認尺寸與線條數符合預期,然後使用下載按下載精確的 SVG。
工具回報的峰值欄數等於 SVG 中繪製的垂直線數。如果你的檔案在訊框數上短於所要求的度,將會繪製較少的欄位;如果檔案明顯較長,則欄數上限為 1000,以維持 SVG 在有界範圍內。瀏覽器並非全部支援每一種編解碼,因此不支援、毀損、空的或偽裝的檔案會回傳錯誤,而不是產生不完整的圖片。選擇替換檔案、變更選項、重新產生或離開頁面,都會撤銷已過期的物件 URL,因此舊的影像不會被誤用來代表新的輸入。
適用於立體聲與多聲道檔案的輸入限制
本站其他音訊工具所使用的相同解碼資料限制,也適用於立體聲與多聲道輸入,而且其重要性可能比乍看之下還要高。小的壓縮檔在解碼後可能會展開成大得多的浮點聲道陣列,特別是當有多個聲道時;超過限制的音訊會被整體拒絕,而不是靜默地截斷成前幾秒。本工具接受 1 到 8 個聲道、任何介於 8,000 到 192,000 Hz 之間的取樣率,但前提是總聲道樣本數必須維持在 3,000 萬以下。允許的輸入範圍摘要如下。
| 限制條件 | 允許範圍 |
|---|---|
| 壓縮檔大小 | 最高 50 MiB |
| 解碼後長度 | 最高 5 分鐘 |
| 聲道數 | 1 到 8 |
| 取樣率 | 8,000 到 192,000 Hz |
| 總聲道樣本數 | 最高 30,000,000 |
| SVG 寬度 | 320 到 1,600 像素 |
| SVG 高度 | 120 到 600 像素 |
| 峰值欄數 | min(寬度,1000,已解碼訊框數) |
解碼是透過 Web Audio API 進行的,在進行任何區間運算之前,所產生的浮點陣列會受限於上述限制(請參閱 AudioBuffer 規格)。如果檔案成功解碼,但聲道數、取樣率、長度或總聲道樣本數超出範圍,整個波形產生作業會被拒絕,而不是靜默地截斷。
誠實地解讀合併峰值總覽
合併總覽是峰值封包,而非經過校準的響度計量器,也不是頻譜圖。時間如預期由左至右推進,但每條線的垂直範圍代表的是該樣本區間的振幅範圍,而不是頻率內容。兩段錄音可能呈現相似的峰值,但聽起來卻截然不同,因為感知響度取決於持續時間、頻率平衡、動態範圍與播放條件。
這張圖無法顯示削波歷史、聲道之間的相位、人聲對音樂、節拍、音符、暫態或母帶合規性,因此不應被用來診斷聽力、設備或混音的問題。在這些限制之內,此圖片忠實地呈現了每個區間中任何聲道所產生的最大振幅擺盪——這正是大多數讀者對於快速視覺參考所期待得到的結果。
當你需要獨立的聲道音軌時
合併總覽是本產生器刻意的選擇,這並非檢視多聲道音訊的唯一方式。如果你的工作需要在視覺上區分立體聲錄音的左右音軌,或是逐聲道檢查環繞混音,你需要一款能將每個聲道當作獨立軌道來呈現的音訊編輯器——例如桌面端的數位音訊工作站。
在瀏覽器分頁中,取得每聲道圖片的最簡單路徑,是先使用多軌編輯器將檔案分割成單聲道檔案,然後使用同一個產生器為每個檔案分別產生一張 SVG。每個產生的 SVG 仍然會是其單一聲道的合併總覽,但將它們並排放,就能在不更動底層方法的情況下,恢復逐音軌的檢視。下載的是文字型 SVG,而不是 PNG、JPEG、影片或音訊,因此同一張 SVG 可以在支援 SVG 的程式中開啟,以任何顯示尺寸進行編輯或縮放。
如果你正在權衡各種選項,避免在產生音訊波形時犯錯對此有詳細說明。
如果你正在權衡各種選項,在產生音訊波形後檢查結果對此有詳細說明。