AccurateRip 与 CTDB

Curse go back

Curse go back

Back with double fear and flak

Silver arrow through the night

Silver arrow take they flight

Silver arrow seeks and finds

——《Curse Go Back》William S. Burroughs

和 CDDB 比起来,AccurateRip 是一个功能更加特化的、更「隐藏在幕后」的数据库,它在 2003 年 1 月作为 dBpoweramp Music Converter 的一个插件推出。dBpowerAMP 是一个老牌的音视频系列软件,功能囊括了音视频格式转换、CD 抓轨和烧录、音乐元数据编辑,以及局域网媒体共享等服务,如果你下载过 foobar2000,你可能会注意到 dBpoweramp 的母公司 illustrate 的产品常年占据了 foobar2000 官网的广告位。

AccurateRip 的诞生代表了人类对于完美拷贝 CD 上的音乐这件事的不懈追求——CDDB 虽然可以完美生成每张 CD 的「指纹」,但是 CDDB 并不记录、也无法验证任何音频内容,而只是通过 CD 上曲目的长度和分布来进行匹配,这些信息仅来自于 CD 最内圈的一小段 TOC 表。因此,仍然存在着由于 CD 本身的脏污和损坏,光驱故障,或者软件本身的错误等原因导致的抓轨所得的音频文件与记录在 CD 上的版本有出入的可能。

除了故障之外,大多数光驱在读取 CD 数据时,抓轨或播放软件所请求的数据扇区与光头实际读取到的数据扇区存在一定的偏移,虽然这个偏移量通常非常小 (光盘的一个数据扇区包含七十五分之一秒的音频数据,光驱的偏移量一般会少于一个扇区),几乎不可能产生人耳可感的差别,但这仍然会抓取到的音频文件互相之间存在差异。光驱的实际偏移量非常难以测量,甚至连 EAC 的作者 Andre Wiethoff 测出的被 AccurateRip 用作参考值的标准量都在 2006 年被网友推翻,实际上也偏移了 30 个采样 (也就是大约 0.00068027 秒)。幸好,如此细微的误差并不会造成任何实际的影响,也与抓轨的精确度无关。

来自 AccurateRip 官网 的示意图,可以看到不同的光驱偏移量是如何影响到抓取到的 CD 数据范围的。

这个问题要如何解决呢?要求 CD 发行方提供每一首曲目的音频文件的校验码显然是无稽之谈,如果他们有得选,估计根本不会让抓轨这件事存在。AccurateRip 所采取的方法就是交叉对比。在接入 AccurateRip 算法的抓轨软件运行时,会为每一条音轨的音频数据生成一个校验码并提交到数据库,如果在这之前已经存在同一张 CD 的数据,那么就可以间接验证你的抓轨的准确性。例如,假设某张 CD 在数据库中有十次抓轨记录,而你的抓轨的校验码和这十次都相同,那么几乎可以确定你的抓轨是相当完美的;假设你的校验码和数据库中的十次都不同,这说明你的音频文件虽然不一定有什么听得见的瑕疵,但肯定和大多数人的有所出入;假如十个中有数个记录与你相同,而数个记录与你的相异,那么更有可能的是这张 CD 有过多个版本的压盘——毕竟多个不同的人有着具有相同瑕疵的 CD 的概率非常小。