21KB歌曲被装进8个二维码

创作者用 EnCodec 将一首约 2.9MB 的歌曲编码为约 21KB Token,并打印成 8 个二维码。实验有趣,但压缩率、纠错能力和长期解码依赖都值得重新审视。
一张纸,装下了一首歌
一位名为 Makestreme 的创作者近日展示了一种颇具赛博朋克感的“纸质磁带”:他把一首时长约 2 分钟、原始文件约 2.9MB 的 MP3 歌曲转换成约 21KB 数据,再拆成 8 个二维码,分别打印在纸张正反两面。
这张纸没有保存 MP3 文件,而是保存了能够被 Meta EnCodec 解码器还原为音频的离散 Token。扫描二维码、按编号拼接数据,再加载对应模型,歌曲才能重新播放。

这项实验真正有价值的部分,不是“二维码也能存歌曲”——任何二进制文件都能被切片后塞进二维码——而是它直观展示了神经音频编解码器正在改变音频的存储形态。过去保存音乐,存的是经过变换和量化的波形参数;现在保存音乐,也可以存一串由神经网络理解和生成的音频 Token。
EnCodec 压缩的不是 MP3,而是音频表征
EnCodec 是 Meta 开源的一种神经音频编解码器,它使用神经网络将音频波形转换成离散 Token,再由配套解码器把 Token 还原为波形。
传统 MP3、AAC 和 Opus 主要依靠人工设计的信号处理流程,利用人耳听觉掩蔽效应,丢弃不容易被察觉的信息。EnCodec 则把大量工作交给训练得到的编码器:编码器先把连续波形压缩到低维潜在空间,再通过残差向量量化,也就是 RVQ,将潜在表示映射为一组离散码本索引。
这些索引就是此次被打印到纸上的 Token。它们不是歌词、音符或 MIDI,也不是可以直接播放的声音,而更像是一本只有指定翻译器才能读懂的“声音速记”。
**残差向量量化是使用多层码本逐步逼近连续信号的量化方法。**第一层码本先描述声音的大致轮廓,后续码本继续编码前一层没有覆盖的细节;启用的码本越多,码率和音质通常越高。EnCodec 因而可以通过调整量化层数,在 1.5 kbps、3 kbps、6 kbps等不同带宽档位间切换。
根据项目披露的信息,Makestreme 选择了 EnCodec 的 3 kbps 模式。恢复后的歌曲仍具有较好的可听性,而继续降到 1.5 kbps 后,失真开始变得明显。这符合神经编解码器的典型表现:它能在极低码率下保住旋律、人声和节奏结构,但高频纹理、混响尾音、瞬态打击乐和复杂乐器分离度更容易受损。
21KB 与 3 kbps,数字其实对不上
**公开报道中的“约 2 分钟、3 kbps、21KB”存在明显的算术疑点。**如果一段音频真的持续 120 秒,并且有效码率稳定为 3 kbps,那么理论净数据量应为:
- 3,000 bit/s × 120 s = 360,000 bit
- 360,000 bit ÷ 8 = 45,000 byte
- 即约 45KB,而不是 21KB
21KB 对应 120 秒音频时,有效码率只有约 1.4 kbps。另一种可能是,实际歌曲长度更接近 56 秒;也可能项目对 Token 又做了熵编码或通用压缩;还可能“3 kbps”只是模型配置档位,而 21KB 仅统计了某一部分有效载荷。
在没有完整原始文件、Token 序列和封装格式可供复核之前,21KB 应被视为项目作者给出的实验结果,而不能直接等同于“2 分钟音频以恒定 3 kbps 存储”。对开发者而言,这是比猎奇标题更重要的细节:模型标称带宽、Token 理论位宽、序列化体积和最终文件大小并不总是一回事。
**“从 2.9MB 缩到 21KB,体积缩小 99.9%”同样不够准确。**按十进制单位计算,21KB 约为 2.9MB 的 0.724%,对应缩小约 99.28%,压缩倍数约为 138 倍。99.28% 已经非常夸张,没有必要再四舍五入成容易误导读者的 99.9%。
更关键的是,2.9MB 的 MP3 本身已经是有损压缩文件,用它与 EnCodec Token 比较,只能说明最终文件体积差异,不能代表 EnCodec 相对原始 PCM 音频的完整压缩能力。如果原始音频是 24kHz、16-bit、单声道 PCM,两分钟数据约为 6.9MB;若是 44.1kHz、16-bit、双声道,则约为 21.2MB。
8 个二维码不是噱头,而是容量妥协
**二维码是将二进制数据编码成二维黑白模块、并依靠纠错码提高可恢复性的光学存储格式。**它适合打印、拍照和离线传递,但容量远小于现代存储介质。
项目测试称,单个二维码实际可容纳约 3.3KB 二进制数据,因此约 21KB 的 Token 文件被拆成 8 份。每份数据前增加 1 字节编号,用于扫描后恢复正确顺序;纸张正面放置 4 个二维码,背面再放置 4 个,视觉上模仿磁带和唱片的 A、B 面结构。
单个标准 QR Code 的容量会受到版本、纠错等级和编码方式共同影响。以最高密度的 Version 40 为例,标准字节模式在最低 L 级纠错下的理论容量约为 2,953 字节;如果数据先经过其他文本编码,实际有效二进制容量还会变化。因此,“3.3KB”更适合理解为该项目生成和封装流程中的实测口径,而不是所有二维码都能稳定达到的标准容量。
**项目为了塞入更多数据,选择了最低的 L 级纠错能力。**L 级通常只能容忍约 7% 的码字损坏,具体恢复能力还取决于污损位置和分布。纸张出现折痕、墨水脱落、反光、缩放失真或打印机走纸误差,都可能让某一张二维码无法识别。
这让“纸质存储”呈现出一个明显矛盾:纠错冗余越多,长期可靠性越高,但可用容量越少;数据压得越满,作品越惊艳,却越接近一次性演示。项目目前每个分片只有顺序编号,没有披露跨二维码的 Reed-Solomon 冗余、奇偶校验分片或喷泉码设计。一旦其中一张严重损坏,整首歌曲就可能缺失一段 Token,甚至无法被正常解码。
更稳妥的工程方案是减少单码负载、提高二维码纠错等级,并额外加入校验哈希和跨分片冗余。例如把 8 个数据分片扩展为 10 个,其中任意 8 个即可恢复原文件。代价只是多打印两个二维码,却能显著降低单点损坏风险。
它和 MP3、Opus 不是同一种取舍
**神经音频编码器的优势是极低码率下的感知质量,代价则是更高的计算成本和模型依赖。**下面的对比更能说明这项实验究竟牺牲了什么。
| 方案 | 典型码率 | 解码依赖 | 计算需求 | 兼容性 | 极低码率表现 | |---|---:|---|---|---|---| | MP3 | 64-320 kbps | 通用软件或硬件解码器 | 低 | 极高 | 低于约 32 kbps 后劣化明显 | | Opus | 6-510 kbps | 标准 Opus 解码器 | 低至中 | 高 | 语音场景尤其强,音乐低码率也较成熟 | | EnCodec | 1.5-24 kbps 等档位 | 对应神经网络模型、配置与 Token 格式 | 中至高 | 较低 | 1.5-6 kbps 区间仍可保持内容结构 | | 纸上二维码 Token | 取决于上层编码 | 扫描器、拼接程序、EnCodec 模型 | 高 | 很低 | 容量小,但容错与长期可读性较弱 |
MP3 和 Opus 的核心优势不是绝对压缩率,而是几十年后仍有较大概率找到兼容解码器。EnCodec Token 的可播放性则绑定模型权重、代码版本、采样率、码本结构、归一化方式和封装规则,只保存 21KB Token 并不足以构成真正自描述的音频档案。
**模型依赖是这张“纸质磁带”最大的隐形体积。**纸上看似只有 21KB,但播放时还需要体积远大于歌曲本身的 EnCodec 模型,以及 PyTorch或其他推理环境。从系统角度看,这不是用 21KB 独立保存一首歌,而是让许多歌曲共同复用一个大型解码器。
这种结构并不荒谬,甚至与现代视频编码器很相似:解码器成本只支付一次,之后每个内容文件都能受益。问题在于,二维码可以保存几十年,神经网络软件栈却未必可以。若目标真是长期档案,至少应同步保存模型权重哈希、代码版本、配置文件、Token 打包规范以及一个可独立构建的解码实现。
LoRa 传 21KB,为什么要等一个半小时
**LoRa 是一种面向低功耗、远距离通信的扩频无线技术,优势是覆盖距离和链路预算,而不是传输大文件。**Makestreme 还使用两块 ESP32 开发板和 REYAX RYLR998 LoRa 模块,在 866MHz 频段传输这份约 21KB 的歌曲数据。
项目将文件拆成每包 160 字节,并使用确认应答和重传机制保证完整性。按 21KB 估算,总共需要约 134 个数据包。发送程序在收到每个数据包的 ACK 后固定等待 40 秒,再继续发送下一包。
仅固定等待时间就达到 134 × 40 秒,也就是 5,360 秒,约 89.3 分钟。加上实际发送、接收、校验和可能发生的重传,一首歌传输约一个半小时并不意外。
这个结果更多反映了项目协议实现,而不是 LoRa 的绝对速度上限。40 秒的固定等待相当保守,开发者可以通过滑动窗口、批量确认、自适应超时和前向纠错缩短传输时间。但在受限频段中,还必须遵守当地发射功率、占空比和频谱使用规则,不能简单通过连续发送解决问题。
21KB 对互联网来说几乎可以忽略,对低功耗远距离无线链路却已经是一笔不小的数据。神经音频 Token 因而可能适合应急广播、低带宽遥测附带语音、离线设备提示音分发等场景,但音乐传输是否值得牺牲 90 分钟和复杂解码环境,仍然要看具体需求。
真正值得关注的是“Token 原生媒体”
**Token 原生媒体是直接存储和传输模型内部离散表示,而不是传统波形或像素数据的媒体形态。**这次实验虽然只是创客项目,却触及了生成式 AI 基础设施中的一个重要方向:音频可以在 Token 域内被压缩、预测、编辑和生成,不必每一步都还原成完整波形。
对语音模型而言,离散音频 Token 可以与文本 Token 放在相似的序列建模框架中。模型既能预测下一个文字,也能预测下一段声音;同一套表示还可以用于语音生成、音乐续写、音色转换和低带宽通信。
这也是 EnCodec 的意义超过普通编解码器的原因。它不仅要让声音“占得更小”,还要把声音变成模型更容易处理的符号序列。Meta 公开的 EnCodec 代码与论文已经展示了这种路径,后续不少语音和音乐生成系统也采用了相近的神经音频 Token 思路。
纸质二维码只是一个极端且直观的载体。它把原本藏在模型内部的 Token 拿出来,让人看到:当媒体被离散化后,一首歌确实可以变成几页数字、一串无线数据包,或者几个能被摄像头读取的方块。
这项实验有趣,但还称不上存档方案
**这张纸证明了神经音频 Token 足够小,却没有证明它足够可靠。**它在创意展示、编解码教学和低带宽通信实验上很成功,但如果以长期保存为目标,普通 microSD、光盘甚至直接打印高纠错密度的数据归档格式都更实用。
开发者复现类似项目时,最值得补上的不是更激进的压缩率,而是完整性设计:
- 记录 EnCodec 模型名称、采样率、带宽档位和代码提交版本;
- 为完整 Token 文件和每个分片加入 SHA-256 校验值;
- 使用更高二维码纠错等级,并保留跨分片恢复能力;
- 把解码流程和封装规范一并归档,而不是只保存模型 Token;
- 分别测量标称码率、序列化体积和压缩后体积,避免混用数字;
- 使用客观指标与盲听测试比较 1.5 kbps、3 kbps 和传统 Opus,而不是只描述“还能听”。
最终来看,这个项目最有启发性的地方不是“2.9MB 变成 21KB”,而是它让神经音频 Token 从论文里的抽象概念,变成了一张可以拿在手里、折叠、扫描甚至邮寄的纸。至于它是不是下一代磁带,答案显然是否定的;但作为一次关于极低码率、模型依赖和数字保存边界的实验,它足够精彩。
参考来源
- IT之家:创客把 2.9MB 歌曲压缩至 21KB,用 8 个二维码打印到纸上保存:项目流程、二维码数量、LoRa 传输设置及测试结果的主要信息来源。
- Meta EnCodec GitHub 仓库:EnCodec 官方开源实现、模型配置与神经音频编解码原理说明。
- Hugging Face Transformers:EnCodec 文档:EnCodec 模型结构、输入输出和不同带宽配置的技术资料。



