链接:https://pan.quark.cn/s/502193fe3d32
一个检测假无损音频的启发式工具——从有损源(如 320k MP3)转码、再重新封装成 FLAC/ALAC 来冒充 无损的文件;以及假 Hi-Res——把 CD/有损素材上采样塞进 96/192 kHz 容器。可对单个文件给出判断, 也可对整个音乐库批量扫描、输出排好序的可疑清单
严格只读——只分析、只报告,绝不移动、改名或删除任何文件。
纯 Rust、零系统依赖——FLAC/ALAC/WAV/AIFF/CAF 走 symphonia;DSD(.dsf/.dff)走原生 check-dsd 子命令。
Hi-Res 感知——可检测上采样、空高频段、以及频谱空洞。
并行——几千个文件的库在现代机器上几分钟即可扫完。
原理
一切都基于解码后的 PCM 推断——容器声称的格式、码率、采样率一律不信。工具用 symphonia 解码音频,对整首歌做分段 加窗 FFT(rustfft,采用 Blackman-Harris 窗)、对功率谱取 平均,再跑三个检测器。Blackman-Harris 窗的旁瓣极低(约 −92 dB),可避免低频能量泄漏上溢、掩盖有损 截止断崖。
- 高频截止(有损转码)。 有损编码器在固定频率施加低通,留下一道能量断崖,其位置暴露原始码率:
截止定义为”能量仍在频谱自身峰值 65 dB 以内的最高频率”(峰值相对阈值)。
采样率真伪(假 Hi-Res / 上采样)。 对声称 Hi-Res(> 48 kHz)的文件,真品内容会明显延伸到 CD 上限(22 kHz)之上。若真实内容只到 22 kHz、且 26 kHz 以上一片空白,那就是 CD/有损素材 被上采样塞进 Hi-Res 容器——标记为 🔼 上采样。报告里的高频延伸指标(26 kHz 以上能量相对峰值的 dB)让差距一目了然:真 Hi-Res 约在 −30 dB,上采样会跌到 −70 dB 以下。
频谱空洞(仅供参考)。 AAC/Vorbis 转码可能在截止以下留下凹陷(notch)。工具会检测并报告, 但因其在真实音乐上易误报,不影响判定。
两个刻意的设计点:
峰值相对,而非底噪相对。 以响亮的中频峰值(而不是近乎静音的频谱顶端)为基准,意味着即使 这首歌本身高频就少,硬低通也会显出真正的断崖——管弦/人声类转码在底噪法里会被读成”满频”, 峰值法能正确揪出。
分析整首。 很多歌以安静的前奏开场,镲片/打击乐等高频要到后面才进来,只取开头会低估截止、 造成误报。
更新日志:
2026.06.27更新 重大更新
1.添加spek类似图形,小菜一碟啊
2.新增缓存技术, 对数据结构做了大量实验, 花了大量时间研究线程和缓存的关系, 移动音乐文件也能找到缓存, 与文件名无关,但是改变的文件体积和修改日期,就无法识别了, 每个文件的缓存2.7MB,建议不要删除,这是加载速度提升的有效手段,你可以定期整理,会删除失效的缓存信息.
3.添加高级分析方法,可以检测升频,研究目的,信不信由你
4.新增记住窗口位置
5.分析列表锁定列,就像excel一样,
6.队列顺序按文件顺序,可能开始有点乱,跑一阵子 队列就跟上了
7.所有的位置都支持中文英文,包括日志,日志每次运行前会清空,也就是只保留最后一次分析结果.
8.修复内存泄漏,目前大负载情况下,测试2000+文件,内存占用不到1G, 如果提示你们启用缓存,一定要启用,同一个目录可以一遍一遍的增量的扫描