裁切口误与重复(流水线 Agent 2)
自动化剪辑的第二步,在裁切静音之后运行。它会移除人工剪辑师在第二遍审阅时会剪掉的部分:结巴(“这个这个”、“我-我-”)、立即重复的词、假开头(未说完就重新开始的短语)以及重录音(一行重新录制——保留干净的那次,丢掉糟糕的那次)。
判断什么算口误是主观判断,不是公式——有意的重复(“从不, 从不”)和修辞上的双重(“第一部分是, 是这样……”)在机械层面看起来和结巴完全一样。因此这个 Agent 默认启用审核门控:它会呈现带有完整上下文的候选裁切;由 Agent(和用户)决定;只有被批准的裁切才会被渲染。
何时使用
- “裁掉口误”、“移除结巴/重复”、“清理说错的地方”、“保留最佳版本”、“裁掉假开头”
- 作为主剪辑工作流的第二阶段,在裁切静音的输出上运行。
三步骤流程
1. 查找候选裁切(机械检测)
node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<静音字幕.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。常见的误报:强调性重复(“它是从不、从不放手”)、系动词后接疑问(“第一部分是, 是这样……”)、列举。
向用户呈现候选裁切,每个项目附带推荐建议;收集批准。将批准的裁切写入一个文件:
{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "我- 假开头" }, ... ] }
(start/end 以秒为单位,基于输入字幕/视频时间线。你可以扩大候选裁切的范围——例如对于重录音,从糟糕版本的开始裁切到干净重新开始的地方。)
3. 应用批准的裁切
node .agents/skills/cut-mistakes/scripts/apply-cuts.mjs \
<静音字幕.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-30 毫秒的淡入淡出。
- 将
mistakes-transcript.json和干净的视频交给 Agent 3(动效 / 分层卡片)。