BigCodec 1.04 kbps · 可审计模型档案¶
当前结论:D0–D3 passed;下一步是 D4 · implement and freeze the portable RunPod runner, verify all dataset/checkpoint/evaluator hashes, pass a 16-item calibration within the budget stop lines, then execute and independently audit the complete 2,620-item source-blind paper-native run。 D0 只证明身份、来源和本地 artifact 一致;不表示算法已深读、官方结果已复现或公共 Benchmark 已完成。 D0 只证明身份、来源和本地 artifact 一致;后续 Gate 的通过不会反向扩大 D0 的证据边界。
Gate 状态¶
| Gate | 状态 |
|---|---|
| D0 | passed |
| D1 | passed |
| D2 | passed |
| D3 | passed |
| D4 | not_started |
| D5 | not_started |
| D6 | not_started |
| D7 | not_started |
D0 · 身份、标准与本地 artifact¶
| 项目 | 冻结身份 |
|---|---|
| 主论文/规范/资料 | BigCodec: Pushing the Limits of Low-Bitrate Neural Speech Codec · arXiv:2409.05377v1 |
| 规范更新 | — |
| 官方实现 | https://github.com/Aria-K-Alethia/BigCodec · fixed main commit / 09845ab1f5bc |
| 本地环境 | Darwin 26.5 · arm64 · arm |
| 学习参数/模型状态 | 159436290 / 637752072 bytes(official ungated hugging face checkpoint) |
| 已冻结运行 artifact | 6 个,共 638,336,234 bytes |
| 当前公共点 | 1.04 kbps · application=planned public English/Mandarin speech; not executed at D0 · signal hint=16 kHz mono speech · one fixed official point; no synthetic rate sweep · 12.5 ms |
冻结范围与明确排除¶
- 论文/规范家族:the single arXiv:2409.05377v1 BigCodec report and its official 159M-parameter checkpoint;
- 本地选择端点:the only released 16-kHz, one-codebook, nominal 1.04-kbps checkpoint;
-
不纳入当前身份:
- the unreleased BigCodec-base, BigCodec-300M, BigCodec-ll60k, small-enc and no-LSTM ablation checkpoints
- manufactured rate points obtained by dropping frames, pruning indices or changing the released codebook
- quality or paper-table conclusions from the earlier eight-utterance transport run
- an author-standardized file or network bitstream; the BGC13 payload is EvoSpeech-owned
- causal, streaming or real-time claims; the released architecture is full-utterance and non-causal
Primary-source manifest¶
| ID | 作用 | bytes | SHA-256 |
|---|---|---|---|
| BIGCODEC_V1_PDF | author architecture, training, evaluation and result source | 375,037 | 6fb5147dd1aa1f827fd069c60db5db7e74ac378023fcbeea4964b5d68736bc20 |
| BIGCODEC_SOURCE_ARCHIVE | release-exact implementation source | 19,512 | 8f8a86c2079d7a1b961684c5311f733987464e819e919b15a080544ae5155b82 |
| BIGCODEC_FIXED_README | official checkpoint, inference, training and release-boundary source | 3,260 | 6c0ef81f6484e3ab2c7d5844f99bcfbf3be4b7e8b63103fe3cdbaaf838148451 |
| BIGCODEC_FIXED_LICENSE | source-code license evidence | 1,066 | 67ffa779a98128ae58f20da6fad32874ffe5216ddf68615d369b80dc70daf7cb |
| BIGCODEC_HF_MODEL_CARD | checkpoint license declaration | 33 | f35ac7b30195da3b9b01d156fe7f0626e0ae4ac7f6d5757eb0b6ee3b8f31dcab |
Source releases and licenses¶
| Artifact | revision | bytes | SHA-256 | license |
|---|---|---|---|---|
| bigcodec-source-09845ab | 09845ab1f5bc7a3d1589c16de820ef15bc2afefe |
19,512 | 8f8a86c2079d7a1b961684c5311f733987464e819e919b15a080544ae5155b82 |
MIT |
| bigcodec.pt | c6548832eda95a09dcc3485d9b8ef097ce15f387 |
637,937,326 | 1fba3806e87cc01c1a65bea22fa1becefbbf46881e4219593c4d9f3cf56206b9 |
CC-BY-SA-4.0 model-card metadata |
Installed encoder/decoder identity¶
| Artifact | bytes | SHA-256 | resolved path |
|---|---|---|---|
BIGCODEC_V1_PDF |
375,037 | 6fb5147dd1aa1f827fd069c60db5db7e74ac378023fcbeea4964b5d68736bc20 |
.model-envs/bigcodec/primary-sources/bigcodec-2409.05377v1.pdf |
BIGCODEC_SOURCE_ARCHIVE |
19,512 | 8f8a86c2079d7a1b961684c5311f733987464e819e919b15a080544ae5155b82 |
.model-envs/bigcodec/primary-sources/BigCodec-09845ab.tar.gz |
BIGCODEC_FIXED_README |
3,260 | 6c0ef81f6484e3ab2c7d5844f99bcfbf3be4b7e8b63103fe3cdbaaf838148451 |
.model-envs/bigcodec/source/README.md |
BIGCODEC_FIXED_LICENSE |
1,066 | 67ffa779a98128ae58f20da6fad32874ffe5216ddf68615d369b80dc70daf7cb |
.model-envs/bigcodec/source/LICENSE |
BIGCODEC_HF_MODEL_CARD |
33 | f35ac7b30195da3b9b01d156fe7f0626e0ae4ac7f6d5757eb0b6ee3b8f31dcab |
.model-envs/bigcodec/primary-sources/hf-model-card-c654883.md |
BIGCODEC_CHECKPOINT |
637,937,326 | 1fba3806e87cc01c1a65bea22fa1becefbbf46881e4219593c4d9f3cf56206b9 |
.model-envs/bigcodec/checkpoint/bigcodec.pt |
表示与计账边界¶
- codec 表示:80 frames/s × one 8192-entry index × 13 bits = nominal 1,040 representation bit/s;
- 当前存储/传输 artifact:EvoSpeech BGC13 packs exact model identity, 13-bit indices, padding and original length; it is not an upstream format;
- 分账规则:representation bits, full serialized payload, model state, memory and compute must be reported separately;
- source-blind decoder:true;
- 不能由 D0 推出的结论:deep paper or core-code understanding beyond identity fields;reproduction of any BigCodec objective, multilingual, ablation or MUSHRA table;quality superiority over Codec 2, EnCodec, DAC, TF-Codec or any current SOTA;generalization to untested languages, noise, music, long-form or private-critical speech;causal streaming, real-time operation or an upstream compressed file format;availability of the paper's ablation checkpoints。
BigCodec 论文深读与证据边界¶
本文只回答 D1:作者到底提出了什么、怎样训练与评测、公开结果能支持什么,以及当前 release 能否复现。 它不运行模型,也不把 8 句 transport smoke 升格成质量证据。所有数字来自固定的
arXiv:2409.05377v1、固定 README、source archive 与 Hugging Face license metadata。
D1 · 论文深读与证据边界¶
一句话心智模型¶
BigCodec 的中心命题不是“发明一种神秘的 1 kbps 编码规则”,而是:在比特瓶颈已经固定为每 12.5 ms 一个 13-bit 离散符号时,扩大 encoder/decoder 容量、加入长程时序建模,并让 VQ 在低维球面上工作,能否把 重建前沿显著向上推。 这正好验证了本项目的 SOTA-first mindset:low-bit 是约束;大模型、强生成器、强训练 目标与高利用率 quantizer 才是方法。
作者把 16 kHz 波形每 200 samples 压成一帧,即 80 frame/s;每帧只有一个 8192-entry code,所以理论表示率是
80 × log2(8192) = 80 × 13 = 1,040 bit/s。真正特别的不是这个乘法,而是瓶颈两侧有 159M 参数的
VQ-VAE、两层单向 LSTM,以及 quantization 前后的 8 维投影。BigCodec 因而是一个很强的“高容量固定低率教师”,
不是一个天然轻量、流式或多码率系统。
论文身份与问题设定¶
固定论文是 2024-09-09 提交的 arXiv v1;arXiv 当前只列 v1,没有正式会议或期刊身份。论文认为主流 neural codec 往往在 6–12 kbps,而约 1 kbps 时质量显著下降。作者提出的研究问题是:除了低 bitrate 本身,模型容量 是否也是性能上限。其论证路线包括三部分:与低率和高率 baseline 横比、对 model/data/LSTM 做 ablation、在 七种未见语言上测试 generalization。
论文同时提到英语 lexical information rate 的 50–100 bps 估算,但这只是动机,不是 BigCodec 已接近理论极限 的证明。1.04 kbps 仍包含音色、韵律、声学细节与生成先验之间复杂的权衡,不能由 lexical bitrate 直接推导。
本档案把证据分成四层。paper_method 只复述论文的方法、协议或设置;author_result 只记录作者报告的数值,
不暗示我们已经复现;official_site_boundary 约束公开代码、权重和许可究竟提供了什么;reader_inference 是
EvoSpeech 根据前述证据作出的保守推论。四者不能互相偷换:例如论文表中的 1.03 kbps 属于作者的 entropy
近似结果,README 未发布 entropy coder 属于 release boundary,由此得出“不能当完整 wire rate”才是读者推论。
这种分层会直接决定 D3 的复现标签和 D4 的 pass/fail 规则,避免把漂亮的论文数字自动升级为本地事实。
架构:大模型怎样包围一个极小瓶颈¶
BigCodec 采用 GAN 框架,generator 是 VQ-VAE。输入波形 x 经过 encoder f_e 得到时序 latent h。
Encoder 由多级 residual CNN block、Snake activation 和两层单向 LSTM 组成;每级 CNN 用不同 dilation 感受
局部与多尺度模式,LSTM 负责跨帧依赖。Decoder 镜像 encoder:先处理量化 embedding,再通过 residual block
与 transposed convolution 恢复波形。
论文用 R = ∏ r_i 表示总下采样率,并固定 R=200。这给出 16 kHz / 200 = 80 Hz 的 token 时钟。论文把
LSTM 称为 unidirectional,但整套公开 endpoint 仍不能因此称为 streaming:卷积、padding、完整 utterance
推理入口和未声明的 lookahead 都必须在 D2/D6 单独审计。D1 只能确认“作者使用单向 LSTM”,不能推导端到端
causal。
最关键的 quantizer 设计是 factorized/low-dimensional VQ:高维 encoder output 先线性投影到 8 维;latent 与 codebook vector 都做 L2 normalization,然后用最小 L2 距离选最近 code。在单位球面上,这等价于最大 cosine similarity。量化结果再投影回 decoder 的高维输入。作者的解释是,高维空间稀疏,直接放 8192 个 code 容易 造成低 utilization;在 8 维球面量化更容易让大量 code 被使用。
这与多层 RVQ 的路线不同。BigCodec 每帧只有一个 code,不需要逐层 residual refinement,也不能通过减少 RVQ 层数自然形成 rate curve。其优势是表示合同极简;代价是单个 index 一旦错失信息,没有 enhancement layer 补救,而且任何 lower-rate 变化都需要重新训练或由 upstream 明确发布,不能在评测时擅自 drop token。
Discriminator 与训练目标¶
作者讨论了 MSD、MPD、MS-STFT/MRD 三类 discriminator,最终采用 HiFi-GAN 的 multi-period discriminator 和 EnCodec 风格的 multi-scale STFT discriminator;预实验中 MSD 没带来额外收益。Generator loss 包括:
- DAC 风格 multi-scale mel-spectrogram L1 reconstruction,权重 15;
- least-squares GAN loss,权重 1;
- HiFi-GAN feature matching L1,权重 1;
- VQ codebook loss,直接通过 gradient descent 更新 codebook;
- commitment loss,权重 0.25;
- straight-through estimator 穿过 argmin。
作者明确说没有采用 waveform-domain L1,因为他们观察到它产生“blurry”结果;也没有用 EMA 更新 codebook, 因为低维空间中直接梯度已经有效。这里的真正启发是:压缩系统的 loss 不能只围绕 sample error。高保真生成器 需要把 perceptual spectrum、adversarial realism、feature structure 与 stable quantization 分开承担。
Scaling:159M 到底从哪里来¶
论文先定义约 17M 参数的 BigCodec-base:四个 CNN stage,起始 channel 32,逐级翻倍到 512。正式 BigCodec 保持总下采样率不变,把 stage 数增至五个,起始 channel 48,最后达到 1536;VQ-VAE 共有 159M 参数, discriminator 另有 22M。D0 对发布 checkpoint 的实际 strict-load 计数为 encoder 76,530,704 + decoder 82,905,586 = 159,436,290,和论文的 159M headline 一致,但 D0 计数不包括训练期 discriminator。
“scale up 有效”必须读得很精确。Table III 中 BigCodec-base 明显更差;BigCodec 的 MCD/PESQ/SIM 更好。 但 300M 版本没有继续提升,60k-hour Libri-Light 版本也只与 960-hour BigCodec 接近。因此论文支持的是“从 17M 到 159M 在这套 architecture/training 上有显著收益”,不支持“参数越多永远越好”或“数据规模无价值”。 它更像发现了当前 recipe 下的容量甜点,而非普适 scaling law。
w/o LSTM 也不是简单把两层 LSTM 删除后直接比较:直接删除会把模型降到约 84M,作者为公平把最后 encoder
channel 增到 2048,使其达到 142M。它仍比 BigCodec 弱,说明 temporal module 有贡献;但这是一项
parameter-matched approximate ablation,不是完全相同 topology 只切一个开关。
数据、优化器与训练预算¶
正式 BigCodec 只用 960 小时 LibriSpeech full training set,16 kHz;训练 item 是随机裁剪的一秒 segment。
作者报告 8 张 NVIDIA A100、batch size 8、AdamW、β1=0.8、β2=0.9,learning rate 经过 1k warmup
后从 1e-4 线性降到 1e-5,约 600k steps 收敛。论文没有明确 batch size 8 是 global 还是 per-device,
没有给 A100 memory、训练 wall time、random seed、完整数据列表或 checkpoint step。
官方仓库包含训练入口与 LibriSpeech 示例配置,但 README 明确说适配其他数据需要自行修改;官方 checkpoint
的 inference.py 与训练 checkpoint 使用的 inference_train.py 也被作者标为“slightly different”。所以
“代码能训练一个 BigCodec”与“代码能严格重建发布 checkpoint”是两个不同复现等级,D3 必须分轨。
官方评测:同域主表¶
Table I 使用完整 LibriSpeech test-clean 2,620 条、16 kHz。作者比较 DAC-4k、EnCodec-6k、DAC-1k、 EnCodec-1.5k、LLM-Codec、TF-Codec 与 BigCodec;SRCodec、SuperCodec 和 LMCodec 因较弱或样本有限被省略。 指标包括 MCD、PESQ-NB、PESQ-WB、STOI、WavLM-TDNN speaker cosine similarity、entropy 近似码率和 MUSHRA。
BigCodec 的主表值为:MCD 4.55、PESQ-NB 3.27、PESQ-WB 2.68、STOI 0.93、SIM 0.84、MUSHRA
92.33 ± 1.29;entropy 近似码率为 1.03 kbps。TF-Codec 在相近低率下是 MCD 5.16、PESQ-NB 3.11、
PESQ-WB 2.53、STOI 0.92、SIM 0.73、MUSHRA 74.67 ± 2.36。BigCodec 的 objective 数字也接近
4 kbps DAC 和 6 kbps EnCodec,但不是每格都更好:例如 DAC-4k SIM 0.87、EnCodec-6k STOI 0.94 与
SIM 0.89 都高于 BigCodec。
论文 caption 说 bold 相对“previous low-bitrate codecs”达到 p < 1e-3,却没有给检验类型、逐样本配对
方式、多重比较修正或原始 metric rows。D4 可以在相同 LibriSpeech test-clean 上重算 current-release
PESQ/STOI/SIM,并报告 delta/CI;它不能仅凭 aggregate 接近就称为 strict reproduction。
MUSHRA:为什么“超过 GT”必须谨慎¶
主观测试随机选 10 条 test-clean,招募 30 名 native speaker,每人 £2.25;剔除 reference mean <80 的 参与者后剩 29 人,每个系统得到 290 个分数。协议使用 hidden reference,但不使用低通 anchor;界面基于 webMUSHRA。作者报告 ICC(2)=0.73,并称为 good agreement。
BigCodec 92.33±1.29,GT 91.84±1.31,点估计高 0.49。两者区间明显重叠;论文没有提供 BigCodec-vs-GT 配对检验或原始票。因此最稳健的解释是“在这 10 条、29 名有效听者的协议里,BigCodec 与 hidden reference 获得相近的高分,点估计略高”,而不是证明生成音频普遍优于真实录音。没有低通 anchor 也会削弱 MUSHRA 量表锚定,且样本只有 10 条。EvoSpeech 可以把这项结果当强主观信号,但不能把 headline 当宇宙结论。
七种未见语言¶
Table II 从 MLS 随机选择德语、荷兰语、西班牙语、法语、意大利语、葡萄牙语、波兰语各 100 条,共 700 条; 没有 English。BigCodec 是表中唯一只用 English corpus 训练的模型。它得到 MCD 4.86、PESQ-NB 3.09、 PESQ-WB 2.47、STOI 0.92、SIM 0.86,优于列出的低率 DAC/EnCodec/LLM-Codec/TF-Codec,但与更高率 DAC-4k/EnCodec-6k 各有胜负。
这张表对我们的多语言路线很重要:模型容量与声学 inductive bias 确实可能形成跨语言迁移,不必把每种语言 都塞进训练集才有基本 reconstruction。但严格复现缺少 MLS sample IDs、random seed、speaker 分布与 normalization。 作者还指出多数系统在这 700 条上的 SIM 反而升高,可能因为 speaker 数较少;因此不能把 SIM 升高解释为 真正的 OOD speaker generalization。
中文、日语、韩语不在论文 Table II 中。未来 D5 的 English/Mandarin 共同集是项目评测,不是 paper row; 必须把“作者未见的 Mandarin evidence”与“七种欧洲语言作者结果”分开。
Ablation:哪些机制真有信号¶
Table III 的正式值是:BigCodec 4.55/3.27/2.68/0.93/0.84;base 4.87/3.03/2.46/0.92/0.74; 300M 4.58/3.24/2.68/0.93/0.84;60k-hour 4.59/3.24/2.67/0.93/0.84;small-enc 4.61/3.19/2.60/0.93/0.81;w/o LSTM 4.71/3.16/2.58/0.92/0.82。顺序均为 MCD/PESQ-NB/PESQ-WB/STOI/SIM。
可以得到四个有限结论:第一,17M→159M 改善最大,尤其 SIM;第二,159M→300M 没有进一步收益;第三, 扩大训练数据但不改 recipe 没有自动改善;第四,encoder 容量和 LSTM 都不是可随意砍掉的冗余。不能得到的 结论是每一项差异都由单一变量严格识别:完整 checkpoint、训练 seed、学习曲线与多次重复都未公开,且多个 ablation 伴随 channel/parameter matching 调整。
Efficiency 与“RTF”命名陷阱¶
作者在 Intel i9-7920X 2.90 GHz、完整 2,620 条 test-clean 上报告 BigCodec encoder 和 decoder 都为
1.1×,base 为 3.1×,并明确定义“大于 1 可实时”。这其实更像 inverse real-time factor 或 speed factor;
传统 RTF 常定义为 wall/audio,数值小于 1 才实时。D4 必须同时写公式与单位,避免把作者 1.1× 和项目
inverse_rtf、rtf 颠倒比较。
本机历史 smoke 的 CPU 时间不能拿来反驳论文:Apple Silicon、wrapper、进程冷启动、implementation path 都不同。正式 cross-check 应在固定 Linux/CUDA 或明确 CPU host 上测 warm/cold 分离,并把速度视为 platform-conditioned,不是模型常数。
发布物与严格复现缺口¶
当前公开物足以做强 current-release cross-check:固定 source、官方 checkpoint、训练代码、真实 index transport、LibriSpeech test-clean 都可获得。但以下内容阻塞 strict paper reproduction:
- 没有 paper-time source tag、训练 random seed、checkpoint step 或完整训练日志;
- 没有 BigCodec-base/300M/ll60k/small-enc/w/o-LSTM checkpoint;
- 没有 MLS 700 条的 ID/seed,也没有 MUSHRA 10 条 ID、stimuli、raw votes 与 participant metadata;
- MCD、PESQ、STOI 的具体包版本、resampling、level normalization 与 failure rule 不完整;
- WavLM-TDNN 只给仓库路径,没有固定 revision、pooling 与 preprocessing hash;
- official inference 与 training inference 被 README 明确区分;
- 论文只报告 entropy 近似 rate,没有发布 entropy coder 或文件 bitstream;
- checkpoint model card 只有 license metadata,没有 architecture/config 数据卡。
因此 D3 应冻结两条轨:paper-native approximate track 在完整 LibriSpeech test-clean 上复算可落地指标; common D5 track 在同一 English/Mandarin 60 条上加入现代 ASR、speaker、ViSQOL 与真实 payload accounting。 MUSHRA 只能标为 author-reported,除非作者 stimuli/票或我们自己的预注册听测存在。
对 EvoSpeech 原创 baseline 的核心启发¶
第一,不要把 low-bit family 当作只能做小模型。 BigCodec 的最大贡献就是在固定 1.04 kbps 下,用 159M 容量把前沿抬高。我们的原创学生模型可以很小,但 teacher、search prior 与 distillation target 应积极吸收大模型。
第二,低维 VQ 比单纯扩大 codebook 更本质。 8192 code 只有在 8 维归一化空间中才容易得到高利用率。 Agent 搜索应把 projection dimension、normalization、commitment 与 entropy utilization 作为联合变量,而不是 只搜 codebook size。
第三,时序预测能力和 encoder 容量都值得保留。 只做强 decoder、弱 encoder 未必能保存 identity; BigCodec 的 SIM ablation 表明 encoder 和 LSTM 对声学细节有独立价值。后续 seed 可以尝试小型 state-space/ causal recurrent module,但必须在相同参数、相同延迟下比较。
第四,model scaling 存在收益饱和。 17M→159M 有用,159M→300M 无明显增益。自动进化不能把参数量当 免费轴;应将 quality、bitrate、state bytes、FLOPs、RTF 与 memory 放入 Pareto,而不是报一个总分。
第五,主观与代理必须分维度。 BigCodec 在 STOI、SIM、MUSHRA 上展示的关系并不一致。内容、speaker、 自然度、表达和总体偏好必须分开校准;代理不能替代人耳,但可高效淘汰远离前沿的候选。
D1 形成的 D3/D4 入口¶
D1 给后续协议留下一个有限而明确的入口:只复现官方 1.04-kbps point;D4 paper-native 以 2,620 条 LibriSpeech test-clean 为主,优先复算 representation/entropy proxy、PESQ-NB/WB、STOI、speaker SIM、资源; MCD 如 evaluator identity 不能确定则标 approximate/blocked;MUSHRA author-only。七语 MLS 没有 sample ID, 可以用公开可重建 selection 做 descriptive extension,但不能冒充 Table II strict row。D5 再用共同 30 English + 30 Mandarin,与其他模型逐 item 对齐。
所有 codec 和 learned evaluator 正式推理都进入 RunPod;Mac 只做 source/hash/JSON、文本、统计、页面与非神经 审计。任何 D4/D5 outcome 出现前,dataset selection、metric revision、失败规则、payload interface 与 cost stop line 都必须冻结。
D1 允许与禁止的结论¶
D1 允许说:BigCodec 的论文方法是“大容量 VQ-VAE + recurrent temporal model + 低维归一化单码本 VQ”; 作者在 LibriSpeech、七语 MLS、ablation 与小规模 MUSHRA 上报告了强结果;发布物足以做 current-release approximate cross-check;最值得迁移的机制是 capacity-under-fixed-rate、low-dimensional VQ 与 temporal modeling。
D1 禁止说:本地已复现 Table I/II/III;BigCodec 主观上普遍超过真实音频;159M 是普适最优规模;60k 小时 数据没有价值;单向 LSTM 等于 causal streaming;1.03 kbps entropy estimate 等于真实 wire payload;没有公开 第二 checkpoint 却存在合法 rate curve;或 8 句 transport 证明了质量 SOTA。
BigCodec 核心代码深读¶
D2 · 固定源码核心代码深读¶
这一阶段回答的是:固定 release 真正执行什么,论文名词怎样落到具体 class、tensor 与配置,token 是否真的能脱离
原音独立解码,以及哪些“官方结果”无法由仓库本身重放。代码身份冻结为
Aria-K-Alethia/BigCodec@09845ab1f5bc7a3d1589c16de820ef15bc2afefe,checkpoint 冻结为
Alethia/BigCodec@c6548832eda95a09dcc3485d9b8ef097ce15f387。本章索引 21 个 source files、
23 组 paper-to-code mapping 和 16 个 release-surface gaps。
D2 没有在 Mac 加载 checkpoint、Torch model、语音或 learned evaluator,也没有运行 ASR。确定性探针只对固定源码做 SHA/commit 审计,并用合成整数 index 执行项目自有的 13-bit pack/parser。真实 encoder→index→fresh decoder 已由先前 8 条 transport evidence 证明,但那批证据仍然不是音质或论文表格复现。
一句话执行心智模型¶
BigCodec 是一个很大的、离线的、固定单码率 VQ-VAE/GAN:16 kHz waveform 经过五级 residual convolution 和两层 unidirectional LSTM,每 200 samples 形成一个 1024-D latent;它被线性压到 8-D,在归一化球面上从 8192 个 code 中 选择一个 13-bit index,再投影回 1024-D。Decoder 先扩到 1536 channels,经过另一组两层 LSTM 与五级镜像上采样, 最后用卷积和 tanh 合成波形。
这个 graph 的真正创新不是一种复杂比特语法,而是极窄表示与极强两侧网络的交换:80 token/s × 13 bit = 1040 bps
保持不变,159M generator 参数承担恢复细节的工作。它没有可合法改变的 RVQ depth、第二个 checkpoint、entropy coder、
packetizer 或 streaming state。因而 BigCodec 对我们的价值主要是低率强教师、低维 VQ 机制与容量上界,不是一个已经
完成网络部署合同的 codec。
固定源码与真实 release surface¶
源码仓库非常小:正式推理由 inference.py 直接构造 CodecEncoder() 与 CodecDecoder(),分别 strict-load checkpoint
中的 CodecEnc 与 generator。训练则经 Hydra 用 CodecLightningModule 构造相同命名的 encoder/generator,再加入
MPD 与 MS-STFT discriminator。README 明确警告:训练 checkpoint 的 inference_train.py 与 official checkpoint 的
inference.py “slightly different”。这意味着 release 至少存在两个 checkpoint schema;不能随意用 training loader
解释 official weights,也不能用 official compact checkpoint 断言完整训练 state。
固定 checkpoint 只有两个 top-level keys。D0 已 strict-load 533 个 encoder/decoder state keys,零 missing/unexpected; encoder 76,530,704 parameters,decoder 加 quantizer 82,905,586,总计 159,436,290;state tensor bytes 637,752,072。D2 没有重新加载这些 tensors,而是引用已冻结的 D0 identity。这样既遵守“Mac 不跑神经模型”的规则, 也防止把一次机制审计伪装成新模型实验。
release 没有 evaluation directory、PESQ/STOI/MCD/WavLM wrapper、LibriSpeech/MLS manifest、MUSHRA UI、投票导出、
ablation weights 或 entropy model。README 的强 headline 是作者主张,不是可执行测试。因此 D3 必须自己冻结
paper-native approximate protocol;不能写一个 python evaluate.py 命令,因为官方根本没有这个文件。
official inference:一个目录重建脚本,不是 codec transport¶
inference.py:22-48 把 sample rate 写死为 16 kHz,用 librosa.load(..., sr=16000) 读目录中所有 WAV;encoder 与
decoder 都直接 .cuda()。它先计算 pad=(200-(T%200)),再调用 encoder;decoder 的 forward(vq=True) 返回
vq_post_emb, vq_code, loss,脚本却直接把 vq_post_emb 交回 forward(vq=False)。vq_code 没有被写到文件,也没有
被重新读取。
所以 official inference 验证的是 reconstruction demo,不是 encoder/bitstream/decoder 分离。幸运的是 upstream
ResidualVQ.vq2emb() 与 CodecDecoder.vq2emb() 确实提供 index→embedding 路径。项目 adapter 利用它把真实 index
打包为 EVSBIG01,在 fresh decoder 进程中只从 index 恢复 embedding;先前 transport probe 观测 code-derived embedding
最大误差约 2.38e-7。这个事实证明 token 足以解码,但文件格式是 EvoSpeech 的,不是作者格式。
还有一个精确的 padding 陷阱:当 T % 200 == 0 时,公式不是补零,而是补整整 200 samples。官方输出也没有 trim 回
原始长度。对 16,000-sample 输入,理论直觉会猜 80 frames,固定实现实际给 encoder 16,200 samples,即 81 frames。
项目 payload 把 original_num_samples、official_padding_samples 和 frame_count 全写入 header,decoder 合成后再裁回
原长。D2 的纯整数 probe 正是用这条 exact-hop case,防止未来 wrapper “顺手修正”后却继续冒充 bit-exact upstream。
encoder:48→1536 channels 的五级压缩¶
CodecEncoder 默认 ngf=48、up_ratios=(2,2,2,5,5)、out_channels=1024。开始是 mono→48 的 kernel-7
weight-normalized Conv1d。每个 EncoderBlock 输入在概念上是当前 channel 的一半:先做 dilation 1/3/9 的三个
ResidualUnit,再用 kernel 2×stride、stride=stride 的 convolution 下采样并把 channel 翻倍。五级之后 channel
是 96、192、384、768、1536,时间长度缩小 2×2×2×5×5=200。
每个 ResidualUnit 都是 SnakeBeta → kernel-7 dilated Conv1d → SnakeBeta → kernel-1 Conv1d 加 skip。这里的 Snake
不是普通 ReLU 的替换标签:项目引用的 alias-free activation wrapper 会先上采样、执行周期非线性、再下采样,以降低
非线性造成的 aliasing。它增加计算,却给 decoder/encoder 更适合音频周期结构的 inductive bias。
下采样后是 ResLSTM(1536, num_layers=2, bidirectional=False)。实现把 [B,C,T] 转成 [B,T,C],走 LSTM,
再与输入残差相加。最后 SnakeBeta + kernel-3 Conv1d 输出 1024-D latent。按 16 kHz/200,它的稳态 frame clock 是
80 Hz。短音频与边界长度不能只用 duration×80 推断,因为 upstream padding 强制至少多一个边界 frame。
unidirectional LSTM 为什么仍不等于 causal¶
论文和代码都使用 unidirectional LSTM,这只说明 recurrent recurrence 不看未来 hidden state。完整 encoder 的 residual Conv1d 使用对称 padding;首尾 kernel-7 convolution 也对称 padding;alias-free activation filtering 同样有局部邻域。 官方入口把整条 utterance 一次交给模型,没有 streaming buffer、lookahead 声明、chunk state 或 flush API。Decoder 也使用完整 utterance tensor。
因此“LSTM 单向”不能升级为“codec causal”。算法 latency 需要逐层 receptive field、filter delay、lookahead 与 packet flush 的完整审计;real-time factor 只描述算得快不快,也不能证明边输入边输出。BigCodec 可以在 CPU 上比实时快而仍是 offline 模型,也可能在某个平台慢于实时而不改变它的非因果 topology。
对原创 baseline 的启发是:可把 BigCodec 当 non-causal quality teacher,然后单独蒸馏到 causal student。若直接把当前 checkpoint 标为可通信,就会把 offline 上界和 deployable Pareto 混为一谈。
factorized VQ:1024-D 表示怎样压进 8-D 球面¶
FactorizedVectorQuantize 在 dim != codebook_dim 时建立两个 weight-normalized Linear:1024→8 与 8→1024,
中间是 nn.Embedding(8192,8)。输入先从 [B,1024,T] 转为 [B,T,1024] 做投影,再转回 [B,8,T]。
nearest-neighbor search 把每个 encoding 与 codebook matrix 分别 F.normalize,按展开的 squared Euclidean distance
选择 index。在单位球面上,它等价于最大 cosine similarity。
一个容易被论文简图略过的细节是:归一化只用于选择距离。选出 index 后,decode_code() 从原始
self.codebook.weight 做 embedding lookup,返回的不是临时 normalized codebook;训练 loss 也作用于原始 z_e/z_q。
所以“在单位球面量化”最精确的代码解释是“assignment 使用归一化方向”,而不是“decoder 永远收到单位范数向量”。
这个区别会影响我们未来替换 codebook、做 entropy regularization 或分析 embedding norm。
训练态 commitment loss 是 MSE(z_e, stopgrad(z_q)) × 0.25,codebook loss 是
MSE(z_q, stopgrad(z_e)) × 1;随后用 z_e + stopgrad(z_q-z_e) 做 straight-through,再投回 1024-D。
没有 EMA codebook update:embedding 是 Parameter,由 optimizer 的 gradient descent 更新。这与论文叙述一致。
“ResidualVQ”在当前 graph 中为什么只有一层¶
generic ResidualVQ 支持多个 stage:每层量化 residual,减去 quantized,再把各层 quantized 相加;codes stack 成
[num_quantizers,B,T]。但 config/model/default.yaml 与 CodecDecoder 默认都明确写
vq_num_quantizers: 1。因此当前 checkpoint 只有一层 FactorizedVectorQuantize;它没有 residual refinement,也不能
通过 q1/q2/q4 形成 rate curve。
这里必须区分“源码类具有多层能力”和“发布 artifact 支持多码率”。把配置改成 2 层会改变 state-dict keys/shape,官方 checkpoint 无法 strict-load 新层;把同一层重复两次也不等价于训练好的第二 residual quantizer。D5 只能有一个 BigCodec point。要研究 0.5 或 2 kbps,必须重新训练并把它称为我们的 derivative baseline,而不是 BigCodec official。
vq2emb() 接受形状 [B,T,num_quantizers],逐层 lookup 后相加。项目 adapter 把 official encoder 产生的
[1,B,T] code stack permute 成 [B,T,1],再 transpose 回 decoder 所需 [B,1024,T]。source-blind contract
绑定 checkpoint SHA,因为相同整数在不同 codebook weights 中没有相同语义。
decoder:1536-channel recurrent generator¶
Decoder 先用 kernel-7 Conv1d 把 1024-D quantized embedding 映射到 1536 channels;然后是与 encoder 同结构的两层
unidirectional residual LSTM。五个 DecoderBlock 的 strides 是 (5,5,2,2,2),乘积仍为 200。每块先经过
SnakeBeta 与 transposed convolution 把时间上采样、channel 减半,再加 dilation 1/3/9 的三个 residual units。
channel 依次为 768、384、192、96、48。末尾 SnakeBeta、kernel-7 Conv1d、tanh 输出 mono waveform。
这条路径解释了参数规模为什么主要在瓶颈附近:1536-channel LSTM 与卷积非常昂贵,而 token 表示本身每帧只有一个整数。 它也说明模型 size 与 bitrate 必须分账。159M parameters 不进入每段音频 payload,却决定客户端部署内存、下载成本、 warm start 和训练预算;13-bit index 决定 representation rate。二者不能相除或相加成一个“总码率”。
官方 inference.py 从 quantized embedding 直接 decode;项目 fresh decoder 从 codebook lookup 重建同一 embedding。严格
transport 证据已经验证后者可用。D2 没有再跑 decoder,因为 Mac 只做非神经审计;未来 D4/D5 的正式解码全部进入
RunPod,并由 evaluator 只读取 payload/reconstruction,不访问原音路径。
训练数据与 source config 的真实边界¶
preprocess.py 枚举 train-clean-100、train-clean-360、train-other-500,合计对应 LibriSpeech 960 h;路径根目录却
是作者本机 /home/xindetai/Downloads/LibriSpeech。FSDataset 用 librosa 重采样到 config 的 16 kHz;不足
min_audio_length 的文件补零,然后在完整 waveform 中用 Python random.randint 随机裁一段。固定 config 把
min_audio_length=16000,所以是 1 秒 crop。
batch size 配置为 8,DataLoader 有 8 workers、shuffle true、persistent workers true。train.py 在模块 import 时调用
seed_everything(1024),用 Lightning DDPStrategy;但 checked-in trainer.devices=1。论文的八张 A100 必须通过 CLI
override 或另一个未发布的 launch 配置实现。仓库没有容器、CUDA/cuDNN identity、worker seeding audit 或 dataset hash,
因此不能从这份 config 得到 bit-exact training reproduction。
论文说约 600k steps;source default 写 min_steps=max_steps=1,200,000。scheduler 的 warmup 1k + down 500k 后保持
minimum LR,可能让 600k 附近成为作者实际停止点,但仓库没有 log/last checkpoint metadata 证明。D3 必须把这项标为
paper/source divergence,不应偷偷把 config 改成 600k 后宣称官方复现。
optimizer 与 scheduler:为什么 optimizer lr 写 1.0¶
configure_optimizers() 对 encoder+generator 建 AdamW,对两类 discriminator 建另一个 AdamW;betas 从 config 取
(0.8,0.9)。令人困惑的是两者 base lr=1.0。原因是 custom WarmupLR 由 LambdaLR 实现,但返回的 lambda 实际写成
绝对目标学习率:从 1e-5 二次 warm 到 1e-4,再线性降到 1e-5。base lr 设 1.0 后,乘法结果恰好等于所需绝对 LR。
这个实现可工作,但非常脆弱:如果有人按常规把 optimizer lr 改成 1e-4,却不改 scheduler,实际 LR 会再缩小 1e-4 倍。 Agent 搜索优化器时不能只改 YAML 一格;必须把 base optimizer 与 lambda 定义视为一个耦合基因,并把实际 step-wise LR 写入实验 artifact。
训练每 batch 先更新 discriminator,再用同一 forward output 更新 generator;两侧都 clip norm 到 1.0。validation/test
step 是 pass,checkpoint callback 却 monitor mel_loss 且 save_top_k=1。训练 step 确实 log 了 mel_loss,但没有独立
validation,所以所谓 best checkpoint 是训练 metric 条件下的选择,不是 held-out validation selection。
reconstruction、GAN 与 feature losses¶
MultiResolutionMelSpectrogramLoss 建七组 MelSpectrogram:FFT/window 32、64、128、256、512、1024、2048,hop
为 window/4,mel bins 分别 5 到 320,Slaney norm/scale,先 clamp 再 log10,最后逐尺度 L1 求和。Generator 再乘
lambda_mel_loss=15。代码构造了 waveform l1_loss/l2_loss criterion,但 active compute_gen_loss 从未使用它们;
这与论文“移除 waveform L1”一致。
GAN criterion 是 least-squares:discriminator 让 real→1、fake→0;generator 让 fake→1。MPD 包含 periods 2/3/5/7/11, 每个判别器先按 period reshape 波形,再经 2D conv。SpecDiscriminator 对五组 STFT(128 到 2048)分别生成 complex-like 两通道频谱输入其 2D conv stack。代码没有构造 MSD;与论文“预实验无收益后移除”一致。
Generator adversarial loss累加 MPD 与 MS-STFT 的末层;feature matching 对两者所有非末层 feature map 做 L1,权重各 1。 VQ loss 由 commitment×0.25 和 codebook×1 在 quantizer 内组成,再直接加入总 loss。论文公式与 active source 在这些主轴 相符;但源码没有提供 paper ablation switch、多个训练 seed 或 loss trajectory,不能证明每项因果贡献。
EVSBIG01:13-bit representation 与文件 bytes 分账¶
upstream 只返回 integer tensor。EvoSpeech EVSBIG01 header 固定 source revision、checkpoint revision/SHA、sample rate、
hop、frame count、原始/补齐长度、token order 与非流式状态;随后将 0..8191 index 按 time-major 紧密打包为 13 bits。
parser 会验证 magic、header size、每个固定 identity、exact padding、frame count、representation bits、token byte count、
range 与尾部 padding bits。
D2 对 16,000-sample 合成长度构造 81 个确定性整数,不生成 waveform。representation 是 81×13=1053 bits,紧密存储
132 bytes;完整 self-describing audit payload 是 1,020 bytes。这个短样本的 representation-effective rate 是 1.053 kbps,
高于稳态 1.04,只因为 upstream 多补一帧。文件 payload rate 更高则主要来自约 888 bytes 固定 header。长音频中 header
摊销会下降,但 representation 仍须独立报告。
重复写入 byte-exact 相同;parser 完整恢复全部 81 个 index。探针还把最后 byte 的三个未用 high bits 设为非零,parser 正确拒绝;把末 token 设成 8192,writer 也拒绝。它证明的是 serialization integrity,不是 upstream bitstream、entropy coding、语音质量或网络效率。正式 benchmark 仍会同时记录 exact representation、complete payload 与 duration。
无语音确定性机制探针¶
scripts/trace_bigcodec_code.py --check 会验证 fixed Git commit、21 个 source SHA、环境锁、payload adapter 和历史 transport
JSON 的 SHA。它不会 import Torch,不会读取 checkpoint,不会产生波形,也不会调用 ASR/quality model。它只执行纯整数
13-bit packing/parser 和 upstream padding arithmetic,并引用 D0 的 parameter/state accounting。
这是刻意的设备分工:源码理解、hash、schema、安全 parser 与页面在 Mac;正式 codec neural inference 与 learned evaluator 在 RunPod;ASR 只允许 RunPod/API。D2 如果为了“看 shape”在 Mac 偷跑一次 checkpoint,就会破坏已经冻结的研究习惯, 并且没有必要——D0 transport 已留下真实 token shape、strict-load 与 fresh decoder 证据。
历史 8 条 smoke 覆盖 English、Mandarin 与 critical transport,aggregate representation 约 1041.49 bps;每条 fresh decoder 命令都不含 source path。它证明 release 能跑、真实 index 可传输、长度可恢复;没有 ASR、speaker、ViSQOL 或论文 metric, 因此不会在 D2 被升级成 quality evidence。
paper-code 一致与不一致¶
一致部分很强:16 kHz、hop 200、单 8192 code、8-D factorized VQ、两层单向 LSTM、48→1536 五级规模、MPD+ MS-STFT、multi-scale mel、LSGAN、feature matching、commitment 0.25、gradient codebook update 都有明确代码落点。 这说明论文中心方法不是只存在于文字里。
不一致/缺口同样重要:论文约 600k steps 对 source 1.2M;论文八 GPU 对 default 一 GPU;paper Table I/II/III 与 MUSHRA
没有任何 executable manifest;WavLM-TDNN 没有 revision;official inference 与 train inference 明示略有不同;official
padding 多补整帧;requirements 未完全固定且漏列 tqdm;official script hard-code CUDA;没有 entropy coder 或 bitstream。
这些缺口不等于 BigCodec 失效。它们决定复现等级:方法与 checkpoint identity 可以严格复现;current-release quality 可以 独立评测;论文 aggregate 只能 approximate cross-check;随机 MLS/MUSHRA 与未发布 ablation checkpoint 则 blocked。 把这四类压成“复现/未复现”二元标签会丢失真正的信息。
release-surface gap 与安全边界¶
当前 payload parser 比 upstream demo 更严格,但它仍是 trusted-baseline audit format,不应直接作为公开 untrusted candidate 接口。JSON header 虽有限制 65,536 bytes,未来 arena contract 仍应进一步限制字段集合、integer 上限、frame count 与总 payload bytes,并加入 checksum/version migration。decoder worker 必须只获得 payload 与固定 checkpoint;不能看到 original audio、transcript、manifest private fields 或 evaluator。
BigCodec 只有一个 fixed point,减少了 rate cheating,但仍要防 encoder 把 source path/metadata 写进 header。当前 baseline header 只含公开 identity 与长度;candidate contract 应改成 evaluator 分配的 opaque stream,独立计完整 bytes,再把 stream 交给 isolated decoder。Agent 不能自报 token count、entropy 或 nominal bitrate。
exact-hop padding 也属于安全/公平问题。如果不同 wrapper 有的补整帧、有的不补,短句的 token count 和 payload rate 会受益 或受罚。D3/D5 必须冻结“忠实 upstream”路径,同时可以另报一个 corrected-padding derivative,但二者不能混在同一 official row。质量指标必须裁回相同原始 duration 后计算。
对原创 baseline 与 Agent 进化的启发¶
第一,BigCodec 证明在固定低率下扩大 encoder/decoder 有真实研究价值,但 159M 不应成为我们的默认部署目标。它更适合作为 non-causal teacher 与 upper bound:原创 student 可以蒸馏 code assignment、decoder features 或 perceptual targets,并将 active state、RTF、latency 一起纳入 Pareto。
第二,8-D normalized assignment 是比“8192 entries”更深的变量。Agent 应联合搜索 projection dimension、codebook size、 norm strategy、commitment、embedding norm、usage entropy 与 dead-code behavior;若只扩大 codebook,不监控 utilization, 很容易得到空容量。代码显示 assignment norm 与 decoded raw embedding norm 是两个可分离设计点。
第三,temporal model 可作为明确的 gene,但必须带 latency constraint。可以比较 LSTM、causal convolution、state-space、 chunked attention;每个候选要报告 receptive field、lookahead、state bytes 和 quality,不能只在 offline test-clean 上追一个分。
第四,训练系统的第一个自动化任务应是消除复现歧义:实际 LR trace、global batch、seed、dataset manifest、checkpoint step、 loss curve。自动科研若没有这些 metadata,会把 source 1.2M 与论文 600k 的差异误判为“可以随意训练”,浪费昂贵 GPU。
第五,BigCodec 的 single-point constraint 很适合做初始 agent baseline:变量少、token contract 清楚、反馈可验证。我们可以从 一个更小的透明 VQ-GAN seed 出发,用 BigCodec 机制作为 prior,而不是直接让 Agent 修改 159M 黑盒。每次实验只允许改 白名单参数/模块,并用 frozen evaluator 与 hidden set 审计 reward hacking。
D3/D4/D5 的直接约束¶
D3 paper-native track 必须固定完整 LibriSpeech test-clean 2,620 条,明确 PESQ-NB/WB、STOI、speaker evaluator 的实现、 resampling、level normalization、失败规则与 CI。MCD 如果无法确定作者实现则标 approximate/blocked。paper Table I 的 BigCodec aggregate 可以做 delta reference,但没有 per-item author rows,不能做逐项 equality。
MLS track只能称公开可重建 extension,除非作者给出 700 item IDs/seed。MUSHRA 保持 author-only;未来我们自己的听测要 预注册 stimuli、随机化、维度、tie、听者数量与导出格式,不能冒充作者协议。ablation checkpoints 不存在,因此 Table III 只做 knowledge evidence;真正验证机制需要我们重新训练 derivative。
D4/D5 所有 codec inference、ViSQOL/WavLM/Resemblyzer 与任何 ASR 都进 RunPod/API。BigCodec 只运行 1.04-kbps official point; payload 必须是 EVSBIG01 或后续冻结的等价 source-blind format;representation、serialized bytes、state、GPU seconds、peak memory 分账。exact-hop full-frame behavior保留并逐 item 记录。
D2 允许与禁止的结论¶
D2 允许说:固定 release 确实实现了五级 48→1536 residual CNN、两组两层单向 LSTM、1024→8→1024 factorized VQ、 一个 8192-entry codebook、MPD+MS-STFT 与论文主损失;真实 index 有 upstream lookup path;项目 13-bit transport 是 确定、严格、source-blind 的;official exact-hop padding 会额外产生一帧;source 与 paper 存在明确训练/evaluation 缺口。
D2 禁止说:本地已经重跑 BigCodec 模型或任何 ASR;D2 synthetic index 证明音质、utilization 或 token distribution; EVSBIG01 是作者 bitstream;unidirectional LSTM 证明 causal streaming;generic ResidualVQ class 证明 official checkpoint 有 多档码率;论文 Table I/II/III 或 MUSHRA 已复现;600k/8-GPU training 可由当前 default config bit-exact replay;或者 159M 规模应直接成为我们的原创 baseline。
BigCodec:论文原生复现协议¶
D3 · 论文原生复现协议¶
D3 在任何 BigCodec 正式 paper-native quality run 之前冻结。冻结前已存在的 8 条 smoke 只证明 transport、真实 index、 fresh decoder 与资源边界;它们没有 PESQ、STOI、MCD、SIM 或 entropy aggregate,因此不构成“提前看过最终指标”。 本协议提交后才能在 RunPod 上 materialize 完整数据、运行 codec 与 learned evaluator。
一句话裁决¶
BigCodec 的最佳可执行交叉验证不是再抽 30 或 100 条,而是按论文使用完整 LibriSpeech test-clean 2,620 条,对唯一 官方 1.04-kbps checkpoint 逐项运行 source-blind encoder→EVSBIG01→fresh decoder,然后复算 MCD、PESQ-NB/WB、 STOI、WavLM-TDNN SIM 与经验 token entropy。因为作者没有发布 evaluator lock、per-item rows、MUSHRA votes、随机 MLS IDs 或 ablation checkpoints,D4 的 quality 数字只能是 current-release approximate cross-check;checkpoint/hash、码率算术、 payload 与数据 archive identity 则可以严格判定。
数据:为什么坚持完整 2,620 条¶
论文明确写 LibriSpeech test-clean 全部 2,620 utterances,16 kHz。官方 SLR12 资源页将其标为 CC BY 4.0 clean test set;
archive 固定为 346,663,984 bytes、MD5 32fa31d27d2e1cad72775fee3f4849a9。D4 下载到 persistent Network Volume 后先核对
bytes/MD5,再计算 SHA-256;解包后必须发现恰好 2,620 个非空 FLAC,路径、source bytes/SHA、speaker/chapter/utterance、
sample rate、duration 写入 manifest,之后才允许 codec execution。
这里不做 hash-ranked subset。完整集一方面与论文 population 相同,另一方面能够稳定估计 8192-code occupancy 与经验 entropy; 也避免 100 条对 speaker distribution、短句 padding 和 metric failure 过于敏感。每个 selection row 都必须有 outcome:成功、 codec error、payload error、metric-specific error都保留,禁止删除难例后重算均值。
dataset population 相同仍不等于 strict table reproduction:作者没有发布每个 source file 的 hash manifest、预处理脚本或 per-item metric rows。D4 会把 archive identity 作为 strict primary artifact,把 aggregate quality 作为 approximate current release。
唯一 endpoint 与 source-blind transport¶
只运行官方 checkpoint c6548832eda95a09dcc3485d9b8ef097ce15f387、SHA-256
1fba3806e87cc01c1a65bea22fa1becefbbf46881e4219593c4d9f3cf56206b9。不改 codebook、不丢 frame、不重复 quantizer、
不制造 0.5/2 kbps 点。Source commit 固定为 09845ab1f5bc7a3d1589c16de820ef15bc2afefe。
每条音频由 encoder worker 规范化为 16 kHz mono,忠实执行 upstream 200-(T%200) padding,输出真实 one-codebook indices;
indices 以 13 bits 紧密写入 EVSBIG01。Evaluator 独立读取完整 file bytes、header 与 token;decoder worker 只获得 payload、
fixed source/checkpoint 和 output path,命令、环境与 mounted input 中都不得包含 original source path 或 transcript。解码后按 header
裁回原始 sample count,再与 reference 对齐评分。
每条保存 nominal representation bits、finite-duration representation bps、packed token bytes、complete EVSBIG01 bytes、token min/max/unique、padding、encode/decode seconds、peak memory 和 output hash。码率结果不允许从模型自报字段读取,必须由 evaluator 解析 payload 后独立计算。
author metrics 与当前可执行 metric contract¶
PESQ-WB 固定 16 kHz wide-band;PESQ-NB 固定作者所称 narrow-band 路线,在 frozen evaluator 中显式保存输入采样率与 mode,
若当前 package 不接受声明组合则逐项 typed failure,不能换实现后覆盖。STOI 固定 16 kHz、extended=False。reference 与
reconstruction 都是 mono float waveform,先裁至共同原始长度;不做 result-dependent loudness normalization。
SIM 使用论文脚注所指的 WavLM-TDNN wavlm_large_finetune.pth 体系。当前可执行 surface 采用固定
OpenMOSS/MOSS-Audio-Tokenizer-Eval@b8e23bffad180116fb0c4ce0552a42690a69e603 的 sim path、
checkpoint 1,301,926,579 bytes / SHA-256 51f07e3b...fe7f94b,并固定 transitive WavLM base 1,261,965,425 bytes /
SHA-256 6fb4b3c3...bf100f。这与作者链接的 family 相符,但论文没有冻结 stopes/s3prl/runtime,因此 eligible verdict 只能 approximate。
MCD 使用 pymcd==0.2.1 的 fixed distribution与显式 mode,逐项保存;作者只写 MCD 名称,没有 MFCC/world、order、DTW、silence、
frame shift 等实现细节,因此无论数值多接近,都不能 strict pass。D4 report 必须在表头写 current pymcd approximate,并同时给出
作者 4.55 作为 descriptive reference。
经验 entropy rate 从完整 2,620 条实际 token 统计:汇总全局 code counts,计算 Shannon H=-Σp log2 p,再乘每秒 80 frames。
同时报告 empirical bits/token、active codes、perplexity 与 theoretical 13 bits/token。作者只说“approximating information entropy”,
未给平滑/分组公式,所以 1.03 kbps 对比是 approximate;theoretical 1.04 kbps 与实际 token count/payload arithmetic 则 strict。
统计、容差与 paper delta¶
每项 metric 保存,不只保存 mean。Aggregate 报 mean、median、standard deviation、有效/失败数;PESQ/STOI/MCD/SIM 的 95% CI 按 speaker cluster bootstrap,10,000 replicates、seed 3407。经验 entropy 通过 speaker-cluster bootstrap 重算 code counts;资源统计 分 cold first item 与 steady state,并报告 total GPU seconds。
论文作者 aggregate 仅作为 descriptive reference:MCD 4.55、PESQ-NB 3.27、PESQ-WB 2.68、STOI 0.93、SIM 0.84、
approx entropy rate 1.03 kbps。协议不预设“必须接近多少才算通过”,因为 evaluator identity 不等价;D4 输出 delta 和 CI 后给
directionally_consistent、materially_different 或 incomparable_due_to_failures 描述,不把近似指标伪装成 strict pass/fail。
strict endpoint identity、archive identity、2,620 completeness、13-bit range、source-blind decode、exact duration、theoretical arithmetic 可以用零容差。任何 selected row 缺失、payload parser失败、decoder接触原音、checkpoint/hash 漂移都会使对应 strict claim failed。
预先 blocked 的作者主张¶
MUSHRA 缺少 10 条 IDs、所有 stimuli、randomization、participant metadata、29 人 raw votes 与具体 CI/test;D4 不做新听测替代。 点估计 92.33 与 GT 91.84 保留 author-only,不能写“复现超过 GT”。
七语 MLS 缺少每语 100 条 IDs、seed、speaker distribution 与 normalization;可以在未来做 deterministic multilingual extension, 但 Table II strict row预先 blocked。五个 ablation endpoint 没有 weights/logs,Table III blocked。CPU efficiency 没有 author harness, 当前 GPU/CPU timing只能 platform-conditioned。完整 training regeneration 缺环境、global batch launch、600k checkpoint step、log、seed 和 8-GPU配置,也 blocked。
RunPod、缓存与成本停止线¶
Mac 不运行 codec checkpoint、ASR、speaker model 或 learned evaluator。正式 BigCodec decode 与 SIM 全部在 RunPod;PESQ/STOI/MCD
可在同一 allocation 执行以减少数据搬运。SLR12 archive、解包 FLAC、checkpoint、evaluator source/weights、runtime overlay与结果都存
Network Volume;Pod删除后保留。Pod启动后禁止临时探索式 pip install,依赖必须由 frozen overlay/container命中。
先运行 16 条 calibration(固定 path sort 的首 16 条,不看内容/时长/分数),要求所有 identity、payload、decode、metric schema通过, 首个有效 batch不超过 180 秒。用 calibration wall time 保守外推 2,620 条;预计 lifecycle 超过 6 GPU-hours 或 $4.00 时自动停止并回传 projection,不擅自继续。steady-state 非推理/评分 overhead 目标≤10%;异常高则先修缓存。优先 RTX 4090 24 GB;若显存不足才同机房切 L40S 48 GB。每次退出无论成功失败都删除 Pod,保留 Network Volume,并记录真实 balance delta。
D4 required outputs 与禁止捷径¶
D4 必须输出 protocol/result/selection identity、2,620-row JSONL、aggregate JSON、中文报告、run log、endpoint/metric/runtime identity、 cost projection和 evidence archive hash。结果不允许只存在远端;回传后本地 fail-closed auditor逐项复核,并在 commit 前重放 aggregate。
禁止:用历史 8 条 smoke冒充 full result;在看到分数后换 dataset/metric;把 SOTA ASR API填入论文 metric;把 MOSS common benchmark 结果填到 Table I;用 nominal 1.04 替代真实 payload计账;把 project EVSBIG01称为作者 bitstream;为得到更好均值删除 failure;用新 听测补作者 MUSHRA;用 current GPU timing判作者 i9 result失败;或在没有 checkpoint时模拟 ablation。
D3 允许与禁止的结论¶
D3 允许说:BigCodec D4 已冻结为完整 2,620-item current-release paper-family cross-check;strict 与 approximate/blocked claims已分开; 唯一 endpoint、dataset、metric families、统计、RunPod边界、成本停止线与required outputs已在结果之前确定。
D3 禁止说:任何 author aggregate已复现;当前 evaluator与 paper-time binary等价;MCD/SIM/entropy delta 已经知道;MUSHRA/MLS/ablation 能够严格执行;Mac可以运行神经模型;或者 D3 protocol本身就是 evaluation complete。