EnCodec
这是一份写给"完全没接触过 AI"的读者的精读笔记。语言尽量像聊天,公式全部翻译成人话。
一句话讲什么(TL;DR)
EnCodec 教神经网络把一段声音压成一串很小的整数、再几乎无损地还原回来——既比传统编解码器在极低码率下更清晰,又因为声音变成了"整数序列",让 AI 能像写字一样"写"出声音。
所以这一节是想说:EnCodec 是一个神经音频编解码器,它把连续声波变成离散 token,既省流量又给音频生成大模型铺了路。
这是个什么场景
你打过网络电话吗?信号不好时对方声音会变得"水下、金属、机器人味"。这背后是一个叫**音频编解码器(audio codec)**的东西在工作:
编码器把声音压缩成尽可能小的数据(省流量),解码器再把它还原成能听的声音。压得越狠,还原出来越糊。
论文开头给了个数字:2021 年互联网流量里 82% 是音视频流。所以"用更小的数据装下更好的声音"是个巨大的现实问题。
传统的做法(Opus、EVS 这些几十年打磨的编解码器)在中等码率(12–24 kbps,kbps = 每秒多少千比特)下已经很好,但到了极低码率(比如 3 kbps)就撑不住了——尤其对音乐这种复杂声音,糊得没法听。
同时,还有一件事传统编解码器做不到:把声音变成"离散 token"。近年 AI 生成语音/音乐(AudioLM、MusicGen 这些)的思路,是像语言模型写字一样一个 token 一个 token 地"写"声音。可声音本身是连续的波形,没法直接喂给"预测下一个 token"的模型。你需要一个东西先把声音切成离散的整数序列,生成完再还原回波形。
EnCodec 一箭双雕:既是极低码率下更清晰的压缩器,又是把声音变成离散 token 的"翻译官"。 前者服务通信/存储,后者服务音频生成大模型。
所以这一节是想说:音频编解码器要在"省流量"和"听得清"之间权衡;EnCodec 想在极低码率下同时做到清晰,还顺手把声音变成 AI 能生成的离散 token。

