音訊轉 Base64

把 MP3、WAV、OGG 等音訊檔案編碼為 Base64,用於 HTML、JavaScript 或語音識別介面請求。先在內建播放器中試聽,再複製純 Base64 字串或 Data URI。

完全在瀏覽器中執行,不會上傳任何資料。

使用方法

  1. 將音訊檔案拖到上傳區域,或點選選擇檔案,支援 MP3、WAV、OGG、M4A、FLAC 等格式。
  2. 在預覽播放器中試聽,確認是正確的聲音。
  3. 用於 HTML audio 元素時選擇 Data URI,用於介面請求時選擇純 Base64。
  4. 複製結果,或下載為 .txt 檔案。

在網頁中播放 Base64 音訊

帶有音訊 MIME 型別的 Data URI,可以用在瀏覽器需要音訊 URL 的任何地方:

<audio controls src="data:audio/mpeg;base64,..."></audio>

// JavaScript:點選按鈕時播放一段短音效
const click = new Audio('data:audio/wav;base64,...');
button.addEventListener('click', () => click.play());

在訪問者與頁面產生互動之前,瀏覽器通常會阻止聲音自動播放,所以請在點選或按鍵事件中呼叫 play(),不要在頁面載入時直接播放。

適合使用 Base64 音訊的場景

  • 簡短的介面音效。只有幾 KB 的點選聲、通知提示音和報錯音可以直接放進 JavaScript 包中,無需額外請求,隨時都能立即播放。
  • 離線和單檔案應用。小遊戲、自助終端、電子課件以及必須脫離伺服器、靠單個檔案執行的 HTML 報告,可以把音效內嵌在檔案裡。
  • 語音識別介面。很多雲端語音識別服務允許在 JSON 請求中用 Base64 欄位(常見名稱為 content 或 audio)提交一段短錄音。這些服務通常對格式、取樣率和聲道數有要求,而本工具會按原樣編碼檔案,不會轉換格式或重新取樣。
  • 測試樣本。音訊處理程式碼的測試可以把一小段樣本儲存為字串常量。

不適合使用 Base64 的情況

Base64 會讓體積增加約三分之一,而且瀏覽器必須收到整個字串後才能開始播放,既不能流式傳輸,也無法單獨快取,拖動進度時也不能按範圍請求。一段 5 分鐘、128 kbps 的 MP3 約為 4.8 MB,編碼後會在 HTML 或 JavaScript 中變成約 6.4 MB 的文字,而且該檔案每次更新都要重新下載。音樂、播客等較長的錄音,請使用普通音訊檔案。經驗上,只把幾秒鐘的聲音內嵌到程式碼裡。

音訊格式與 MIME 型別

格式Data URI 字首說明
MP3data:audio/mpeg;base64,體積小,所有瀏覽器都能播放
WAVdata:audio/wav;base64,未壓縮,體積大,適合極短的聲音
OGG(Vorbis、Opus)data:audio/ogg;base64,體積小,舊版 Safari 無法播放
M4A(AAC)data:audio/mp4;base64,體積小,相容性好
FLACdata:audio/flac;base64,無損,比 MP3 和 AAC 大得多

在不同的作業系統上,檔案的型別可能顯示為 audio/x-wav、audio/x-m4a 等變體。瀏覽器一般也能播放這些型別;如果某個平臺要求特定型別,可以手動修改字首。

常見問題

MP3 的 Data URI 應該用什麼 MIME 型別?
正式註冊的型別是 audio/mpeg,所以 Data URI 以 data:audio/mpeg;base64, 開頭。網上也常見 audio/mp3,部分瀏覽器可以接受,但 audio/mpeg 才是最穩妥的寫法。
為什麼預覽播放器無法播放我的檔案?

播放器依賴瀏覽器內建的解碼器。如果瀏覽器不支援某種格式(例如舊版 Safari 不支援 OGG),預覽就不會有聲音,但 Base64 輸出仍然是檔案的完整副本。

Base64 音訊最長可以多長?

工具可以編碼最大 100 MB 的檔案,但這樣的體積遠不適合內嵌。用於內嵌時,建議控制在幾秒鐘、幾十 KB 以內。用於語音識別介面時,請檢視內聯音訊的大小限制,它往往比上傳到儲存服務的音訊低得多。

可以在這裡把 MP3 轉成 WAV 嗎?

不可以。工具會按原樣編碼檔案,不改變格式、位元速率或採樣率。請先用音訊編輯軟體或 FFmpeg 等命令列工具轉換格式,再對結果進行編碼。

我的音訊會被上傳嗎?

不會。編碼和播放都在瀏覽器中完成,檔案始終保留在你的裝置上。