音频转 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 等命令行工具转换格式,再对结果进行编码。

我的音频会被上传吗?

不会。编码和播放都在浏览器中完成,文件始终保留在你的设备上。