录音迁移验收报告:与源库逐条对账
供应商说「全部转换完成」,这句话无法被检验,也无法向内审与监管交代。验收要回答的是三个数字加一份清单:应导多少、实导多少、缺了多少,以及缺的是哪些。本文讲清基准为什么只能取源库记录数、缺失的时间分布为何比总数更有用、常见缺失根因怎么分开统计,以及一份交得出去的验收报告该包含什么。
更新于
「转完了」不是验收标准,「可核验」才是
迁移项目收尾时,最常见的交付说法是「全部转换完成」。这句话没法被检验,也没法拿去向内审或监管交代——它没有说明应该有多少、实际拿到多少、少了多少、少的是哪些。能被检验的说法只有一种形态:以源平台数据库的记录为基准,给出总数、成功数、缺失数,并且每一条缺失都能定位到具体是哪一通。前者是一句结论,后者是一份第三方可以自己重算一遍的报告。验收的意义不在于相信供应商,而在于任何人拿着同一份数据都能算出同一个结果。
基准只能取源库记录数,不能取导出目录里的文件数
成功率的分母决定了这份报告有没有意义。用导出目录里的文件数当分母,算出来永远接近百分之百——没导出来的那些通话根本不在分母里,缺失自己把自己藏起来了。正确的分母是源平台数据库里符合口径的通话记录数:先用时间区间和业务范围把应导范围圈定,统计这个范围内的记录总数,并且在导出开工之前就把这个数字书面确认下来。之后成功率是可用音频条数除以这个基准,缺失率是二者之差除以同一个基准。「可用」也要有定义:能解码、时长与库记录相符、能定位回源库主键,三条都满足才算数。
缺失的时间分布比缺失总数更有用
一份只写「缺失 0.8%」的报告等于没写。同样是 0.8%,均匀散布在十年里,多半是个别文件或介质的偶发损坏;全部堆在某三个月,通常指向那段时间系统配置、编码版本或存储介质批次发生过变化;集中在每天的同一个时段,那多半是当年的归档任务与话务高峰撞上了。所以缺失清单必须按月、按周、按小时各出一张分布,根因往往会自己浮出来。总数只能告诉你有没有问题,分布才能告诉你问题在哪,也才能判断剩下那些缺失还值不值得继续投入去捞。
缺失根因要分开统计,因为它们不是同一种失败
缺失不是一种现象,是几种完全不同的现象被加进了同一个数字。介质层面的损坏:磁带或磁盘上的物理坏块,表现为读取报错,或者读出来的数据比应有长度短。编码层面的异常:文件读得出来,但解码失败或解出来是噪音,多半源于当年用了非标准的编码参数或私有变体。还有最容易被忽略的一类:源库里那条记录本身就是空的——通话建立了、记录写了,但当年就没录上,或者音频在多年前的某次系统操作中已经丢失。最后这一群不是本次迁移造成的,必须单独列出;否则它会被算成迁移的失败,真正修得动的问题也会被埋在里面。
随机抽、按时段抽、按坐席抽,回答的不是同一个问题
对账只能证明件数对上了,证明不了内容是对的,补这一层的是抽样复核。纯随机抽样给出的是全局质量的无偏估计,适合写进报告的结论段,但样本会自然集中在数据量最大的那几年,最早期的材料可能一条都抽不到。按时段分层抽样强制每一年、每一个介质批次都必须抽到,专门用来发现只闭合在某一段时间里的系统性问题。按坐席或按分机抽样,则用来发现与录音通道绑定的问题,比如某几路通道从一开始就是单声道或者电平异常。三种抽法各有各的盲区,正式验收应当三种都做,结果分开记录而不是合成一个数。
一份交得出去的验收报告包含什么
- 应导范围的定义:时间区间、业务范围、纳入与排除规则,以及据此从源库统计出的记录总数,也就是基准。这个数字要在导出开工前双方书面确认。
- 三个核心数字与算法:成功数、缺失数、成功率,并写明「成功」的判定条件(能解码、时长与库记录相符、能定位回源库主键)。
- 逐条缺失清单:每条带源库主键、通话时间、失败原因分类(介质损坏 / 解码失败 / 源记录为空 / 其他),任何一条都能按主键回查。
- 缺失的时间分布:按月与按小时各一张,对每一处明显的聚集给出解释,定位不了的就明写未能定位。
- 抽样复核结果:抽样方式、样本量、通过条数、不通过条数与具体问题,随机与分层两类分开列,不合并成一个通过率。
- 可复算的原始材料:源库统计所用的查询条件、导出清单、校验脚本的输出。接收方拿着这些,应当能脱离供应商算出同样的数字。
上海万椿的做法
我们承接呼叫中心历史录音的解析与迁移,核验报告与音频、元数据一起构成交付物,而不是收尾时补的一份说明。基准在开工前确认,成功与缺失的判定条件写在文档里而不是留给事后解释,缺失逐条列出并分类,时间分布与抽样复核结果一并给出,每个数字都附上可以被重新计算的原始材料。目标是让这份报告能直接拿去面对内审与监管:不是请对方相信录音迁完了,而是让对方能自己验证迁完了。