Jason / Works Embodied AIZero to One
Works
没主意?快捷入口
Auditory & Acoustic · Plate Nº 19

EnCodec

25 min read · 8585 字 · ⭐⭐⭐⭐ · 长篇结构化

这是一份写给"完全没接触过 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。


EnCodec — 场景示意:这论文要解决的现实问题
Plate Nº IEnCodec — 场景示意:这论文要解决的现实问题

之前的人怎么做的,为什么不够好

  • 方案 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 这个地基上的改进:

  1. 一个简单却强的判别器就够了。 以前提质量要堆好几种判别器(判别器 = 一个"挑刺网络",专门找生成声音里的瑕疵,逼编解码器改进)。EnCodec 发现:只用**一个多尺度的频谱判别器(MS-STFT)**就能生成高质量音频,训练还更简单更快。

  2. 一个"损失平衡器"让训练稳下来。 训练时有好几种损失(时域、频域、对抗、承诺损失),它们的数值大小天差地别,梯度一打架训练就崩。EnCodec 的平衡器把"每种损失该占总梯度的多大比例"直接定死,让权重变得可解释、可控,训练大幅稳定。

  3. 一个小 Transformer 再压 40%。 在离散 token 之上,再训一个轻量语言模型来做熵编码(把常出现的 token 用更短的码表示),能在几乎不掉质量的前提下把码率再降最多 40%,而且仍然快过实时

  4. 一个模型支持多种码率、还能出 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 · 关键结果概览】

   设定 / 数据          方法要点              主结果
        │                   │                    │
        ▼                   ▼                    ▼
   训练           ──► 方法核心                   ──► …
   评测           ──► 主指标提升                  ──► ↑ 论文主结论

   (对照下方表格中的原文数字与消融)

EnCodec — 方法示意:核心 pipeline
Plate Nº IIEnCodec — 方法示意:核心 pipeline

关键数字(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
参考 - 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 的来源看 SoundStreamVQ-VAE;想看 EnCodec 的 token 怎么用于生成看 AudioLM / MusicGen;想看听觉的识别端看 Whisper

所以这一节是想说:实操问题(vs MP3、token 形态、流式选择、训练资源、数据来源)作者都交代得很清楚,工程上非常成熟可用。


如果你想再深入

按"前辈 → 核心机制 → 下游 → 对照"排序:

  1. 前辈:SoundStream(Zeghidour et al. 2021) — EnCodec 的直接地基,读它理解全卷积编解码 + RVQ 的原始形态。本仓库有 SoundStream 笔记。
  2. 核心机制:VQ-VAE(van den Oord et al. 2017) — 离散化表示的思想源头,RVQ 是它的多级残差升级。
  3. 下游:AudioLM / MusicLM — 理解 EnCodec 的 token 如何被音频语言模型用于生成。本仓库有 AudioLM、MusicLM 笔记。
  4. 对照:Whisper — 听觉的识别端,和 EnCodec 的生成/编码端互补,共同构成"机器听说"的两半。
  5. 传统基线: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}
}

链接

所以这一节是想说:这是 Défossez et al. 2022 年提出、2023 年发表于 TMLR 的工作,代码开源,是神经音频编解码方向被引用最多的论文之一。


最后一个画面

想象你在信号很差的地铁里给朋友发语音。传统编解码器在这么低的码率下会把你的声音压成"水下机器人音"。

换成 EnCodec:它把你的声音看几眼,敲出一串很短的整数编号,塞进那点可怜的带宽里传过去;朋友那端照着编号把声音一个音一个音"读"回来——清晰得像没压过。而同样这串编号,换个场景喂给音乐生成模型,就能变成一段全新的旋律。

同一套"声音打字机",一头服务于让你在弱网里听清人话,一头服务于让 AI 学会写歌。这就是把连续声波变成离散 token 的力量。

所以最后一节是想说:EnCodec 的真正价值,是把"声音"变成了机器能压缩、能传输、也能生成的"一串小数字"——它既是更好的压缩器,更是整代音频生成大模型的隐形地基。