之前的人怎么做的,为什么不够好
方案 A:传统信号处理编解码器(Opus 2012、EVS 2014)。 类比:老工匠靠手工规则把声音里"人耳听不太出来的部分"扔掉。中高码率非常好用,但极低码率(≤3 kbps)尤其对音乐会严重失真。而且它们输出的是压缩比特流,不是"离散 token",喂不给生成模型。
方案 B:MP3。 类比:老牌音乐压缩,靠心理声学模型丢掉"听不见"的频率。64 kbps 音乐还行,但它是固定管线、没法端到端学习,也不产 token。
方案 C:早期神经编解码器(用 WaveNet、VQ-VAE 等)。 类比:让神经网络学着压缩和还原。有希望,但很多要么慢得没法实时(自回归 WaveNet 一个采样点一个采样点生成),要么质量不够稳。
方案 D:SoundStream(2021,本文最直接的前辈)。 类比:一个全卷积的编码器-解码器,用**残差向量量化(RVQ)**把中间表示离散化,再加对抗损失提质量。EnCodec 站在它肩膀上——保留 RVQ 这个核心,但在判别器、训练稳定性、熵编码上做了关键改进。
核心难题:要同时满足"实时(单 CPU 核就能跑)+ 极低码率高保真 + 支持多种码率一个模型搞定 + 输出可离散化的 token + 训练还得稳",这几条互相拉扯,没人一次全占。
所以这一节是想说:传统编解码器极低码率会糊也不产 token,早期神经方法慢或不稳,SoundStream 打好了地基但还有提升空间——EnCodec 来把这几条一锅端。
这篇论文的新想法
一句类比:想象一台特别聪明的"声音打字机"。它把一段声音看几眼,敲出一串很短的编号(就像把一句话记成一串字典页码),需要时再照着编号把声音一个音一个音"读"回来。EnCodec 就是这台打字机——而且它敲出来的是整数编号(token),所以 AI 也能拿去当"字"来生成新声音。
具体有四个关键创新,都是在 SoundStream 这个地基上的改进:
一个简单却强的判别器就够了。 以前提质量要堆好几种判别器(判别器 = 一个"挑刺网络",专门找生成声音里的瑕疵,逼编解码器改进)。EnCodec 发现:只用**一个多尺度的频谱判别器(MS-STFT)**就能生成高质量音频,训练还更简单更快。
一个"损失平衡器"让训练稳下来。 训练时有好几种损失(时域、频域、对抗、承诺损失),它们的数值大小天差地别,梯度一打架训练就崩。EnCodec 的平衡器把"每种损失该占总梯度的多大比例"直接定死,让权重变得可解释、可控,训练大幅稳定。
一个小 Transformer 再压 40%。 在离散 token 之上,再训一个轻量语言模型来做熵编码(把常出现的 token 用更短的码表示),能在几乎不掉质量的前提下把码率再降最多 40%,而且仍然快过实时。
一个模型支持多种码率、还能出 token。 靠 RVQ 的分层结构,训练时随机用不同层数,一个模型就能覆盖 1.5/3/6/12/24 kbps;而这套离散 token 正好能喂给音频生成大模型。
所以这一节是想说:EnCodec = SoundStream 的地基 + 四个升级(单判别器、损失平衡器、Transformer 熵编码、多码率一体化),既压得狠又听得清,还产出可生成的 token。
它分几步做的(方法)
这一节最详细。EnCodec 的系统 = 编码器 + 量化器 + 解码器,加上一套训练目标(重建 + 对抗 + 承诺损失 + 平衡器),再外挂一个可选的 Transformer 熵编码器。逐一拆解,每块按"类比 → 机制(输入→处理→输出)→ 为什么有用"讲。
先看整体数据流:
波形 x ──► 编码器 E ──► 连续表示 z ──► 量化器 Q(RVQ) ──► 离散码 [B, Nq, T]
(声音) (卷积+LSTM) (多级码本查表) (一串整数编号)
│
(可选) 小 Transformer 语言模型
+ 算术编码 = 再压最多40%
│
▼
还原波形 x̂ ◄── 解码器 G ◄── 量化后表示 z_q ◄────────── 反查码本求和 ────────┘
(听到的声音) (转置卷积+LSTM)
训练时另有一队"挑刺"的判别器(MS-STFT)盯着 x̂ 找瑕疵,逼解码器越还原越像真声音。
1. 编码器 / 解码器:卷积把声音"卷"成短表示
类比:把一长段声波像叠被子一样一层层卷起来,越卷越短、越卷越抽象;解码时再一层层展开还原。
机制(输入→处理→输出):
- 输入:一段波形 x(24kHz 单声道,或 48kHz 立体声)。
- 处理:编码器是"1D 卷积 + 若干下采样卷积块 + 一个两层 LSTM + 收尾卷积"。论文设 C=32 通道、B=4 个块、步长 (2,4,5,8)。每次下采样把序列变短、通道翻倍。LSTM 负责"记住时间上下文"。
- 输出:一个连续的潜在表示 z。关键数字:24kHz 下每秒输出 75 个潜在步,48kHz 下 150 个——也就是把每秒上万个采样点,压成几十个"时间步 × 通道"的向量。解码器是编码器的镜像(转置卷积),把 z_q 还原成波形。
两种模式:
- 可流式(streamable,低延迟):所有 padding 放前面,一收到 320 个采样点(约 13ms)就能吐出对应输出——初始延迟仅 13ms,适合实时通话。用权重归一化。
- 非流式(高保真):把输入切成 1 秒块、带 10ms 重叠、逐块归一化,初始延迟 1 秒,质量略高。
为什么有用:卷积 + LSTM 的结构在音频任务上久经考验;可流式设计让它能真的用在实时通信里,这是很多神经方法做不到的。
2. 残差向量量化(RVQ):把连续向量变成整数编号
类比:你要用有限的颜料盒画一幅画。第一遍用最接近的颜料涂个大概(第一个码本),然后看"还差多少"(残差),再用第二盒颜料补,再看差多少,再补……补几层后就很接近原画了。每一层"用了哪管颜料"就是一个整数编号。
机制(输入→处理→输出):
- 输入:编码器给的连续表示 z。
- 处理:向量量化就是"把一个向量替换成码本里最接近的那一条"。残差 VQ 是重复这个过程——量化后算残差,用第二个码本再量化残差,如此叠加多级。码本用指数移动平均(衰减 0.99)更新,没被用到的码本项会被替换以避免浪费。反向传播用"直通估计器"(假装量化是恒等函数)让梯度能穿过这个不可导的操作,再加一个"承诺损失"逼编码器输出靠近码本。
- 输出:一串离散整数 [B, Nq, T]——B 是批量,Nq 是用了几层码本,T 是时间步。用的时候把各层选中的码本项加起来变回向量喂给解码器。
关键数字:最多 32 个码本(48kHz 用 16 个),每个码本 1024 项(= 10 比特/码本)。训练时随机选 4 的倍数个码本,对应 24kHz 下 1.5 / 3 / 6 / 12 / 24 kbps 五种码率。
为什么有用:RVQ 是"一个模型支持多码率"的关键——想要更低码率就少用几层码本,想要更高质量就多用几层,不用重训。而且它天然产出离散 token,这正是音频生成大模型需要的输入。
3. 训练目标:重建 + 对抗 + 承诺,四种损失合力
类比:教徒弟做菜,你从三个角度打分——"味道像不像"(重建)、"有没有一眼看穿是新手做的"(对抗/判别器)、"步骤有没有偷懒"(承诺)。三种反馈合起来才教得好。
机制(输入→处理→输出):
- 重建损失:分时域和频域两部分。时域用 L1 距离(波形逐点比);频域在多个时间尺度上比 mel 频谱(64 个 mel 频段,STFT 窗口从 2^5 到 2^11),L1+L2 混合。人话:既要波形对,也要"听起来的频率成分"对。
- 对抗损失(判别器):用 MS-STFT 判别器——在多个尺度的复数 STFT 上"挑刺"。5 个尺度,窗长 [2048,1024,512,256,128]。还加了"特征匹配损失"(让生成音频在判别器中间层的特征也像真音频)。
- 承诺损失:逼编码器输出靠近它被量化到的码本项。
- 输出:这些损失加权求和后反向传播,优化编码器 + 解码器。
关键消融(判别器怎么选):
| 判别器组合 | SI-SNR | ViSQOL | MUSHRA |
|---|---|---|---|
| MSD + Mono-STFT(SoundStream 用的) | 5.99 | 4.22 | 62.91 |
| MPD only | 7.35 | 4.24 | 60.7 |
| MS-STFT + MPD | 6.55 | 4.34 | 79.0 |
| MS-STFT only(EnCodec 选) | 6.67 | 4.35 | 77.5 |
含义:单用 MS-STFT(77.5)就远超 SoundStream 的组合(62.91),加 MPD 只再涨一点点(79.0)——所以论文选了"单 MS-STFT"这个简单方案。
为什么有用:只用频谱判别器既简化训练又提质量;多尺度频谱损失 + 特征匹配保证音质细节;承诺损失让量化器学得稳。
4. 损失平衡器:让"权重"变得可解释
类比:几个人合力推一辆车,但每个人力气天差地别(有人 1kg 有人 100kg)。你没法用"每人系数"直接协调。平衡器的做法是:先量每个人当前平均出多大力,再按你想要的比例重新缩放,让"系数"直接等于"这个人该占总推力的百分之几"。
机制(输入→处理→输出):
- 输入:各损失对模型输出的梯度。
- 处理:用指数移动平均(β=0.999)估计每种损失梯度的大小,然后按设定权重把它们缩放到"总梯度里各占多少比例",参考范数 R=1。反传的是缩放后的梯度,而不是原始的加权和。
- 输出:一个稳定、权重可解释的训练过程(若权重和为 1,每个权重就是该损失占总梯度的比例)。
关键消融(平衡器有多重要):论文附录 Table A.4 显示,在极端权重下(比如对抗权重 λg=100),不用平衡器 SI-SNR 直接崩到 -35.83(训练发散),用平衡器则稳在 8.41。这说明平衡器不是锦上添花,而是防崩的安全绳。
为什么有用:对抗训练里判别器梯度的尺度剧烈波动,最容易把训练搞崩。平衡器把这种波动吸收掉,还让调参从"猜数值"变成"定比例",省了大量调参功夫。
5. Transformer 熵编码:在 token 上再压一层
类比:摩尔斯电码里常用的字母(E、T)用短码、罕见的用长码,整体就更短。熵编码就是这个思路——常出现的 token 用更少的比特。
机制(输入→处理→输出):
- 输入:RVQ 产出的离散 token 序列。
- 处理:一个小 Transformer(5 层、8 头、200 通道、前馈 800、因果感受野 3.5 秒、在 5 秒序列上训练)预测"下一个时间步每个码本的概率分布",再配一个基于区间的算术编码器,按预测概率给 token 分配长短码。为避免编解码端浮点误差导致解码错误,概率被舍入到 1e-6 精度、用 2^24 的总区间宽度。
- 输出:更短的比特流。可把码率再降约 25–40%(比如 3 kbps 的模型降到 1.9 kbps),且整体仍快过实时。
为什么有用:这是"锦上添花但很实在"的一层——在不重训编解码器、不掉音质的前提下白捡 25–40% 压缩率。代价是初始延迟略增(要等下一帧部分到达),所以适合对延迟不敏感的场景(音乐流、存档)。
所以这一节是想说:编码器把声音卷成短表示,RVQ 把它变成多级整数编号(支持多码率、可当 token),四种损失 + 平衡器把训练教稳教好,可选的 Transformer 熵编码再白捡 25–40% 压缩率。核心巧思是"单频谱判别器 + 损失平衡器"这对稳定组合,和"RVQ 一体化多码率"。
下图概括本篇在「关键数字」节前的核心结果脉络(便于对照后文表格):
【EnCodec · 关键结果概览】
设定 / 数据 方法要点 主结果
│ │ │
▼ ▼ ▼
训练 ──► 方法核心 ──► …
评测 ──► 主指标提升 ──► ↑ 论文主结论
(对照下方表格中的原文数字与消融)

