剪切口误与重复(流水线 Agent 2)
自动编辑的第二步,在 cut-silences 之后运行。它移除人类编辑在第二遍审阅时需要剪掉的内容:口吃("the the", "I- I-")、立即重复的词语、错误开头(一个句子中途停止并重新开始)以及重录(重录的台词——保留干净的版本,丢弃出错的版本)。
判断什么算是口误是 主观判断而非固定公式——强调性重复("never, never")和修辞性双重("the first piece is, is this…")在机械检测上和口吃看起来一模一样。因此,本 agent 默认采用 审核-门槛模式:它会呈现候选片段及其完整上下文;由 agent(及用户)做决定;仅渲染经过批准的剪切。
何时使用
- "剪切口误","移除口吃/重复","清理失误","保留最佳镜头","剪切错误开头"
- 作为主编辑工作流的第二阶段,在 cut-silences 的输出上运行。
三步流程
1. 查找候选片段(机械检测)
node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<silence-transcript.json> --out-dir video-projects/<slug>/assets
输入通常是 Agent 1 的 <stem>.silence-transcript.json,这样剪切将落在已经静音的时间轴上。输出文件:
<stem>.cut-candidates.json—— 结构化候选片段(类型、置信度、建议的cut范围、removes/keeps文本、上下文、推荐动作)<stem>.cut-candidates.md—— 可读的提案
候选片段类型:stutter(立即重复的单词),retake(通过 Jaccard 相似度检测出的重复或近似重复片段),false_start(短暂的未说完就被丢弃的短语,然后重新开始)。
2. 审核(门槛——必需)
在 上下文中 阅读每个候选片段,决定保留还是剪切。机械检测器无法区分有意的强调/修辞与真正的失误,因此不要盲目相信 recommend —— 要阅读 removes + context。常见误报:强调性重复("it's never, never hands-off"),系动词后跟疑问句("the piece is, is this…"),列举。
向用户呈现候选片段,每个项目附带一个推荐;收集用户的批准。将批准的剪切写入一个文件:
{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "I- 错误开头" }, ... ] }
(start/end 以秒为单位,基于输入转录本/视频时间轴。你可以放宽候选片段的范围——例如对于重录片段,从出错镜头的开始处一直切到重录的干净起始处。)
3. 应用批准的剪切
node .agents/skills/cut-mistakes/scripts/apply-cuts.mjs \
<silence-transcript.json> --cuts approved-cuts.json \
--video video-projects/<slug>/assets/edited-silenced.mp4 \
--output video-projects/<slug>/assets/edited-clean.mp4 --apply
输出编辑决策列表(EDL)、一个重新计时后的 <stem>.mistakes-transcript.json(供动态图形 agent + validate-beat-sync.mjs 使用)、一个决策日志,以及(带 --apply 参数时)实际剪切后的视频(通过 ffmpeg trim+concat,音画同步)。不传 --apply 则进行预演。
审查结果
使用共享的审查工具来肉眼检查剪切并检查边界:
node scripts/build-edl-review.mjs <stem>.mistakes-edl.json \
--original video-projects/<slug>/assets/edited-silenced.mp4 \
--edited video-projects/<slug>/assets/edited-clean.mp4 \
--output video-projects/<slug>/assets/mistakes-review.html
npx serve . -p 8080 -n
备注
- 如果原始素材非常干净,可能几乎没有或完全没有真正的剪切——这是有效结果;不要为了凑数而剪切自然言语。
- 在两个单词之间的剪切是硬接拼接。对于口吃/错误开头通常很干净;若音频过渡较紧,可以后续添加 20-30ms 的淡入淡出效果。
- 将
mistakes-transcript.json和干净视频传递给 Agent 3(动态图形/分层卡片)。