剪輯錯誤與重複(管線智能體 2)
自動化剪輯的第二步驟,在剪除靜音之後執行。它移除人類編輯在第二次處理時會剪掉的內容:口吃(「這這」、「我- 我-」)、立即重複的詞語、錯誤開頭(被放棄的片語重新開始),以及重錄片段(保留乾淨的版本,丟棄錄壞的)。
判斷什麼算是錯誤是判斷,而不是公式——強調式重複(「絕不,絕不」)和修辭性重複(「第一段是,是這樣…」)在機械上與口吃一模一樣。因此,此智能體預設採用審查閘門:它會提供完整上下文的候選項目;由智能體(和使用者)決定;只有批准的剪輯才會被渲染。
使用時機
- 「剪掉錯誤」、「移除口吃/重複」、「清理失誤」、「保留最佳版本」、「剪掉錯誤開頭」
- 作為主剪輯工作流程的第二階段,處理剪除靜音的輸出。
三步驟流程
1. 尋找候選項目(機械式)
node .claude/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<silence-transcript.json> --out-dir video-projects/<slug>/assets
輸入通常是智能體 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": "I- 錯誤開頭" }, ... ] }
(start/end 以秒為單位,基於輸入的轉錄/影片時間軸。您可以擴展候選項目的範圍——例如,對於重錄片段,從錄壞版本的起點剪到重新開始的乾淨點。)
3. 套用批准的剪輯
node .claude/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 修剪與串接,音訊/視訊同步)。省略 --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加上乾淨的影片交給 智能體 3(動態圖形 / 分層卡片)。