使い方
- 音声ファイルをドロップエリアにドラッグするか、クリックして選択します。MP3、WAV、OGG、M4A、FLAC などの形式に対応しています。
- プレビューのプレーヤーで再生し、正しい音声かどうかを確認します。
- HTML の audio 要素には「Data URI」、API リクエストには「Base64」を選びます。
- 結果を「コピー」するか、.txt ファイルとして「ダウンロード」します。
Web ページで 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 の音声が適している用途
- 短い UI サウンド。数 KB 程度のクリック音、通知音、エラー音は JavaScript バンドルの中に含めておけるので、追加のリクエストなしですぐに再生できます。
- オフラインアプリや単一ファイルのアプリ。ゲーム、キオスク端末、e ラーニング教材、HTML レポートなど、サーバーなしに 1 つのファイルで動作する必要があるものは、音声をインラインで持たせられます。
- 音声認識 API。多くのクラウド音声認識サービスは、短い録音を JSON リクエスト内の Base64 フィールド(
contentやaudioという名前が多い)で受け付けます。通常は特定の形式、サンプリングレート、チャンネル数が求められます。このツールはファイルをそのままエンコードするだけで、形式の変換やリサンプリングは行いません。 - テストのフィクスチャ。音声処理コードのテストでは、ごく小さなサンプルを文字列定数として保持できます。
音声に Base64 を使うべきでない場合
Base64 にするとサイズが約 3 分の 1 増え、ブラウザは文字列全体を受信するまで再生を開始できません。ストリーミングも、個別のキャッシュも、シーク用の Range リクエストも使えません。128 kbps で 5 分の MP3 は約 4.8 MB あり、HTML や JavaScript の中では約 6.4 MB のテキストになって、そのファイルが変更されるたびに再ダウンロードされます。音楽、ポッドキャスト、その他の長い録音には、通常の音声ファイルを配信してください。目安として、インライン化するのは数秒程度の音声に限るのがよいでしょう。
音声形式と MIME タイプ
| 形式 | data URI のプレフィックス | 備考 |
|---|---|---|
| MP3 | data:audio/mpeg;base64, | サイズが小さく、すべてのブラウザで再生できる |
| WAV | data:audio/wav;base64, | 非圧縮でサイズが大きい。ごく短い音声なら問題ない |
| OGG(Vorbis、Opus) | data:audio/ogg;base64, | サイズが小さい。古いバージョンの Safari では再生できない |
| M4A(AAC) | data:audio/mp4;base64, | サイズが小さく、幅広く対応している |
| FLAC | data:audio/flac;base64, | 可逆圧縮。MP3 や AAC よりはるかに大きい |
OS によっては、audio/x-wav や audio/x-m4a のような別名のタイプが報告されることがあります。ブラウザは通常これらも再生できます。プラットフォームが特定のタイプを必要とする場合は、プレフィックスを書き換えてください。
よくある質問
data URI での MP3 の MIME タイプは何ですか?
audio/mpeg なので、data URI は data:audio/mpeg;base64, で始まります。audio/mp3 もよく見かけ、受け付けるブラウザもありますが、audio/mpeg を使うのが確実です。プレビューでファイルが再生されないのはなぜですか?
プレーヤーはブラウザに組み込まれたコーデックを使用します。古いバージョンの Safari での OGG のように、ブラウザが対応していない形式ではプレビューは無音のままですが、Base64 の出力はファイルの正確なコピーです。
Base64 の音声クリップはどのくらいの長さまで使えますか?
このツールは 100 MB までのファイルをエンコードできますが、埋め込むには大きすぎます。インラインで使う場合は、数秒、数十 KB 程度に抑えてください。音声 API の場合は、インライン音声の上限を確認してください。ストレージにアップロードした音声の上限よりかなり低いことがよくあります。
ここで MP3 を WAV に変換できますか?
いいえ。このツールはファイルをそのままエンコードし、形式、ビットレート、サンプリングレートは変更しません。先にオーディオエディターや FFmpeg などのコマンドラインツールで音声を変換してから、その結果をエンコードしてください。
音声はアップロードされますか?
いいえ。エンコードと再生はブラウザ内で行われ、ファイルがお使いのデバイスから出ることはありません。