判定方法与校准数据
这个工具给出一个「像不像有损转码」的判断。判断总得有依据,也总得有边界。这一页把依据、门限、实测结果和已知会失手的情形全部摊开,你可以自己核对,而不是只信一个颜色标签。
一句话:它只能回答「高频有没有被整齐地砍掉」,不能回答「这是不是原厂母带」。结论是线索,不是证明。
一、它到底在看什么
FLAC、WAV、ALAC 只是容器。把一段 128 kbps 的 MP3 解码后重新压成 FLAC,容器是无损的,内容仍然是那条被砍掉高频的 PCM。反过来,采样率、位深、码率这些参数都可以被改写得很好看,唯独频谱里少掉的那一段高频补不回来。
所以本站不看扩展名和标签,只看解码后的样本:高频能量延伸到哪里、以什么形状结束、整首歌是否一致、样本精度是否与标称位深相符。音频在浏览器里用源采样率解码,避免被浏览器统一重采样到 48 kHz 而把高解析分支抹掉。
为控制耗时,频谱分析最多覆盖前 20 秒;但分段抽样与峰值扫描跑完整首,不局限于这个窗口。
二、判定流程与门限
- 找边界。对平均频谱和逐帧峰值保持谱(max-hold)分别扫描,取超过「峰值 − 70 dB」的最高频率为候选边界;边界由 9 点中位数越线确定,不做倍频程平滑。max-hold 用来避免偶发高频瞬态被平均谱淹没。
- 查高采样率断层。采样率高于 48 kHz 且候选边界贴着奈奎斯特时,再检查 18 kHz 以上有没有一段连续低于门槛 8 dB、宽于 1.5 kHz 的空档;若空档下方是音乐、上方另有一层低电平内容,就判为「内容断层 + 顶层填充」,把有效边界回退到空档下沿,不再按「高频延伸到 48 kHz」处理。
- 量台阶。边界上下能量落差 ≥ 22 dB、且边界下方仍高于峰值 − 45 dB,才算「砖墙式硬截止」。自然滚降是渐变的,不会这么整齐。
- 算带宽占比。截止频率 ÷ 奈奎斯特(采样率的一半)。≥ 0.96 视为真无损特征,< 0.85 支持转码判断,中间地带判「需人工判断」。采样率高于 48 kHz 时另走高解析分支:只有占比 < 0.6 且确有台阶才判「升采样」。
- 找独立证据。整首均匀抽 12 段各自测截止点(错开=VBR 浮动,高度一致=统一低通);检查截止点上方是否被一层平坦噪声填充;检查样本低位是否成片为零(位深补零);扫描是否存在超过 0 dBFS 的样点(整数 PCM 不可能)。
- 汇总分级。输出真无损 / 高概率有损转码 / 需人工判断 / 有损等档位,并把本次命中的每一条依据逐条列在结果下方。
关键常量
| 常量 | 取值 | 作用 |
|---|---|---|
| EDGE_REL_DB | −70 dB | 相对峰值的有效带宽门槛,低于此视为阻带 |
| STEP_DB | 22 dB | 判定「硬截止」所需的最小台阶 |
| FFT_SIZE | 4096 | 频谱分析窗口 |
| MAX_SECONDS | 20 秒 | 频谱分析上限;分段与峰值扫描仍覆盖整首 |
| ratio 分档 | 0.96 / 0.85 | 真无损 / 疑似 / 高概率转码的分界 |
| 噪声掩盖门限 | 平坦度 > 0.5 且相对电平 > −66 dB | 识别人为铺在截止点上方的假频谱 |
| GAP_MIN_HZ | 1500 Hz | 高采样率判「内容断层」所需的最小空档宽度 |
| GAP_MARGIN_DB | 8 dB | 空档要比有效带宽门槛再低多少(即峰值 − 78 dB) |
| 滚降曲率 | 强 > 12 / 弱 > 6 dB/oct,中频门限 > −15 dB | 提示砖墙之外的缓降/额外低通 |
波峰因数、动态范围、削波比例这些波形指标只放进折叠的诊断区,并明确标注不参与判定;唯一的例外是「超出 0 dBFS 的样点数」,因为整数 PCM 在物理上不可能越界,它是很强的二次处理证据。
三、校准数据
下面所有数字来自本地回放脚本的实际运行输出,不是估算。测试集分两类:频域合成的黄金集,以及经真实编码器编码再解回 PCM 的校准集。
合成黄金集(12 条)
| 类别 | 条数 | 结果 |
|---|---|---|
| 真无损(含高解析) | 2 | 2/2 正确,误杀 0 |
| 砖墙式假无损(MP3 各码率、升采样、位深补零) | 5 | 5/5 检出 |
| 对抗样本(抖动、老录音、人为高频填充、96k 顶层填充) | 4 | 4/4 符合预期 |
| 已知局限(AAC 式平滑缓降) | 1 | 判「需人工判断」,见下一节 |
全量前端回归与这份黄金集一同运行,真实回归失败 0。
真实编码器校准集(8 条)
用浏览器内置编码器把同一段素材编成 Opus 24/48/96/128 kbps 与 AAC 32/64/96/128 kbps,再解回 PCM 存成 WAV——即「伪装成无损容器的转码文件」。
| 观测项 | 实测 |
|---|---|
| 检出情况 | Opus 4 档、AAC 4 档,8/8 检出;原始对照误杀 0 |
| 截止频率 | 约 20.4–20.5 kHz |
| 边界台阶 | 68.8–71.5 dB |
| 阻带电平 | −95.1 ~ −93.8 dB(max-hold 抬到 −85.6 ~ −84.0 dB) |
| 滚降曲率 | −3.7 ~ −1.4 dB/oct,缓降规则 0/8 误触发 |
这份校准仍有缺口:浏览器编码器的 AAC 码率请求基本被忽略(32/64/96 kbps 实为同一条约 100 kbps 码流),Opus 码率准确但各档带宽都停在 20.4 kHz。也就是说它验证了「真实转码能不能被抓到」,没有验证「码率—带宽」梯度。用 ffmpeg 生成完整 MP3/AAC/Opus 码率矩阵的校准还在待办里。
四、已知会失手的地方
- 高码率有损转码可能完全检不出。约 128–160 kbps 以上,调校良好的 MP3 / AAC 常常不留下可测的低通,频谱看起来与无损无异。这是「假无损可能蒙混过关」的主要来源。
- 伪装成连续高频的填充层仍可能漏检。若填充噪声与真实内容之间没有留出宽于 1.5 kHz 的空档(例如整段高频被均匀铺满、或填充层把空档也一起填上),断层检查抓不到。此时只能靠「高频是否随音乐内容动态变化」人工核验。
- 真无损可能被误判。老录音、磁带转录、黑胶翻录、窄带麦克风、人声、重度齿音消除,以及母带端主动加的低通,都会产生类似编码器的截止形状。这也是我们宁可判「需人工判断」也不硬判转码的原因。
- 平滑缓降与自然滚降几乎不可分。一段「自然内容 + 12 kHz 起额外缓降」的样本,其曲率与中频特征落在真无损样本附近。单独凭频谱无法定罪,故标为已知局限、只给「需人工判断」。
- 细粒度底噪结构这条路已经验证走不通。我们做过对照实验:即使直接注入理想化的 AAC 频带台阶纹理并做 32 帧平均,带间二阶差分方差仍是 9.75(注入组)对 10.22(平滑对照组)——自然噪声底把台阶完全淹没,没有分离度。因此没有引入体积庞大的解码器,也不宣称能靠底噪纹理判别。
拿到「需人工判断」或任何你不认同的结论时,不要停在结果页:手册里有四步核验清单,包括拿同一录音的可靠版本做 A-B 频谱叠加、观察高频是否随音乐内容动态变化、交叉验证时避免同源结论、以及回溯来源。
五、隐私与可复核性
音频文件在你的浏览器里解码和分析,不离开设备;站点不接收音频、不保存文件名。回归测试里有一条专门的门,检查扫描期间没有任何携带音频的出站请求。结果页的「判定准吗」是唯一会联网的入口,且必须你主动点击,只发送判定级别、是否认同和几个数值指标,不含文件名、路径或频谱曲线——详见隐私政策。
结果页会把本次命中的每一条依据和已算出的中间数字(边界台阶、带宽占比、滚降曲率、整首分段)列出来,你可以逐条对照这一页的门限,也可以点「查看判定方法与校准数据」随时回来核对。若结论与事实不符,欢迎用结果页的反馈入口告诉我们。
本页随产品迭代更新,改动记录见更新日志。本站是个人运营的免费工具站点,与任何播放器、音频厂商或内容平台均无关联。