上传文件
  1. base64hub
  2. 文件工具
  3. Base64 转 WAV

Base64 转 WAV

粘贴 Base64 WAV,即可播放并下载 .wav 文件。如果播放不了,hex 转储中的文件头会告诉你原因;没有文件头的原始 PCM 只需几行代码就能补上文件头。

免费 无需注册,不限次数 本地 不上传任何内容 文件头 在 hex 转储中查看编码、采样率和声道数 更新于 2026年10月27日
输入 –输出 –大小 –

在你的浏览器中处理。此页面无法将你的数据发送到任何地方: 我们如何确认

如何将 Base64 解码为 WAV

  1. 把 Base64 粘贴到 Base64 或 data URI。带有 data:audio/wav;base64, 或 data:audio/x-wav;base64, 前缀也没问题。
  2. 在播放器中播放。时长 以分和秒显示音频长度。
  3. 点击 显示 hex 转储 查看前 512 个字节;下一节会说明要看哪些地方。
  4. 点击 下载文件 保存 .wav。

解码和播放都在浏览器中进行。除 Cloudflare 的浏览量统计外,页面无权通过网络发送数据,因此语音录音会留在你的设备上。

在 hex 转储中读懂 WAV 文件头

WAV 文件以 12 字节的 RIFF 头开头,后面通常紧跟着描述音频的 fmt 块。在 hex 转储中,下面这些位置能告诉你手里是什么数据:

偏移(hex)字节数字段示例:16 kHz 单声道 PCM
004RIFF52 49 46 46
084WAVE57 41 56 45
142格式代码01 00
162声道数01 00(单声道)
184采样率80 3e 00 00(16,000)
222位深10 00(16)

所有数字都是小端序,所以 80 3e 00 00 就是 0x3e80,即 16,000。格式代码决定了浏览器能否播放该文件:

格式代码编码能否在 Chrome 中播放
01 00PCM能
03 0032 位浮点能
06 00、07 00A-law、µ-law(电话)能
02 00、11 00Microsoft ADPCM、IMA ADPCM不能
31 00GSM 6.10不能
fe ff可扩展格式:真正的编码写在块的后面,通常是 PCMPCM 能

所有浏览器都能播放 PCM,但对其他编码的支持各不相同,请在你的听众所用的浏览器中测试。浏览器无法解码文件时,会出现提示“你的浏览器无法播放此 WAV 文件。”,时长 显示“不适用”。下载的文件仍然是正确的,VLC 等桌面播放器能处理以上所有编码。

时长也可以从文件头算出来:时长等于 data 块的大小除以采样率 × 声道数 × 每个采样的字节数。两秒钟 16 kHz 单声道 16 位音频的采样数据是 64,000 字节,再加上至少 44 字节的文件头。

没有文件头的原始 PCM

语音类 API 经常以 16 或 24 kHz 的裸 16 位 PCM 采样返回音频,没有 RIFF 头。这些字节没有任何特征签名,所以工具会提示“这看起来不像 WAV(检测到:二进制)”,即使存成 .wav 扩展名也没有播放器能播放。请根据 API 文档中的采样率、声道数和采样大小,给它们加上文件头:

import base64, wave

with open("speech.b64") as f:
    pcm = base64.b64decode(f.read())

with wave.open("speech.wav", "wb") as w:
    w.setnchannels(1)
    w.setsampwidth(2)
    w.setframerate(24000)
    w.writeframes(pcm)

setsampwidth(2) 表示 16 位采样。两秒钟 24 kHz 单声道音频有 96,000 字节的 PCM,加上文件头后成为 96,044 字节的 WAV,以 UklGR 开头,在这里和任何播放器中都能播放。如果结果听起来太快、太慢或像噪音,说明采样率或采样格式不对;试试其他常见采样率,或者检查 API 发送的是不是 8 位 µ-law。详见 Python 中的 Base64。

WAV 页面上的其他格式

如果数据是其他音频格式,工具会指出来:例如提示“这看起来是 MP3,而不是 WAV。”,并提供 下载为 .mp3 按钮,播放器照样可以播放。WAV 文件很大,因此 API 和应用常常改用 MP3 或 Opus 来节省空间,而文档里还写着 WAV。关于体积差异和 WAV 文件的编码,请参阅 WAV 转 Base64;所有音频格式请参阅 Base64 转音频。

常见问题

怎么把 Base64 转换成 WAV 文件?

把 Base64 粘贴到上方,然后点击 下载文件,音频会保存为 decoded.wav。建议先在播放器里试听一下,确认内容是你想要的。

我的 Base64 应该是 WAV,工具却显示二进制,为什么?

WAV 文件以 RIFF 开头(Base64 中为 UklGR)。没有这个开头,你拿到的多半是原始 PCM 采样,很多语音 API 返回的就是这种数据;按照本页的方法,用 API 文档中的采样率给它加上文件头即可。

为什么有的 WAV 能播放,有的不能?

WAV 是一种容器,编码由文件头中的一个数字表示。普通 PCM 在哪里都能播放;ADPCM 和 GSM 常见于老式电话和语音信箱系统,通常无法在浏览器中播放。可以用 ffmpeg -i in.wav -c:a pcm_s16le out.wav 转换。