Cut Mistakes & Repeats(Pipeline Agent 2)是自动化剪辑流程的第二步,在 cut-silences 之后运行。它删除的是人类剪辑师在第二遍过片时才会处理的瑕疵:口吃(“the the”“I- I-”)、紧接出现的重复词、中途放弃又重启的短语(false start),以及重录片段(同一句被重录——保留干净版本、丢弃失败版本)。
判断什么算“错误”靠的是判断力而非公式——强调性重复(“never, never”)和修辞性叠词(“the first piece is, is this…”)在机械层面与口吃看起来完全相同。因此该智能体默认采用审查门控(review-gated):它呈现候选剪辑并附完整上下文,由智能体和用户共同决定,只有获批的剪辑才会被渲染。
适用场景
- “cut the mistakes”“remove stutters / repeats”“clean up the flubs”“keep the best take”“cut false starts”等请求。
- 作为主剪辑工作流的第二阶段,作用于 cut-silences 的输出。
三段式流程
1)查找候选(机械化)
命令:
bash
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——结构化候选(type、confidence、拟定的 cut 范围、removes/keeps 文本、上下文、recommendation)
- <stem>.cut-candidates.md——可读的提案
候选类型:stutter(立即重复的词)、retake(通过 Jaccard 相似度识别的重复/近似重复片段)、false_start(重新开始的简短废弃短语)。
2)审查(门控环节——必需)
逐条阅读候选的上下文并决定保留或删除。机械检测器无法区分有意的强调/修辞与真正的口误,因此不要盲目相信 recommend,要阅读 removes + context。常见误报:强调性重复(“it's never, never hands-off”)、系动词接问句(“the piece is, is this…”)、列举。
向用户展示各候选并附上每项的建议,收集批准结果。将获批的剪辑写入文件:
json { "cuts": [ { "start": 100.93, "end": 101.06, "reason": "I- false start" }, ... ] }
(start/end 以输入转录/视频时间线上的秒为单位。可以扩大候选范围——例如对 retake,从失败版本的起点剪到干净重启处。)
3)应用获批剪辑
命令:
bash
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(供动作图形智能体和 validate-beat-sync.mjs 使用)、决策日志,以及带 --apply 时输出的剪辑后视频(ffmpeg trim+concat,音画同步)。去掉 --apply 则为试运行(dry run)。
审查结果
使用共享审查工具查看剪辑并抽查边界:
bash
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
注意事项
- 非常干净的演绎可能只产生很少甚至零个真实剪辑——这是有效结果;不要为了凑数而剪掉自然口语。
- 两个口语词之间的剪辑是硬切(hard join)。对口吃/false start 通常很干净;若需更紧凑的音频,可稍后加 20-30ms 淡入淡出。
- 将 mistakes-transcript.json 与干净视频交给 Agent 3(动作图形 / 分级卡片)。