关键数字(What works)
数字来自论文正文与附录。数字本身不重要,重要的是它们指出哪个设计是关键。评价主要用 MUSHRA(人类打分,1–100,越高越好)和客观指标 SI-SNR、ViSQOL。
数字 1:3 kbps 的 EnCodec 打赢 12 kbps 的 Opus
| 模型 | 码率 | 熵编码后 | 干净语音 | 带噪语音 | 音乐 Set-1 | 音乐 Set-2 |
|---|---|---|---|---|---|---|
| 参考(原声) | - | - | 95.5 | 93.9 | 93.2 | 97.1 |
| Opus | 6.0 kbps | - | 30.1 | 19.1 | 20.6 | 17.9 |
| Opus | 12.0 kbps | - | 76.5 | 61.9 | 77.8 | 65.4 |
| Lyra-v2 | 3.0 kbps | - | 53.1 | 52.0 | 69.3 | 42.3 |
| Lyra-v2 | 6.0 kbps | - | 66.2 | 59.9 | 75.7 | 48.6 |
| EnCodec | 3.0 kbps | 1.9 kbps | 67.0 | 62.5 | 89.6 | 87.8 |
| EnCodec | 6.0 kbps | 4.1 kbps | 83.1 | 69.4 | 92.9 | 91.3 |
| EnCodec | 12.0 kbps | 8.9 kbps | 90.6 | 80.1 | 91.8 | 92.9 |
含义:EnCodec 3 kbps 在音乐上(89.6 / 87.8)平均好过 Lyra-v2 6 kbps 和 Opus 12 kbps——用一半甚至更低的码率达到更好音质。极低码率正是传统编解码器最吃亏的地方。
数字 2:熵编码白捡 25–40% 压缩
| 原始码率 | 熵编码后码率 | 相当于再压 |
|---|---|---|
| 1.5 kbps | 0.9 kbps | ~40% |
| 3.0 kbps | 1.9 kbps | ~37% |
| 6.0 kbps | 4.1 kbps | ~32% |
| 12.0 kbps | 8.9 kbps | ~26% |
含义:小 Transformer 的熵编码在不掉音质下再降码率,低码率降得更多(高码率码本太多,小模型建模不过来)。
数字 3:立体声 6 kbps ≈ MP3 64 kbps(压缩比差 10 倍)
| 模型 | 码率 | 压缩比 | MUSHRA |
|---|---|---|---|
| 参考 | - | 1× | 95.1 |
| MP3 | 64 kbps | 24× | 82.7 |
| Opus | 24 kbps | 64× | 82.9 |
| EnCodec | 6 kbps | 256× | 82.9 |
| EnCodec | 12 kbps | 128× | 88.0 |
含义:48kHz 立体声音乐上,EnCodec 6 kbps(压 256 倍)音质追平 MP3 64 kbps(压 24 倍)——用约十分之一的数据达到相当音质。
数字 4:实时性——13ms 延迟、10 倍实时
| 模型 | 初始延迟 | 编码 RTF | 解码 RTF | 加熵编码后 RTF |
|---|---|---|---|---|
| EnCodec 24 kHz | 13 ms | 9.8 | 10.4 | 1.6 |
| EnCodec 48 kHz | 1 s | 6.8 | 5.1 | 0.68 |
(RTF = 实时因子,>1 表示快过实时。在单核 MacBook Pro 2019 CPU 上、6 kbps 测。)
含义:24kHz 可流式版初始延迟仅 13ms、单 CPU 核跑到 10 倍实时——真的能用在实时通话。48kHz + 熵编码就慢过实时了(0.68),只适合存档/非实时场景。
数字 5:平衡器是防崩安全绳
| 对抗权重 λg | 用平衡器 SI-SNR | 不用平衡器 SI-SNR |
|---|---|---|
| 1 | 10.32 | 6.16 |
| 4 | 9.93 | 1.72 |
| 100 | 8.41 | -35.83 |
含义:权重越极端,不用平衡器越容易训练发散(-35.83);用平衡器则始终稳定。这解释了为什么损失平衡器是核心贡献之一。
所以这一节是想说:数据讲了四件事——极低码率下音质碾压传统编解码器、熵编码白捡 25–40%、实时可用(13ms/10×)、平衡器让训练不崩。
实验结果说明了什么
上一节列数字,这一节回答这些实验解决了哪些科学/工程问题。
问题一:神经编解码器真能在极低码率上打赢几十年打磨的传统编解码器吗?
能,而且差距很大。MUSHRA 主观评测里,EnCodec 3 kbps 在音乐上(~88)远超 Opus 12 kbps 和 Lyra-v2 6 kbps。传统编解码器的软肋正是"极低码率 + 复杂声音(音乐)",而这恰是 EnCodec 最亮的地方。这说明"端到端学出来的压缩"在人耳最挑剔的低码率区间确实有质变。
问题二:提质量非得堆一堆判别器吗?
不用。消融显示单个 MS-STFT 判别器(MUSHRA 77.5)就远超 SoundStream 的 MSD+Mono-STFT 组合(62.91),再加 MPD 只微涨到 79.0。这是个"少即是多"的工程结论——简化了训练管线、缩短了训练时间,还不掉质量。
问题三:对抗训练那么容易崩,怎么让它稳?
平衡器给了答案。附录消融里,极端权重下不用平衡器 SI-SNR 崩到 -35,用了就稳。更妙的是它让权重变"可解释"——权重和为 1 时,每个权重就是该损失占总梯度的比例。这把调参从玄学变成了工程。
问题四:流式(低延迟)会不会严重掉音质?
不会。Table 3 显示 6 kbps 下流式 SI-SNR 6.67 vs 非流式 7.46,只小幅下降,但换来了 13ms 的实时延迟。这个权衡对实时通话极其划算——两个传统基线(Opus 2.45、EVS 1.89)在同码率下的 SI-SNR 远低于 EnCodec。
问题五:为什么它对音频生成大模型这么重要(超出压缩本身)?
因为 RVQ 把连续声波变成了离散整数 token。这让"像语言模型写字一样一个 token 一个 token 地生成声音"成为可能。EnCodec 之后成了一大批音频生成工作(如 MusicGen、AudioGen 等)的标准"tokenizer + vocoder"——生成模型只管在 token 空间预测,EnCodec 负责把 token 还原成高保真波形。这是它影响力远超"一个编解码器"的根本原因。
所以这一节是想说:实验证明了神经编解码器能在低码率上质变、单判别器够用、平衡器能防崩、流式代价很小;而它最深远的意义是把声音离散成 token,成了音频生成大模型的地基组件。
你应该懂的几个新词
音频编解码器(Audio Codec):编码器压缩声音、解码器还原声音的一对组件。Opus/EVS/MP3 是传统的,EnCodec 是神经的。
码率 / 比特率(Bitrate, kbps):每秒用多少千比特来表示声音。越低越省流量但越容易糊。EnCodec 支持 1.5–24 kbps。
残差向量量化(RVQ, Residual Vector Quantization):分多级把连续向量替换成码本里最近的项,每级处理上一级的残差。产出离散整数编号,是"一个模型多码率 + 出 token"的关键。
码本(Codebook):一张"字典",里面存着一批代表性向量。量化就是把输入换成字典里最近的那条,记下它的编号。EnCodec 每个码本 1024 项。
判别器(Discriminator):对抗训练里专门"挑刺"的网络,找生成声音的瑕疵,逼生成端改进。EnCodec 用多尺度频谱判别器 MS-STFT。
MUSHRA:一种主观音质评测协议,让人听并打分 1–100,含隐藏参考和低锚,用来严谨比较音质。
SI-SNR / ViSQOL:客观音质指标。SI-SNR 是尺度无关的信噪比,ViSQOL 是模拟人耳的质量分。数字越高越好。
STFT(短时傅里叶变换):把声音切成小片、看每片的频率成分,得到"频谱图"。EnCodec 的判别器和频域损失都建在它上面。
熵编码 / 算术编码(Entropy / Arithmetic Coding):常出现的符号用短码、罕见的用长码,把数据进一步压缩。EnCodec 用小 Transformer 预测概率来驱动它。
实时因子(RTF, Real-Time Factor):音频时长 ÷ 处理时长。>1 表示处理比播放还快,即可实时。
可流式(Streamable):能边接收边处理、低延迟输出,适合实时通话。EnCodec 流式版延迟仅 13ms。
所以这一节是想说:这十来个词是理解任何"神经音频编解码 / 音频生成"论文的基础词汇,先和生活场景挂上钩。
它有什么搞不定的
EnCodec 很强,但也有明确边界(部分论文明说,部分为基于结果的推断,已标注):
48kHz + 熵编码慢过实时(论文数据):24kHz 流式版能 10 倍实时,但 48kHz 立体声版初始延迟 1 秒、加熵编码后 RTF 只有 0.68(慢过实时)。所以高保真立体声 + 熵编码只适合非实时场景(存档、点播),不适合实时通话。
熵编码带来额外延迟(论文明说):算术编码不能每帧"冲刷",解码第 t 帧要等第 t+1 帧部分到达,延迟增加约 13ms。低延迟场景就得放弃这部分压缩收益。
高码率下 Transformer 熵编码收益递减(论文明说):低码率能再压 ~40%,高码率只 ~26%。原因是高码率码本太多,小 Transformer 建模不过来所有码本间的关系。
依赖训练数据分布(推断):模型在语音/带噪语音/音乐/通用音频上训练,遇到训练分布外的极端声音(比如非常规乐器、特殊环境声)可能出现"舒适区外的伪影"——这也是论文引言里明说要靠"大而多样的训练集 + 判别器"来缓解的问题。
对抗训练的固有脆弱性(推断):即便有平衡器,GAN 式训练仍比纯回归难调,判别器和生成器的平衡、学习率等仍需经验。平衡器降低了难度但没消除它。
所以这一节是想说:EnCodec 解了"低码率高保真 + 出 token + 训练稳",但高保真立体声的实时性、熵编码的延迟与递减收益、以及对训练分布的依赖仍是边界。
它和别的几篇是什么关系
直接前辈 SoundStream(2021):EnCodec 保留其核心(全卷积编解码 + RVQ),改进了判别器(单 MS-STFT)、训练稳定性(平衡器)和熵编码(Transformer)。可以看成"SoundStream 的加强版"。
地基 VQ-VAE(2017):把连续表示离散化的思想源头。RVQ 是 VQ 的"多级残差"升级。
下游 AudioLM / MusicGen / AudioGen 等:这些音频生成大模型把 EnCodec 当作标准 tokenizer——生成模型在 EnCodec 的 token 空间里"写"声音,再用 EnCodec 解码回波形。EnCodec 的深远影响主要在这条线上。
和 Whisper 的对比(本仓库已有):Whisper 是"听声音→出文字"的识别模型;EnCodec 是"声音↔token↔声音"的编解码器。方向不同,但都是把音频接进"离散序列 + Transformer"范式的关键拼图——Whisper 让机器听懂,EnCodec 让机器生成。
和传统编解码器 Opus/EVS/MP3:EnCodec 是它们在极低码率场景的神经替代者,并额外提供了它们没有的"离散 token"能力。
所以这一节是想说:EnCodec 站在 SoundStream/VQ-VAE 的肩膀上,往下成为一整代音频生成大模型的地基组件,是"神经音频编解码"这条线的代表作。
和本导读的关系
本笔记对应导读 Ch20: 听觉感知。
Ch20 讲的是机器如何"听"——从语音识别(Whisper)到音频语言建模(AudioLM)再到音频生成。EnCodec 在这条线里扮演的是底层"翻译官":它把连续声波变成离散 token,让上层的音频语言模型能像处理文字一样处理声音。可以说,没有 EnCodec 这类神经编解码器,Ch20 里"用语言模型生成音频"的范式就没有立足的地基。
读完本笔记,建议按导读 Ch20 的路线继续:先看 SoundStream(EnCodec 的直接前辈,理解 RVQ 从哪来),再看 AudioLM / MusicLM(理解 EnCodec 的 token 如何被用于音频生成),最后看 Whisper(听觉的另一端——识别)。四篇连起来,就能看清"声音如何被编码成 token、又如何被生成和识别"的完整听觉图景。
从知识图谱角度,本笔记往上连接音频离散化的思想源头(VQ-VAE),往下连接所有"基于 token 的音频生成"工作。它和 Ch18(多模态融合)也相关——EnCodec 的 token 让音频能作为一路模态接进多模态大模型。
所以这一节是想说:本笔记是导读 Ch20"听觉感知"的底层拼图,读完可沿 SoundStream → AudioLM → Whisper 继续,把"声音的编码-生成-识别"闭环看全。
思考题
以下问题用来检验你是否真正理解了论文核心。每题附折叠提示,建议先自己想 30 秒。
Q1:为什么说 EnCodec 的意义远超"一个更好的压缩器"?它对音频生成大模型的关键贡献是什么?
提示
关键在于 RVQ 把连续声波变成了离散整数 token。音频生成大模型(AudioLM、MusicGen)的思路是"像语言模型写字一样一个 token 一个 token 生成声音",但声音是连续的、喂不进去。EnCodec 提供了"波形↔token"的双向翻译:生成模型只在 token 空间预测,EnCodec 负责编码和还原成高保真波形。所以它是整条音频生成范式的地基组件。
Q2:RVQ 为什么能让"一个模型支持多种码率"?如果只用普通向量量化(单码本)会怎样?
提示
RVQ 是分层的——第一层量化个大概,后面每层修正残差。想要低码率就少用几层码本,想要高质量就多用几层,同一个模型不用重训。普通单码本 VQ 只有一个固定精度:要多档码率就得训多个模型,或者用一个巨大的码本(维度爆炸、难训)。RVQ 用"多级小码本"优雅地覆盖了 1.5–24 kbps 全谱。
Q3:损失平衡器解决的到底是什么问题?为什么对抗训练特别需要它?
提示
问题是"不同损失的梯度尺度天差地别,直接加权求和会互相打架、训练发散"。对抗训练里判别器的梯度尺度剧烈波动,最容易搞崩。平衡器用梯度的移动平均把每种损失缩放到"占总梯度的固定比例",既稳住了训练(消融里极端权重下不用它 SI-SNR 崩到 -35),又让权重变得可解释(权重和为 1 时就是各损失占比)。
Q4:论文发现"只用一个 MS-STFT 判别器"就够了,甚至加 MPD 只微涨。这个"少即是多"的结论有什么工程价值?
提示
价值在于简化。以前提质量要堆多种判别器,训练慢、调参多。EnCodec 证明单个多尺度频谱判别器(MUSHRA 77.5)就远超 SoundStream 的组合(62.91),加 MPD 只到 79.0——收益不值那份复杂度。所以工程上可以砍掉多余判别器,缩短训练时间、降低调参负担,还几乎不掉质量。
Q5:为什么 24kHz 流式版能 10 倍实时,48kHz + 熵编码却慢过实时?这对部署选择意味着什么?
提示
48kHz 采样率高、还是立体声,序列更长、计算量更大;熵编码的算术编码又要额外算概率并串行处理。所以 48kHz+EC 的 RTF 只有 0.68(慢过实时)。部署上意味着:实时通话选 24kHz 流式版(13ms 延迟、10× 实时);音乐存档/点播这种不在乎延迟的场景才用 48kHz + 熵编码榨取最高压缩率和音质。
Q6:EnCodec 立体声 6 kbps(压 256 倍)音质追平 MP3 64 kbps(压 24 倍)。这个对比为什么震撼?有没有需要打折扣的地方?
提示
震撼在于用约十分之一的数据达到相当音质,说明神经编解码器在压缩效率上有代际优势。打折扣的地方:这是 MUSHRA 主观分(有置信区间和评测偏差),且 EnCodec 需要神经网络推理(比 MP3 解码贵得多),MP3 胜在极致轻量和通用兼容。所以"更省流量"不等于"全面替代"——要看场景对算力和兼容性的要求。
Q7:如果给你一段训练数据里从没出现过的、非常怪异的声音(比如某种罕见乐器),EnCodec 可能出什么问题?论文用什么手段缓解?
提示
可能出现"舒适区外的伪影"——因为模型只学过训练分布内的声音,对分布外的怪声还原可能失真。论文明说的缓解手段是:用大而多样的训练集(语音+带噪语音+音乐+通用音频,还做多源混合和加混响)+ 判别器当感知损失逼真实感。但这只是缓解,泛化边界仍受训练数据覆盖度限制。
所以这一节是想说:能答这 7 题,说明你抓住了 EnCodec 的设计逻辑——RVQ 出 token、平衡器防崩、单判别器够用、以及"压缩器"背后"音频生成地基"的更大意义。
一些好奇心问答(FAQ)
Q1:EnCodec 和 MP3 到底谁好?
看场景。极低码率、追求音质、且能承受神经网络推理成本时 EnCodec 明显更好(6kbps 追平 MP3 64kbps)。但 MP3 极致轻量、全设备通用、解码几乎不耗算力——日常兼容性上仍是王者。EnCodec 更像"给通信/生成场景用的下一代方案"。
Q2:"token"到底长什么样?
就是一串整数。每个时间步、每个码本层输出一个 0–1023 的编号(因为码本 1024 项)。24kHz 下每秒 75 个时间步,若用 Nq 层码本,就是每秒 75×Nq 个整数。这串整数既能算术编码压缩传输,也能喂给音频生成模型。
Q3:为什么要区分"流式"和"非流式"两个版本?
因为延迟和质量是权衡。流式版把所有 padding 放前面、一收到 13ms 音频就能出结果,适合实时通话,质量略低。非流式版切 1 秒块、逐块归一化,延迟 1 秒但质量略高,适合离线处理/存档。
Q4:训练用了多少资源?
论文说训 300 个 epoch(每 epoch 2000 次更新),Adam 优化器,批量 64 个 1 秒片段,学习率 3e-4,用 8 张 A100 GPU。对工业界不算大,学术界复现门槛也可接受。
Q5:数据从哪来?
语音用 DNS Challenge 4 和 Common Voice;通用音频用 AudioSet + FSD50K;音乐用 Jamendo(还有一个专有音乐集做评测)。训练时还做多源混合、随机增益、加混响来增强多样性。
Q6:为什么要有"承诺损失"和"直通估计器"?
因为量化(查最近码本)是不可导的,普通反向传播穿不过去。直通估计器让梯度"假装量化是恒等函数"直接穿过;承诺损失逼编码器的输出别离码本项太远,让整个量化过程学得稳。
Q7:之后该看什么?
想理解 RVQ 的来源看 SoundStream 和 VQ-VAE;想看 EnCodec 的 token 怎么用于生成看 AudioLM / MusicGen;想看听觉的识别端看 Whisper。
所以这一节是想说:实操问题(vs MP3、token 形态、流式选择、训练资源、数据来源)作者都交代得很清楚,工程上非常成熟可用。
如果你想再深入
按"前辈 → 核心机制 → 下游 → 对照"排序:
- 前辈:SoundStream(Zeghidour et al. 2021) — EnCodec 的直接地基,读它理解全卷积编解码 + RVQ 的原始形态。本仓库有 SoundStream 笔记。
- 核心机制:VQ-VAE(van den Oord et al. 2017) — 离散化表示的思想源头,RVQ 是它的多级残差升级。
- 下游:AudioLM / MusicLM — 理解 EnCodec 的 token 如何被音频语言模型用于生成。本仓库有 AudioLM、MusicLM 笔记。
- 对照:Whisper — 听觉的识别端,和 EnCodec 的生成/编码端互补,共同构成"机器听说"的两半。
- 传统基线:Opus / EVS 标准文档 — 理解几十年信号处理编解码器的设计,才知道 EnCodec 在低码率上的进步有多大。
所以这一节是想说:把 VQ-VAE + SoundStream + EnCodec + AudioLM 连起来读,就能看到"音频离散化 → 神经编解码 → 音频生成"这条完整技术演进。
原文信息
BibTeX
@article{defossez2023encodec,
title = {High Fidelity Neural Audio Compression},
author = {D{\'e}fossez, Alexandre and Copet, Jade and Synnaeve, Gabriel and Adi, Yossi},
journal = {Transactions on Machine Learning Research (TMLR)},
year = {2023}
}
链接
- arXiv:arxiv.org/abs/2210.13438
- 代码与模型:github.com/facebookresearch/encodec
- 发表:Transactions on Machine Learning Research (TMLR),2023
所以这一节是想说:这是 Défossez et al. 2022 年提出、2023 年发表于 TMLR 的工作,代码开源,是神经音频编解码方向被引用最多的论文之一。
最后一个画面
想象你在信号很差的地铁里给朋友发语音。传统编解码器在这么低的码率下会把你的声音压成"水下机器人音"。
换成 EnCodec:它把你的声音看几眼,敲出一串很短的整数编号,塞进那点可怜的带宽里传过去;朋友那端照着编号把声音一个音一个音"读"回来——清晰得像没压过。而同样这串编号,换个场景喂给音乐生成模型,就能变成一段全新的旋律。
同一套"声音打字机",一头服务于让你在弱网里听清人话,一头服务于让 AI 学会写歌。这就是把连续声波变成离散 token 的力量。
所以最后一节是想说:EnCodec 的真正价值,是把"声音"变成了机器能压缩、能传输、也能生成的"一串小数字"——它既是更好的压缩器,更是整代音频生成大模型的隐形地基。
◼
引用本笔记 / Cite this note
@online{eai_encodec_2026,
title = {(readable note) EnCodec},
author = {Xun, Jason},
year = {2026},
note = {Note on a 2023 paper},
howpublished = {\url{https://estelledc.github.io/embodied-ai-reading-station/papers/encodec/}},
organization = {Embodied AI: Zero to One}
}
All 202 papers (full index)
- 1. LLaVA: Visual Instruction Tuning
- 2. 3DShape2VecSet: 3D Shape Representation for Diffusion Models
- 3. SayCan: Do As I Can, Not As I Say
- 4. OpenVLA: An Open-Source Vision-Language-Action Model
- 5. VLAS: VLA Model With Speech Instructions
- 6. MLA: Multisensory Language-Action Model
- 7. Cosmos Policy: Fine-Tuning Video Models for Visuomotor Control
- 8. CartoRadar: RF-Based 3D SLAM Rivaling Vision Approaches
- 9. mmCLIP: Boosting mmWave-based Zero-shot HAR via Signal-Text Alignment
- 10. mmNorm: Non-Line-of-Sight 3D Object Reconstruction via mmWave Surface Normal Estimation
- 11. Proactive Hearing Assistants that Isolate Egocentric Conversations
- 12. NeuralAids: Wireless Hearables With Programmable Speech AI Accelerators
- 13. Creating speech zones with self-distributing acoustic swarms
- 14. Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation
- 15. SoundStream: An End-to-End Neural Audio Codec
- 16. AudioLM
- 17. Conformer
- 18. Dual-path RNN
- 19. EnCodec
- 20. Meta-StyleSpeech
- 21. MusicLM
- 22. Robust Speech Recognition via Large-Scale Weak Supervision
- 23. SeamlessM4T
- 24. Stable Audio
- 25. Universal Source Separation with Weakly Labelled Data
- 26. Meta-World: A Benchmark and Evaluation for Multi-Task and Meta Reinforcement Learning
- 27. RLBench: The Robot Learning Benchmark & Learning Environment
- 28. robosuite: A Modular Simulation Framework and Benchmark for Robot Learning
- 30. CALVIN
- 31. LIBERO
- 32. RH20T
- 33. What Matters in Learning from Offline Human Demonstrations for Robot Manipulation
- 34. DROID
- 35. Open X-Embodiment
- 36. RoboCasa
- 37. SimplerEnv
- 38. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
- 39. 3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations
- 40. Consistency Policy: Accelerated Visuomotor Policies via Consistency Distillation
- 41. EquiBot: SIM(3)-Equivariant Diffusion Policy
- 42. DiT-Policy
- 43. Diffusion Policy Policy Optimization (DPPO)
- 44. Affordance-based Robot Manipulation with Flow Matching
- 45. FlowPolicy: 3D Flow-based Policy via Consistency Flow Matching
- 46. FAST: Efficient Action Tokenization for VLA
- 47. π₀: A Vision-Language-Action Flow Model for General Robot Control
- 48. pi_0.5: VLA with Open-World Generalization
- 49. A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
- 50. Generative Adversarial Imitation Learning
- 51. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT/ALOHA)
- 52. AnyTeleop
- 53. Behavior Transformers: Cloning k Modes with One Stone
- 54. Implicit Behavioral Cloning
- 55. RoboCat
- 56. ALOHA 2
- 58. HumanPlus
- 59. Generalizable Humanoid Manipulation with 3D Diffusion Policies (iDP3)
- 60. Mobile ALOHA
- 61. SmolVLA
- 62. Universal Manipulation Interface
- 63. Behavior Generation with Latent Actions (VQ-BeT)
- 64. ImageBind: One Embedding Space To Bind Them All
- 65. Connecting Touch and Vision via Cross-Modal Prediction
- 66. AnyMAL: An Efficient and Scalable Any-Modality Augmented Language Model
- 67. AudioPaLM
- 68. FROMAGe: Grounding LLMs to Images
- 69. OneLLM
- 70. X-VLM: Multi-Grained Vision Language Pre-Training
- 71. Tactile Beyond Pixels (Sparsh-X)
- 72. Sparsh: Self-supervised Touch Representations
- 73. Tactile-VLA
- 74. TLA: Tactile-Language-Action
- 75. Code as Policies: Language Model Programs for Embodied Control
- 76. Inner Monologue: Embodied Reasoning through Planning with Language Models
- 77. LLM+P: Empowering LLMs with Optimal Planning
- 78. PaLM-E: An Embodied Multimodal Language Model
- 79. ProgPrompt
- 80. ChatGPT for Robotics
- 81. GenSim
- 82. RoboFlamingo
- 83. Tree-Planner
- 84. VoxPoser
- 85. See Through Smoke: Robust Indoor Mapping with Low-cost mmWave Radar
- 86. Can WiFi Estimate Person Pose?
- 87. 3DRIMR: 3D Reconstruction and Imaging via mmWave Radar based on Deep Learning
- 88. milliEgo: Single-chip mmWave Radar Aided Egomotion Estimation via Deep Sensor Fusion
- 89. High Resolution Point Clouds from mmWave Radar
- 90. RadarSLAM: Radar based Large-Scale SLAM in All Weathers
- 91. Through-Wall Pose Imaging in Real-Time with a Many-to-Many Encoder/Decoder Paradigm
- 92. RFMask: A Simple Baseline for Human Silhouette Segmentation with Radio Signals
- 93. RFPose-OT: RF-Based 3D Human Pose Estimation via Optimal Transport Theory
- 94. Argus: Multi-View Egocentric Human Mesh Reconstruction Based on Stripped-Down Wearable mmWave Add-on
- 95. Diffusion Model is a Good Pose Estimator from 3D RF-Vision
- 96. Enabling Visual Recognition at Radio Frequency (PanoRadar)
- 97. Wave-Former: Through-Occlusion 3D Reconstruction via Wireless Shape Completion
- 98. Habitat: A Platform for Embodied AI Research
- 99. Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning
- 101. Habitat 2.0
- 102. ManiSkill
- 103. ProcTHOR
- 104. SAPIEN: A SimulAted Part-based Interactive ENvironment
- 105. BEHAVIOR-1K
- 106. BridgeData V2
- 106. Habitat 3.0
- 107. Isaac Lab
- 108. DexMV
- 108. MuJoCo Playground
- 109. DexCap
- 109. RT-1: Robotics Transformer for Real-World Control at Scale
- 110. 3D Diffusion Policy (DP3)
- 111. Octo: An Open-Source Generalist Robot Policy
- 112. RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control
- 113. RT-Trajectory: Robotic Task Generalization via Hindsight Trajectory Sketches
- 114. 3D-VLA
- 116. GR-2: Generative Video-Language-Action Model
- 117. DexVLA
- 117. OpenHelix
- 118. Cosmos World Foundation Model
- 118. OpenVLA-OFT
- 119. RDT-1B: Diffusion Foundation Model for Bimanual Manipulation
- 120. RoboMamba
- 121. SpatialVLA
- 122. TinyVLA
- 123. TraceVLA: Visual Trace Prompting
- 124. Learning Transferable Visual Models From Natural Language Supervision
- 125. Flamingo: a Visual Language Model for Few-Shot Learning
- 126. BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
- 127. BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
- 128. DeepSeek-VL: Towards Real-World Vision-Language Understanding
- 129. EVA-CLIP: Improved Training Techniques for CLIP at Scale
- 130. FILIP: Fine-grained Interactive Language-Image Pre-Training
- 131. Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks
- 132. InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks
- 133. Improved Baselines with Visual Instruction Tuning
- 134. OBELICS
- 135. Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond
- 136. Sigmoid Loss for Language Image Pre-Training
- 137. What matters when building vision-language models?
- 138. Expanding Performance Boundaries of Open-Source Multimodal Models with Model, Data, and Test-Time Scaling
- 139. The Llama 3 Herd of Models
- 140. LLaVA-NeXT-Interleave
- 141. LLaVA-OneVision: Easy Visual Task Transfer
- 142. Long-CLIP: Unlocking the Long-Text Capability of CLIP
- 143. Pixtral 12B
- 144. Dream to Control: Learning Behaviors by Latent Imagination
- 145. World Models
- 146. DayDreamer
- 147. Mastering Atari with Discrete World Models
- 148. Dreamer V3: Mastering Diverse Domains through World Models
- 149. Transformers are Sample-Efficient World Models
- 150. TWM: Transformer-based World Models
- 151. 1X World Model Challenge
- 153. GAIA-1
- 154. Genie: Generative Interactive Environments
- 155. Navigation World Models
- 156. UniSim
- 157. LeRobot: An Open-Source Library for End-to-End Robot Learning
- 158. CogACT: A Foundational Vision-Language-Action Model for Synergizing Cognition and Action in Robotic Manipulation
- 159. Universal Actions for Enhanced Embodied Foundation Models
- 160. LoHoVLA: A Unified Vision-Language-Action Model for Long-Horizon Embodied Tasks
- 161. AutoRT: Embodied Foundation Models for Large Scale Orchestration of Robotic Agents
- 162. EO-1: Interleaved Vision-Text-Action Pretraining for General Robot Control
- 163. Qwen-VLA: Unifying Vision-Language-Action Modeling across Tasks, Environments, and Robot Embodiments
- 164. RealMirror: A Comprehensive, Open-Source Vision-Language-Action Platform for Embodied AI
- 165. LLaDA-VLA: Vision Language Diffusion Action Models
- 166. Discrete Diffusion VLA: Bringing Discrete Diffusion to Action Decoding in Vision-Language-Action Policies
- 167. Vlaser: Vision-Language-Action Model with Synergistic Embodied Reasoning
- 168. X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
- 169. Embodiment Transfer Learning for Vision-Language-Action Models
- 170. HiMoE-VLA: Hierarchical Mixture-of-Experts for Generalist Vision-Language-Action Policies
- 171. Green-VLA: Staged Vision-Language-Action Model for Generalist Robots
- 172. AC^2-VLA: Action-Context-Aware Adaptive Computation in Vision-Language-Action Models for Efficient Robotic Manipulation
- 173. MoS-VLA: A Vision-Language-Action Model with One-Shot Skill Adaptation
- 174. Asynchronous Fast-Slow Vision-Language-Action Policies for Whole-Body Robotic Manipulation
- 175. VLA-Forget: Vision-Language-Action Unlearning for Embodied Foundation Models
- 176. Membership Inference Attacks on Vision-Language-Action Models
- 177. A Survey on Efficient Vision-Language-Action Models
- 178. Survey of Vision-Language-Action Models for Embodied Manipulation
- 179. Embodied AI with Foundation Models for Mobile Service Robots: A Systematic Review
- 180. Toward Embodied AGI: A Review of Embodied AI and the Road Ahead
- 181. RoboNeuron: A Middle-Layer Infrastructure for Agent-Driven Orchestration in Embodied AI
- 182. Embodied Navigation Foundation Model
- 183. MiMo-Embodied: X-Embodied Foundation Model Technical Report
- 184. Open-H-Embodiment: A Large-Scale Dataset for Enabling Foundation Models in Medical Robotics
- 185. AlanaVLM: A Multimodal Embodied AI Foundation Model for Egocentric Video Understanding
- 186. 3D Generation for Embodied AI and Robotic Simulation: A Survey
- 187. DISCO: Language-Guided Manipulation with Diffusion Policies and Constrained Inpainting
- 188. Time-Unified Diffusion Policy with Action Discrimination for Robotic Manipulation
- 189. Learning Diffusion Policy from Primitive Skills for Robot Manipulation
- 190. Trace-Focused Diffusion Policy for Multi-Modal Action Disambiguation in Long-Horizon Robotic Manipulation
- 191. Gaze2Act: Gaze-Conditioned Vision-Language-Action Policies for Interactive Robot Manipulation
- 192. LACY: A Vision-Language Model-based Language-Action Cycle for Self-Improving Robotic Manipulation
- 193. villa-X: Enhancing Latent Action Modeling in Vision-Language-Action Models
- 194. InstructVLA: Vision-Language-Action Instruction Tuning from Understanding to Manipulation
- 195. Discrete Policy: Learning Disentangled Action Space for Multi-Task Robotic Manipulation
- 196. Towards Generalizable Vision-Language Robotic Manipulation: A Benchmark and LLM-guided 3D Policy
- 197. A Survey of Language-Conditioned Robot Manipulation
- 198. SafeEmbodAI: a Safety Framework for Mobile Robots in Embodied AI Systems
- 199. The Essential Role of Causality in Foundation World Models for Embodied AI
- 200. A call for embodied AI
- 201. Toward General-Purpose Robots via Foundation Models: A Survey and Meta-Analysis
- 202. What Breaks Embodied AI Security: LLM Vulnerabilities, CPS Flaws, or Something Else?