导出后冻结原件清单,接收端定位同名同长WAV的中间区块替换
本页展示随包原生输入和验收参考。目标产品运行状态:未运行。表格与图片不代表产品已经生成的结果。
sender/*.wav / manifest.json / track-list.json
实际发件端清单
三份4秒标准库正弦WAV,均为作者技术输入,非Adobe录制或导出。逐文件SHA见下表;每秒PCM摘要见manifest.json。先批准完整原件再冻结清单。
| file_id | path | role | sampleRate | sampleWidthBytes | frames | durationSeconds | byteSha256 |
|---|---|---|---|---|---|---|---|
| host-source | host-source.wav | source_fixture | 48000 | 2 | 192000 | 4.0 | 2ee94712bb4bf12c278cbe9d3b6587037260ab64fd6ba1b62f2ae2ce172c4ae9 |
| guest-source | guest-source.wav | source_fixture | 48000 | 2 | 192000 | 4.0 | 53d48ed030bd2f0d87f82b5513ddd851cb2649372cccdf9ec40bc709fe5ee7b0 |
| program-mix | program-mix.wav | program_fixture | 48000 | 2 | 192000 | 4.0 | c20b887e4b5a8e0e9425cec8ddd7c37d436176a2e7ce1a2445b8a5c289137e62 |
两个源信号与节目版
host-source:220Hz;guest-source:330Hz;program-mix:两信号算术叠加。不是说话人录音或AI分离。
接收端定位同长文件的中间替换
python3 verify-handoff.py manifest.json recipient-gap
真实坏例仍为4秒、192000帧,只有guest-source第48000–96000帧被置零。下面四格是对可信清单实际计算的PCM摘要状态。
摘要一致
不一致:置零区块
摘要一致
摘要一致
{
"actualDurationSeconds": 4,
"actualFrames": 192000,
"changedBlocks": [
{
"startFrame": 48000,
"endFrame": 96000,
"startSeconds": 1.0,
"endSeconds": 2.0
}
]
}四组真实验收
| case | expectedExit | criterion |
|---|---|---|
| recipient-good | 0 | 3 files exactly match approved manifest |
| recipient-gap | 1 | same 4s file; guest PCM [1,2) differs |
| recipient-role-error | 1 | known program bytes in guest source slot |
| recipient-missing | 1 | guest source path missing |
明确构造的坏样例
| case | bad_value | why_reject |
|---|---|---|
| equal-duration gap | guest frames 48000–96000 replaced with zero | one PCM block differs despite equal length |
| wrong role | program-mix copied into guest-source.wav | actual hash equals known program fixture |
| missing file | guest-source.wav absent | required manifest entry missing |
| untrusted manifest | rebuild approved baseline from received bad copy | would erase evidence; approve sender original first |
这套作者检查只比较可信发件端批准基线。SHA一致不证明Adobe来源或语义完整;不得用坏副本重建清单、补静音伪装恢复。