音声を Base64 に変換する方法
- 音声ファイルを枠にドロップするか、ファイル選択で 1 つ以上選びます。MP3、WAV、OGG、M4A、AAC、FLAC のいずれも使えます。
- プレビューで再生し、目的のクリップであることを確かめます。
- 出力形式は最初 Data URI になっています。API 用ならプレーン Base64、名前・形式・サイズ・データをまとめて得たいなら JSON を選びます。
- 出力をコピーを押します。長い録音には .txt で保存を使ってください。
Base64 から音声形式を見分ける
| 形式 | MIME タイプ | Base64 の先頭 |
|---|---|---|
| ID3 タグ付きの MP3 | audio/mpeg | SUQz |
| タグなしの MP3 | audio/mpeg | // と英字 1 文字(例://uQ) |
| WAV | audio/wav | UklGR、12〜16 文字目に XQVZF |
| Ogg(Vorbis、Opus) | audio/ogg | T2dnUw |
| FLAC | audio/flac | ZkxhQw |
| M4A(AAC) | audio/mp4 | AAAA + 1 文字 + GZ0eXBNNEEg |
| WebM 音声 | audio/webm | GkXfo |
Data URI には、ブラウザがそのファイルについて報告する MIME タイプを使います。報告がない場合は、拡張子から選びます。MP3 と M4A の AAC は現行のすべてのブラウザで再生できます。Ogg、FLAC、WebM の対応状況も良好ですが、そこまで普遍的ではないので、ユーザーの環境で使う形式をテストしてください。
Base64 の音声が役立つ場面
- クリック音、通知音、ゲームの短い効果音は 1 つの HTML ファイルにインライン化できるので、ページやゲームがサーバーなしで 1 ファイルから動きます。
- 音声のテキスト化、翻訳、音声解析のサービスの多くは、録音を JSON のフィールドに Base64 で、エンコーディングやサンプルレートと一緒に受け付けます。
- 短いサンプルを Base64 の定数にしておけば、リポジトリにバイナリファイルを置かずに音声処理のパイプラインをテストできます。
音楽、ポッドキャスト、ウェブサイト上の数秒を超える音声は、ファイルへのリンクにしてください。ブラウザはリンクされたファイルをストリーミングし、範囲を指定して取得しますが、Data URI は再生が始まる前に全体がメモリに載っている必要があります。
エンコードした音声の大きさ
Base64 はファイルサイズの 4/3 なので、文字数はビットレートに比例します。
| 音声 | 10 秒 | Base64 |
|---|---|---|
| MP3、128 kbps | 160,000 バイト | 213,336 文字 |
| WAV、16 kHz モノラル 16 ビット(音声) | 320,044 バイト | 426,728 文字 |
| WAV、44.1 kHz ステレオ 16 ビット(CD) | 1,764,044 バイト | 2,352,060 文字 |
CD 品質の WAV は 1 分で Base64 が 1,400 万文字を超えます。形式ごとの詳細は MP3 を Base64 にと WAV を Base64 ににあり、受け取った Base64 文字列の再生や保存は Base64 を音声にでできます。
JavaScript で Base64 の音声を再生する
const beep = new Audio("data:audio/mpeg;base64,SUQzBAAAAAAAI1RTU0UAAAAPAAADTGF2...");
button.addEventListener("click", () => beep.play());
ブラウザはユーザー操作なしで始まる音声をブロックするので、play() はクリックやキー入力のハンドラーから呼び出してください。デコードやその他のバリエーションは JavaScript での Base64 で扱っています。
よくある質問
HTML で Base64 の音声を再生するにはどうすればいいですか?
<audio> 要素の src に Data URI を入れます:<audio controls src="data:audio/mpeg;base64,SUQz..."></audio>。JavaScript では new Audio(dataUri).play() で同じことができますが、ユーザー操作の後に実行する必要があります。
Base64 が最も短くなる音声形式はどれですか?
圧縮された形式です。1 秒あたりで比べると、MP3、AAC(M4A)、Opus は WAV や FLAC の何分の 1 という小ささで、Base64 はどれにも同じ 3 分の 1 を加えます。音声(話し声)なら、低ビットレートのモノラルファイルが最も短くなります。
複数の音声ファイルを一度に変換できますか?
できます。まとめてドロップし、一覧から表示で 1 つを選ぶか、すべて JSON でコピーで各ファイルの名前、形式、サイズ、Base64 を 1 つの配列として取得します。小さなゲームのサウンドマップにぴったりです。