# Adobe Podcast音频交接校验:SHA-256清单核对WAV,定位被替换的中间区块 1. 固定导出后交接范围 先列已取得的逐人源轨与节目编辑版,给每份文件独立file_id和role,另填项目/导出/批准记录。官方支持逐人原始录音下载,但本课不重做远程录制、上传进度或服务端恢复;没有真实导出时直接用sender目录的作者正弦样例练习。 2. 发件端冻结可信清单 运行python3 freeze-manifest.py sender track-list.json manifest.json。作者脚本实际读取文件字节SHA-256及WAV采样率、位深、声道和帧数,并按一秒PCM生成区块摘要。先人工批准原件,再只读保存这份清单;不要在接收端用收到的文件重建“正确”清单。 3. 按角色打包并保留清单来源 交付文件路径与track-list.json一一对应,把节目版明确标为program_fixture,源轨样例标为source_fixture。真实项目可替换为participant_original与program。清单来源另行确认;SHA不证明录制者身份,也不能发现批准原件在下载前就已缺内容。 4. 接收端复核整文件摘要 先运行python3 verify-handoff.py manifest.json recipient-good,三份文件均匹配才退出0。再对recipient-missing运行,缺guest-source.wav会实际退出1;不得以“文件夹能打开”代替数量与路径核对。该命令为作者本地验收,不调用Adobe接口。 5. 定位同长文件的中间变更 运行python3 verify-handoff.py manifest.json recipient-gap。坏例保留48000Hz、16bit、192000帧与4秒总长,仅将嘉宾PCM的第48000至96000帧置零,真实报告定位[1,2)秒摘要变化。时长一致仍不能证明字节完整;区块不一致不是模型检测到的语义缺段。 6. 排除节目版冒充源轨 对recipient-role-error运行同一检查:guest-source.wav实际被program-mix.wav替换,报告整文件不匹配并识别其摘要等于已知节目版。角色判断来自可信清单及字节对应,不是从波形自动推断谁在说话。保留错误文件供定位,回发件端取正确原件。 7. 复验并交接异常单 修正复制或重新取得原批准文件后重跑,保存原始stdout、退出码、文件身份与异常区间。随包四次实测为正常0、中间替换1、角色替换1、缺文件1。真实项目仍应回听内容;无可信原件时不能靠补静音或改清单把失败变为通过。 身份:本地作者交接契约,目标Adobe操作未执行。 文件入口:index.html;命令与真实退出码见handoff-validation.json。manifest.json必须来自可信发件端,不能用坏接收副本反向重建。