在 iPhone 上,你可以在 Safari 中開啟「Audio Waveform Generator」(音訊波形產生器),選擇本機音訊檔、設定 SVG 的寬度、高度和顏色,然後在同一個分頁下載一個可縮放的波形圖片,整個過程不需要安裝應用程式,也不需要上傳你的音訊。輸出是一張靜態的 SVG 峰值總覽圖,並不是 MP3 檔案或重新編碼的音軌,因此與其將它視為原始錄音的替代品,不如將它理解為一張可以分享、嵌入或用支援 SVG 的編輯器開啟的視覺化圖片。這個工具透過瀏覽器的 Web Audio API 來解碼你的檔案,將解碼後的取樣分割成數量有限的區塊 (bucket),再從每個區塊在所有聲道中從最小到最大取樣值畫出一條垂直線。滿刻度的音訊會到達垂直中心上下各 45% 的高度,因此在頂部與底部各保留 5% 的邊距,而各欄位會在所要求的寬度上等距排列。所有處理都在裝置上完成:解碼、峰值擷取、SVG 產生、預覽和下載全部都在目前的 Safari 分頁中進行,而且每當你變更設定、重新產生或離開頁面時,舊的物件 URL 都會被撤銷。

how to convert waveform audio to mp3 on iphone
在 iPhone 上從音訊製作波形圖片

這個工具實際上從 iPhone 音訊產生了什麼

「Audio Waveform Generator」是一個瀏覽器工具,它會讀取本機音訊檔、從解碼後的取樣計算出峰值包絡 (peak envelope),並寫入一個你可以預覽與下載的靜態 SVG 檔案。它不會重新編碼你的音訊,也不會產生 MP3、AAC 或 WAV 副本。如果你是為了尋找音訊轉檔工具而來到這個頁面,這點差別很重要:這裡得到的結果是你的音訊圖片,而不是一個新的音訊檔。如果你只是為了節省儲存空間而需要在 iPhone 上把 WAV 轉成 MP3,那麼這個工具並不適合這個特定任務,使用專門的音訊格式轉檔工具會更合適。

對於確實想要視覺化波形圖片的使用者來說,SVG 輸出在任何顯示尺寸下都很銳利,因為這張圖片是由經過驗證的數值和顏色所構成,而不是來自固定的像素網格。你可以在 iPhone 或桌面上用任何支援 SVG 的編輯器開啟它,將它縮放成投影片、嵌入網頁,或當作附件傳送。這裡使用了 Lizely 其他音訊工具相同的解碼資料預算 (decoded-data budget),因此超過上限的檔案會被整個拒絕,而不是被悄悄截斷。

為什麼要在 iPhone 上從音訊製作波形圖片

對於想要錄音波形圖片(而不是較小的音訊檔)的 iPhone 使用者,有以下幾個實際原因:

  • 在聊天室或社群媒體上分享一個具有辨識度的視覺圖片,而不需要上傳底層的音訊
  • 在投影片、文件或筆記中嵌入一張靜態圖片,而聆聽者不需要實際聽到音訊
  • 在編輯之前,為 Podcast 單集、音樂示範或語音備忘錄製作一張參考圖片
  • 以視覺方式比較兩段音訊剪輯,而不需要開啟完整的音訊編輯器
  • 在裝置上保留一張私密的離線錄音圖片作為個人筆記

因為所有處理都在裝置上的 Safari 中進行,你不需要安裝第三方應用程式、授予麥克風權限,或把檔案傳送到遠端伺服器。對於偏好將錄音保留在本機的使用者而言,這是一項有意義的限制,而非只是行銷話術。瀏覽器的 Web Audio 解碼器只會在你選擇檔案時執行,而產生的 AudioBuffer 會在峰值擷取步驟中被消耗,不會離開這個頁面。

在 iPhone 的 Safari 中從音訊製作波形圖片

  1. 把你想要視覺化的音訊檔移至 iPhone 的「檔案」App 中,可以從另一個 App 使用「儲存到檔案」、透過 AirDrop 傳送,或在 Safari 中下載。
  2. 開啟 Safari 並前往 Audio Waveform Generator 頁面。
  3. 點擊檔案選擇器,並從「檔案」中選擇音訊檔。Safari 會將所選檔案傳遞給頁面;若目前的 iOS 版本支援該編解碼 (codec),Web Audio 就會在背景解碼。
  4. 使用頁面上的控制項,將 SVG 寬度設定在 320 到 1600 像素之間,高度設定在 120 到 600 像素之間。透過六位數十六進位的選色器挑選背景顏色與波形顏色。
  5. 點擊「Generate」(產生)。工具會將解碼後的幀 (frame) 分割成所要求的寬度、1000 與解碼幀數三者中較小的一個數量,然後從每個區塊在所有接受的聲道中從最小值到最大值畫出一條垂直線。
  6. 檢查所顯示的幀數與峰值欄位數量,如果你想驗證標記,可以展開的文字檢查器中查看 SVG,然後點擊「Download」(下載) 將 SVG 存回「檔案」。

