當解碼或五項輸入限制檢查之一失敗時,音訊波形產生功能就會失敗;即使成功產生 SVG,若將多聲道尖峰合併,或誤將其當成頻率與響度資料,結果仍可能造成誤導。常見技術問題包括缺少編解碼器、檔案損毀、空白或偽裝檔案,以及音訊超過壓縮檔案、時長、聲道、取樣率或聲道樣本預算。熟悉的副檔名或 MIME 標籤無法保證瀏覽器一定能解碼其內容。音訊波形產生器會在目前的瀏覽器分頁中處理一個檔套用所述限制、計算有上下界的最小與最大尖峰包絡,並產生靜態 SVG。所選音訊與產生的圖 graphic 不會上傳至 Lizely。對於每個已解碼影格群集,此工具會考量所有已解碼聲道中通過驗證的有限樣本,以防禦性方式將超出範圍的值限制在 -1 到 1 之間,並繪製一條由最小值延伸至最大值的垂直線。欄數為要求的寬度、1,000 與已解碼影格數三者的較小值。相較於每個群集任意選取一個樣本,此方法更誠實地保留短促的正負尖峰,但無法將結果轉換成頻譜圖、響度計或分離聲道的編輯器檢視畫面。

what can go wrong when i generate audio waveform
產生音訊波形時可能發生哪些問題?

為何看似有效的檔案可能無法產生結果

解碼支援取決於實際音訊編解碼器,而不只是檔名。Web Audio 會讀取所選檔案,並透過其AudioBuffer 模型提供已解碼樣本,但目前的瀏覽器與作業系統必須支援該檔案真正的編解碼器。因此,MP3、WAV、M4A、AAC、Ogg、WebM 和 FLAC 在不同環境中可能會有不同的行為。

不支援、損毀、空白或偽裝的檔案會傳回錯誤。重新命名檔案無法修復其內容,也無法增加編解碼器支援。在其他情況下,解碼會成功,但產生的圖像可能不符預期,例如誤以為立體聲聲軌在視覺上會保持分離。

觀察到的問題發生情況檢查或變更項目
選取檔案後產生程序停止瀏覽器缺少真正的編解碼器,或檔案不受支援、已損毀、空白或偽裝。選擇目前瀏覽器能解碼的真正檔案;變更副檔名並不能修復問題。
整個檔案遭到拒絕至少一項壓縮或已解碼輸入限制遭到超過。檢查全部五項輸入值,不要預期工具只會使用開頭部分。
立體聲或多聲道音訊看起來已合併每個群集都會使用所有通過驗證聲道的最小值與最大值。將此圖像視為單一合併概覽,而不是分離的左右聲道。
短片段留下未使用的水平空間欄數不得超過已解碼影格數。變更輸出寬度前,請比較回報的影格數與欄數。
寬廣的圖像不超過 1,000 條尖峰線產生器會套用固定欄數上限,以限制 SVG 大小與處理量。即使要求的寬度較大,長檔案的詳細程度仍應預期會受到限制。

會拒絕整個檔案的輸入限制

驗收規則會共同運作。符合一項要求無法補償未符合另一項要求;若檔案超過限制,就會遭到拒絕,而不會只解碼部分內容以供顯示。

輸入或輸出設定可接受的數值用途
壓縮檔案大小最多 50 MiB壓縮來源限制
已解碼音訊時長不超過五分鐘解碼時間限制
已解碼聲道數一個至八個聲道聲道數限制
已解碼取樣率8,000 至 192,000 Hz解碼速率檢查
已解碼聲道樣本總數不超過 30 百萬解碼陣列預算
SVG 寬度320 至 1,600 像素要求的水平輸出大小
SVG 高度120 至 600 像素要求的垂直輸出大小
背景與波形顏色六位數十六進位瀏覽器控制項已驗證的 SVG 塗色值

小型壓縮檔案可能會擴展成大得多的已解碼聲道樣本集,因此僅憑檔案大小無法可靠估算工作量。如果有任何限制未通過,工具不會在未告知的情況下只使用開頭幾秒的音訊產生波形。請準備符合所有輸入條件的來源;減少要求的 SVG 尺寸並不會讓超過限制的音訊符合資格。