引用本笔记 / Cite this note
BibTeX
@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. 1. LLaVA: Visual Instruction Tuning
  2. 2. 3DShape2VecSet: 3D Shape Representation for Diffusion Models
  3. 3. SayCan: Do As I Can, Not As I Say
  4. 4. OpenVLA: An Open-Source Vision-Language-Action Model
  5. 5. VLAS: VLA Model With Speech Instructions
  6. 6. MLA: Multisensory Language-Action Model
  7. 7. Cosmos Policy: Fine-Tuning Video Models for Visuomotor Control
  8. 8. CartoRadar: RF-Based 3D SLAM Rivaling Vision Approaches
  9. 9. mmCLIP: Boosting mmWave-based Zero-shot HAR via Signal-Text Alignment
  10. 10. mmNorm: Non-Line-of-Sight 3D Object Reconstruction via mmWave Surface Normal Estimation
  11. 11. Proactive Hearing Assistants that Isolate Egocentric Conversations
  12. 12. NeuralAids: Wireless Hearables With Programmable Speech AI Accelerators
  13. 13. Creating speech zones with self-distributing acoustic swarms
  14. 14. Conv-TasNet: Surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation
  15. 15. SoundStream: An End-to-End Neural Audio Codec
  16. 16. AudioLM
  17. 17. Conformer
  18. 18. Dual-path RNN
  19. 19. EnCodec
  20. 20. Meta-StyleSpeech
  21. 21. MusicLM
  22. 22. Robust Speech Recognition via Large-Scale Weak Supervision
  23. 23. SeamlessM4T
  24. 24. Stable Audio
  25. 25. Universal Source Separation with Weakly Labelled Data
  26. 26. Meta-World: A Benchmark and Evaluation for Multi-Task and Meta Reinforcement Learning
  27. 27. RLBench: The Robot Learning Benchmark & Learning Environment
  28. 28. robosuite: A Modular Simulation Framework and Benchmark for Robot Learning
  29. 30. CALVIN
  30. 31. LIBERO
  31. 32. RH20T
  32. 33. What Matters in Learning from Offline Human Demonstrations for Robot Manipulation
  33. 34. DROID
  34. 35. Open X-Embodiment
  35. 36. RoboCasa
  36. 37. SimplerEnv
  37. 38. Diffusion Policy: Visuomotor Policy Learning via Action Diffusion
  38. 39. 3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations
  39. 40. Consistency Policy: Accelerated Visuomotor Policies via Consistency Distillation
  40. 41. EquiBot: SIM(3)-Equivariant Diffusion Policy
  41. 42. DiT-Policy
  42. 43. Diffusion Policy Policy Optimization (DPPO)
  43. 44. Affordance-based Robot Manipulation with Flow Matching
  44. 45. FlowPolicy: 3D Flow-based Policy via Consistency Flow Matching
  45. 46. FAST: Efficient Action Tokenization for VLA
  46. 47. π₀: A Vision-Language-Action Flow Model for General Robot Control
  47. 48. pi_0.5: VLA with Open-World Generalization
  48. 49. A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning
  49. 50. Generative Adversarial Imitation Learning
  50. 51. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware (ACT/ALOHA)
  51. 52. AnyTeleop
  52. 53. Behavior Transformers: Cloning k Modes with One Stone
  53. 54. Implicit Behavioral Cloning
  54. 55. RoboCat
  55. 56. ALOHA 2
  56. 58. HumanPlus
  57. 59. Generalizable Humanoid Manipulation with 3D Diffusion Policies (iDP3)
  58. 60. Mobile ALOHA
  59. 61. SmolVLA
  60. 62. Universal Manipulation Interface
  61. 63. Behavior Generation with Latent Actions (VQ-BeT)
  62. 64. ImageBind: One Embedding Space To Bind Them All
  63. 65. Connecting Touch and Vision via Cross-Modal Prediction
  64. 66. AnyMAL: An Efficient and Scalable Any-Modality Augmented Language Model
  65. 67. AudioPaLM
  66. 68. FROMAGe: Grounding LLMs to Images
  67. 69. OneLLM
  68. 70. X-VLM: Multi-Grained Vision Language Pre-Training
  69. 71. Tactile Beyond Pixels (Sparsh-X)
  70. 72. Sparsh: Self-supervised Touch Representations
  71. 73. Tactile-VLA
  72. 74. TLA: Tactile-Language-Action
  73. 75. Code as Policies: Language Model Programs for Embodied Control
  74. 76. Inner Monologue: Embodied Reasoning through Planning with Language Models
  75. 77. LLM+P: Empowering LLMs with Optimal Planning
  76. 78. PaLM-E: An Embodied Multimodal Language Model
  77. 79. ProgPrompt
  78. 80. ChatGPT for Robotics
  79. 81. GenSim
  80. 82. RoboFlamingo
  81. 83. Tree-Planner
  82. 84. VoxPoser
  83. 85. See Through Smoke: Robust Indoor Mapping with Low-cost mmWave Radar
  84. 86. Can WiFi Estimate Person Pose?
  85. 87. 3DRIMR: 3D Reconstruction and Imaging via mmWave Radar based on Deep Learning
  86. 88. milliEgo: Single-chip mmWave Radar Aided Egomotion Estimation via Deep Sensor Fusion
  87. 89. High Resolution Point Clouds from mmWave Radar
  88. 90. RadarSLAM: Radar based Large-Scale SLAM in All Weathers
  89. 91. Through-Wall Pose Imaging in Real-Time with a Many-to-Many Encoder/Decoder Paradigm
  90. 92. RFMask: A Simple Baseline for Human Silhouette Segmentation with Radio Signals
  91. 93. RFPose-OT: RF-Based 3D Human Pose Estimation via Optimal Transport Theory
  92. 94. Argus: Multi-View Egocentric Human Mesh Reconstruction Based on Stripped-Down Wearable mmWave Add-on
  93. 95. Diffusion Model is a Good Pose Estimator from 3D RF-Vision
  94. 96. Enabling Visual Recognition at Radio Frequency (PanoRadar)
  95. 97. Wave-Former: Through-Occlusion 3D Reconstruction via Wireless Shape Completion
  96. 98. Habitat: A Platform for Embodied AI Research
  97. 99. Isaac Gym: High Performance GPU-Based Physics Simulation For Robot Learning
  98. 101. Habitat 2.0
  99. 102. ManiSkill
  100. 103. ProcTHOR
  101. 104. SAPIEN: A SimulAted Part-based Interactive ENvironment
  102. 105. BEHAVIOR-1K
  103. 106. BridgeData V2
  104. 106. Habitat 3.0
  105. 107. Isaac Lab
  106. 108. DexMV
  107. 108. MuJoCo Playground
  108. 109. DexCap
  109. 109. RT-1: Robotics Transformer for Real-World Control at Scale
  110. 110. 3D Diffusion Policy (DP3)
  111. 111. Octo: An Open-Source Generalist Robot Policy
  112. 112. RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control
  113. 113. RT-Trajectory: Robotic Task Generalization via Hindsight Trajectory Sketches
  114. 114. 3D-VLA
  115. 116. GR-2: Generative Video-Language-Action Model
  116. 117. DexVLA
  117. 117. OpenHelix
  118. 118. Cosmos World Foundation Model
  119. 118. OpenVLA-OFT
  120. 119. RDT-1B: Diffusion Foundation Model for Bimanual Manipulation
  121. 120. RoboMamba
  122. 121. SpatialVLA
  123. 122. TinyVLA
  124. 123. TraceVLA: Visual Trace Prompting
  125. 124. Learning Transferable Visual Models From Natural Language Supervision
  126. 125. Flamingo: a Visual Language Model for Few-Shot Learning
  127. 126. BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models
  128. 127. BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
  129. 128. DeepSeek-VL: Towards Real-World Vision-Language Understanding
  130. 129. EVA-CLIP: Improved Training Techniques for CLIP at Scale
  131. 130. FILIP: Fine-grained Interactive Language-Image Pre-Training
  132. 131. Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks
  133. 132. InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks
  134. 133. Improved Baselines with Visual Instruction Tuning
  135. 134. OBELICS
  136. 135. Qwen-VL: A Versatile Vision-Language Model for Understanding, Localization, Text Reading, and Beyond
  137. 136. Sigmoid Loss for Language Image Pre-Training
  138. 137. What matters when building vision-language models?
  139. 138. Expanding Performance Boundaries of Open-Source Multimodal Models with Model, Data, and Test-Time Scaling
  140. 139. The Llama 3 Herd of Models
  141. 140. LLaVA-NeXT-Interleave
  142. 141. LLaVA-OneVision: Easy Visual Task Transfer
  143. 142. Long-CLIP: Unlocking the Long-Text Capability of CLIP
  144. 143. Pixtral 12B
  145. 144. Dream to Control: Learning Behaviors by Latent Imagination
  146. 145. World Models
  147. 146. DayDreamer
  148. 147. Mastering Atari with Discrete World Models
  149. 148. Dreamer V3: Mastering Diverse Domains through World Models
  150. 149. Transformers are Sample-Efficient World Models
  151. 150. TWM: Transformer-based World Models
  152. 151. 1X World Model Challenge
  153. 153. GAIA-1
  154. 154. Genie: Generative Interactive Environments
  155. 155. Navigation World Models
  156. 156. UniSim
  157. 157. LeRobot: An Open-Source Library for End-to-End Robot Learning
  158. 158. CogACT: A Foundational Vision-Language-Action Model for Synergizing Cognition and Action in Robotic Manipulation
  159. 159. Universal Actions for Enhanced Embodied Foundation Models
  160. 160. LoHoVLA: A Unified Vision-Language-Action Model for Long-Horizon Embodied Tasks
  161. 161. AutoRT: Embodied Foundation Models for Large Scale Orchestration of Robotic Agents
  162. 162. EO-1: Interleaved Vision-Text-Action Pretraining for General Robot Control
  163. 163. Qwen-VLA: Unifying Vision-Language-Action Modeling across Tasks, Environments, and Robot Embodiments
  164. 164. RealMirror: A Comprehensive, Open-Source Vision-Language-Action Platform for Embodied AI
  165. 165. LLaDA-VLA: Vision Language Diffusion Action Models
  166. 166. Discrete Diffusion VLA: Bringing Discrete Diffusion to Action Decoding in Vision-Language-Action Policies
  167. 167. Vlaser: Vision-Language-Action Model with Synergistic Embodied Reasoning
  168. 168. X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
  169. 169. Embodiment Transfer Learning for Vision-Language-Action Models
  170. 170. HiMoE-VLA: Hierarchical Mixture-of-Experts for Generalist Vision-Language-Action Policies
  171. 171. Green-VLA: Staged Vision-Language-Action Model for Generalist Robots
  172. 172. AC^2-VLA: Action-Context-Aware Adaptive Computation in Vision-Language-Action Models for Efficient Robotic Manipulation
  173. 173. MoS-VLA: A Vision-Language-Action Model with One-Shot Skill Adaptation
  174. 174. Asynchronous Fast-Slow Vision-Language-Action Policies for Whole-Body Robotic Manipulation
  175. 175. VLA-Forget: Vision-Language-Action Unlearning for Embodied Foundation Models
  176. 176. Membership Inference Attacks on Vision-Language-Action Models
  177. 177. A Survey on Efficient Vision-Language-Action Models
  178. 178. Survey of Vision-Language-Action Models for Embodied Manipulation
  179. 179. Embodied AI with Foundation Models for Mobile Service Robots: A Systematic Review
  180. 180. Toward Embodied AGI: A Review of Embodied AI and the Road Ahead
  181. 181. RoboNeuron: A Middle-Layer Infrastructure for Agent-Driven Orchestration in Embodied AI
  182. 182. Embodied Navigation Foundation Model
  183. 183. MiMo-Embodied: X-Embodied Foundation Model Technical Report
  184. 184. Open-H-Embodiment: A Large-Scale Dataset for Enabling Foundation Models in Medical Robotics
  185. 185. AlanaVLM: A Multimodal Embodied AI Foundation Model for Egocentric Video Understanding
  186. 186. 3D Generation for Embodied AI and Robotic Simulation: A Survey
  187. 187. DISCO: Language-Guided Manipulation with Diffusion Policies and Constrained Inpainting
  188. 188. Time-Unified Diffusion Policy with Action Discrimination for Robotic Manipulation
  189. 189. Learning Diffusion Policy from Primitive Skills for Robot Manipulation
  190. 190. Trace-Focused Diffusion Policy for Multi-Modal Action Disambiguation in Long-Horizon Robotic Manipulation
  191. 191. Gaze2Act: Gaze-Conditioned Vision-Language-Action Policies for Interactive Robot Manipulation
  192. 192. LACY: A Vision-Language Model-based Language-Action Cycle for Self-Improving Robotic Manipulation
  193. 193. villa-X: Enhancing Latent Action Modeling in Vision-Language-Action Models
  194. 194. InstructVLA: Vision-Language-Action Instruction Tuning from Understanding to Manipulation
  195. 195. Discrete Policy: Learning Disentangled Action Space for Multi-Task Robotic Manipulation
  196. 196. Towards Generalizable Vision-Language Robotic Manipulation: A Benchmark and LLM-guided 3D Policy
  197. 197. A Survey of Language-Conditioned Robot Manipulation
  198. 198. SafeEmbodAI: a Safety Framework for Mobile Robots in Embodied AI Systems
  199. 199. The Essential Role of Causality in Foundation World Models for Embodied AI
  200. 200. A call for embodied AI
  201. 201. Toward General-Purpose Robots via Foundation Models: A Survey and Meta-Analysis
  202. 202. What Breaks Embodied AI Security: LLM Vulnerabilities, CPS Flaws, or Something Else?