如果你變更任何選項或選擇不同的檔案,舊的物件 URL 會在產生新圖片之前被撤銷,因此舊圖片不會用來代表新的輸入。若 Safari 拒絕你的檔案,最常見的原因包括:不支援的編解碼、檔案超過 50 MiB、長度超過 5 分鐘、聲道數超過 8、取樣率超出 8000 到 192000 Hz,或是總頻道-取樣數超過 3000 萬。

SVG 輸出包含什麼內容以及如何使用它

下載的檔案是基於文字的 SVG。它包含一個你所選顏色的背景矩形、一組以波形顏色繪製的峰值線、一個符合你所設定像素尺寸的 viewBox,並且不包含內嵌音訊、從原始檔名複製而來的詮釋資料,或隱藏的來源資料。垂直座標是確定性的 (deterministic):圖片的中心位於所要求高度的一半,而滿刻度的正或負取樣會到達該中心上下各 45% 的高度。這個刻意保留的邊距意味著,即使是非常大聲的錄音,圖片頂部和底部仍然有可見的餘裕 (headroom),而不會被截斷。

對於立體聲或多聲道檔案,這張圖片是一張組合的峰值總覽圖。一個區塊可以從某個聲道取得最小值,從另一個聲道取得最大值,結果並不會顯示獨立的左右音軌、不會在視覺上保留聲道身分,也不會將聲道平均成新的音訊訊號。如果你需要個別聲道的音軌,應該使用能將每個聲道分別顯示為獨立音軌的音訊編輯器。這張圖片也不是頻譜圖 (spectrogram):時間由左到右進行,但每個欄位的垂直線代表的是該區塊中取樣振幅的範圍,而不是頻率內容。

iPhone 上 Safari 使用者會遇到的限制

限制數值在邊界時會發生什麼
壓縮檔大小最大 50 MiB超過的檔案會被整個拒絕
解碼後時長最大 5 分鐘超過的剪輯會被整個拒絕,而不是被裁切
聲道數1 到 8超過的聲道數會回傳錯誤
取樣率8,000 到 192,000 Hz超出範圍的取樣率會被拒絕
總頻道-取樣數最大 3000 萬即使是小的壓縮檔,解碼後仍可能超過此上限
SVG 寬度320 到 1600 px超出此範圍,控制項會拒絕該數值
SVG 高度120 到 600 px超出此範圍,控制項會拒絕該數值
峰值欄位數min(width, 1000, decoded frame count)短剪輯所能產生的獨立測量數不會超過其本身包含的數量

這些限制的存在是因為 Web Audio 在執行峰值步驟之前,會先把壓縮檔展開成浮點數的聲道陣列,因此即使是小的 WAV,解碼後的緩衝區也可能比磁碟上的大小大得多。3000 萬的頻道-取樣預算就是為了防止這種膨脹的實際防線。如果「語音備忘錄」中的語音備忘錄太長,可以先用 Audio Cutter 將它裁剪到限制範圍內,讓波形產生器能順利完成工作。

關於 Safari 音訊解碼的 iPhone 專屬注意事項

Safari 支援的音訊編解碼是由 iOS 決定,而不是由副檔名或 MIME 標籤決定,這就是為什麼 MP3、M4A、AAC、WAV、Ogg、WebM 或 FLAC 檔案,如果目前的 iOS 版本無法解碼該特定變體,仍然會被拒絕。如果你的檔案被拒絕,實際的變通方法是先用桌面工具將它轉換一次,成為 iOS 能可靠解碼的 WAV 或 AAC 檔案,或是從來源 App 重新匯出。這個頁面不會悄悄退而求其次進行部分解碼;不支援的檔案會直接產生錯誤。

兩個 iPhone 上的小習慣可以讓操作流程更順暢。第一,把原始音訊檔存放在你瀏覽時所使用的同一個「檔案」資料夾中,這樣檔案選擇器就能快速定位到正確的項目。第二,下載 SVG 之後,在 Safari 中點擊下載通知並選擇「儲存到檔案」,讓波形圖片與原始音訊放在一起。接著,你可以將 SVG 拖到「備忘錄」中、附加到訊息裡,或在任何支援 SVG 的編輯器中開啟。峰值波形並不是經過校準的響度計量表,因此兩段峰值相似的錄音,聽起來可能會因為長度、頻率平衡、動態範圍與播放條件的不同而有很大的差異;請將這張圖片視為視覺參考,而不是測量結果。

如果你正在權衡選項,Generate Audio Waveform in Premiere Pro with SVG 有詳細介紹。

如果你正在權衡選項,Beat Maker Online on iPhone: Build a 16-Step Drum Loop 有詳細介紹。