在本機產生並檢查 SVG

  1. 選擇一個來源檔案。 只有在目前的瀏覽器與作業系統支援其真正的編解碼器時,才選擇 MP3、WAV、M4A、AAC、Ogg、WebM 或 FLAC 檔案。確認檔案不大於 50 MiB,並符合五分鐘時長、一至八個聲道、8,000 至 192,000 Hz,以及 30 百萬個聲道樣本限制。
  2. 設定 SVG 尺寸與顏色。 選擇 320 至 1,600 像素的寬度,以及 120 至 600 像素的高度。透過瀏覽器的六位數十六進位控制項選擇背景與波形顏色。
  3. 產生本機尖峰包絡。 目前的分頁會解碼音訊,並將已解碼影格分成大小相等且索引連續的範圍。對於每個範圍,它會找出所有已解碼聲道中的有限最小值與最大值、套用防禦性邊界,並建立一條垂直尖峰線。
  4. 檢查回報的數量與預覽。 檢視已解碼影格數與尖峰欄數。欄數應為要求的寬度、1,000 與已解碼影格數三者的較小值。將此形狀視為預期結果前,請先檢查預覽。
  5. 檢查 SVG 文字並下載。 展開 SVG 檢查器,以檢閱確切的背景、尺寸、顏色與線條群組。下載時會使用完全相同的文字字串,而不會另產生獨立或點陣化的版本。

下載內容是可編輯的文字式 SVG,而不是 PNG、JPEG、影片或音訊。它可以在支援 SVG 的編輯器中開啟,並以不同的顯示大小放置而不會變成像素化影像。處理、預覽與下載都會留在瀏覽器分頁中,原始音訊也絕不會被改寫。

將結果解讀為時域尖峰包絡

時間由左向右延伸,每條垂直線則顯示其群集中樣本由最小值至最大值的範圍。此圖像不會計算頻率內容、節拍、音符、經校準的響度、語音、瞬態或音樂結構。因此,即使兩種視覺表示都將音訊置於兩個座標軸上,它仍不是頻譜圖。

兩段錄音也可能具有相似的可見尖峰,聽起來卻大不相同。感知響度取決於時長、頻率平衡、動態與播放條件。請勿使用此 SVG 診斷聽力、設備問題、削波歷程、相位或母帶製作規範符合度。

立體聲與多聲道檔案的顯示方式

每個群集都會合併所有通過驗證的已解碼聲道。其最小值可能來自一個聲道,而最大值則來自另一個聲道。此工具不會顯示獨立聲道軌道、無法在視覺上保留聲道身分,也不會將聲道平均成新的訊號。若需要分開的左右聲道波形,請使用可將每個聲道顯示為獨立軌道的音訊編輯器。

瞭解尺寸、座標與受限的詳細程度

短片段不會僅因 SVG 很寬就獲得憑空產生的量測值。其欄數仍受已解碼影格數限制。長片段則仍受 1,000 欄上限限制,使 SVG 線條數量維持在可管理範圍。

群集邊界使用影格整數索引。第一個群集從影格零開始,最後一個群集延伸至最後一個已解碼影格,中間相鄰範圍之間不會略過任何影格索引。各欄均置於等距的水平中心。垂直中心為要求高度的一半;滿刻度的正向或負向樣本會從該中心向上或向下延伸至高度的 45 percent,並在頂部與底部各保留 5 percent 的邊界。

SVG 包含一個背景矩形、一個尖峰線群組、固定像素尺寸,以及相符的 viewBox。顏色來自已驗證的數值設定,而非檔名或內嵌中繼資料。向量縮放能讓顯示保持清晰,但極大型的印刷或編輯作業可能仍需要不同的線寬,或更詳細的來源資料。

執行最終不符檢查

  • 確認目前檔案已通過驗收,而不是只依賴副檔名或 MIME 標籤。
  • 比較回報的已解碼影格數與尖峰欄公式。
  • 在 SVG 文字中檢查要求的寬度、高度、背景顏色與波形顏色。
  • 僅將此圖像解讀為合併的時域尖峰概覽。
  • 若聲道身分或個別聲道波形很重要,請使用分離軌道的編輯器。
  • 從目前產生的結果下載確切的 SVG 字串,不要依賴螢幕擷取畫面或較早的檔案。

過時輸出是另一個可避免的問題。選取替換檔案、變更選項、再次產生或離開頁面,都會撤銷過期的物件 URL,因此較舊的圖像不會看似代表新的輸入。如果預覽似乎不一致,請先直接與目前的 SVG 檢查器比較,再重用該圖形。