♪ 无损音乐识别
公开说明 · 更新 2026-11-06

判定方法与校准数据

这个工具给出一个「像不像有损转码」的判断。判断总得有依据,也总得有边界。这一页把依据、门限、实测结果和已知会失手的情形全部摊开,你可以自己核对,而不是只信一个颜色标签。

一句话:它只能回答「高频有没有被整齐地砍掉」,不能回答「这是不是原厂母带」。结论是线索,不是证明。

一、它到底在看什么

FLAC、WAV、ALAC 只是容器。把一段 128 kbps 的 MP3 解码后重新压成 FLAC,容器是无损的,内容仍然是那条被砍掉高频的 PCM。反过来,采样率、位深、码率这些参数都可以被改写得很好看,唯独频谱里少掉的那一段高频补不回来。

所以本站不看扩展名和标签,只看解码后的样本:高频能量延伸到哪里、以什么形状结束、整首歌是否一致、样本精度是否与标称位深相符。音频在浏览器里用源采样率解码,避免被浏览器统一重采样到 48 kHz 而把高解析分支抹掉。

为控制耗时,频谱分析最多覆盖前 20 秒;但分段抽样与峰值扫描跑完整首,不局限于这个窗口。

二、判定流程与门限

  1. 找边界。对平均频谱和逐帧峰值保持谱(max-hold)分别扫描,取超过「峰值 − 70 dB」的最高频率为候选边界;边界由 9 点中位数越线确定,不做倍频程平滑。max-hold 用来避免偶发高频瞬态被平均谱淹没。
  2. 查高采样率断层。采样率高于 48 kHz 且候选边界贴着奈奎斯特时,再检查 18 kHz 以上有没有一段连续低于门槛 8 dB、宽于 1.5 kHz 的空档;若空档下方是音乐、上方另有一层低电平内容,就判为「内容断层 + 顶层填充」,把有效边界回退到空档下沿,不再按「高频延伸到 48 kHz」处理。
  3. 量台阶。边界上下能量落差 ≥ 22 dB、且边界下方仍高于峰值 − 45 dB,才算「砖墙式硬截止」。自然滚降是渐变的,不会这么整齐。
  4. 算带宽占比。截止频率 ÷ 奈奎斯特(采样率的一半)。≥ 0.96 视为真无损特征,< 0.85 支持转码判断,中间地带判「需人工判断」。采样率高于 48 kHz 时另走高解析分支:只有占比 < 0.6 且确有台阶才判「升采样」。
  5. 找独立证据。整首均匀抽 12 段各自测截止点(错开=VBR 浮动,高度一致=统一低通);检查截止点上方是否被一层平坦噪声填充;检查样本低位是否成片为零(位深补零);扫描是否存在超过 0 dBFS 的样点(整数 PCM 不可能)。
  6. 汇总分级。输出真无损 / 高概率有损转码 / 需人工判断 / 有损等档位,并把本次命中的每一条依据逐条列在结果下方。

关键常量

常量取值作用
EDGE_REL_DB−70 dB相对峰值的有效带宽门槛,低于此视为阻带
STEP_DB22 dB判定「硬截止」所需的最小台阶
FFT_SIZE4096频谱分析窗口
MAX_SECONDS20 秒频谱分析上限;分段与峰值扫描仍覆盖整首
ratio 分档0.96 / 0.85真无损 / 疑似 / 高概率转码的分界
噪声掩盖门限平坦度 > 0.5 且相对电平 > −66 dB识别人为铺在截止点上方的假频谱
GAP_MIN_HZ1500 Hz高采样率判「内容断层」所需的最小空档宽度
GAP_MARGIN_DB8 dB空档要比有效带宽门槛再低多少(即峰值 − 78 dB)
滚降曲率强 > 12 / 弱 > 6 dB/oct,中频门限 > −15 dB提示砖墙之外的缓降/额外低通
curv = slope(2–8 kHz) − slope(8–18 kHz)  // 高频比中频陡多少
证据累加,而不是一票定罪。缓降曲率单独出现时只判「需人工判断」;只有当它同时伴有噪声掩盖、整首分段硬截止或超出 0 dBFS 的样点等另一条独立证据时,才升级为「疑似有损转码」。这样设计是因为缓降形状与自然录音、母带处理几乎不可分。

波峰因数、动态范围、削波比例这些波形指标只放进折叠的诊断区,并明确标注不参与判定;唯一的例外是「超出 0 dBFS 的样点数」,因为整数 PCM 在物理上不可能越界,它是很强的二次处理证据。

三、校准数据

下面所有数字来自本地回放脚本的实际运行输出,不是估算。测试集分两类:频域合成的黄金集,以及经真实编码器编码再解回 PCM 的校准集。

合成黄金集(12 条)

类别条数结果
真无损(含高解析)22/2 正确,误杀 0
砖墙式假无损(MP3 各码率、升采样、位深补零)55/5 检出
对抗样本(抖动、老录音、人为高频填充、96k 顶层填充)44/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 误触发
阈值不是照着合成样本过拟合出来的。阻带 −95 dB 对门限 −70 留出约 24 dB 余量,即使 max-hold 把阻带抬到 −85 dB 仍留 15 dB;台阶 69 dB 对门限 22 dB 有约三倍余量。这些样本同时验证了缓降规则没有被真实砖墙误触发。

这份校准仍有缺口:浏览器编码器的 AAC 码率请求基本被忽略(32/64/96 kbps 实为同一条约 100 kbps 码流),Opus 码率准确但各档带宽都停在 20.4 kHz。也就是说它验证了「真实转码能不能被抓到」,没有验证「码率—带宽」梯度。用 ffmpeg 生成完整 MP3/AAC/Opus 码率矩阵的校准还在待办里。

四、已知会失手的地方

请把判定当作一条线索。下面每一条都是频谱方法本身的能力边界,不是本站独有的缺陷,同类工具(Spek 目测、auCDtect 一类判别器)同样受限于此。

拿到「需人工判断」或任何你不认同的结论时,不要停在结果页:手册里有四步核验清单,包括拿同一录音的可靠版本做 A-B 频谱叠加、观察高频是否随音乐内容动态变化、交叉验证时避免同源结论、以及回溯来源。

五、隐私与可复核性

音频文件在你的浏览器里解码和分析,不离开设备;站点不接收音频、不保存文件名。回归测试里有一条专门的门,检查扫描期间没有任何携带音频的出站请求。结果页的「判定准吗」是唯一会联网的入口,且必须你主动点击,只发送判定级别、是否认同和几个数值指标,不含文件名、路径或频谱曲线——详见隐私政策。

结果页会把本次命中的每一条依据和已算出的中间数字(边界台阶、带宽占比、滚降曲率、整首分段)列出来,你可以逐条对照这一页的门限,也可以点「查看判定方法与校准数据」随时回来核对。若结论与事实不符,欢迎用结果页的反馈入口告诉我们。

本页随产品迭代更新,改动记录见更新日志。本站是个人运营的免费工具站点,与任何播放器、音频厂商或内容平台均无关联。