剪除錯誤與重複(管線代理 2)
自動編輯的第二個步驟,在 cut-silences 之後執行。它會移除人類編輯在第二輪剪輯時會刪除的內容:結巴(「這個這個」、「我- 我-」)、立即重複的字詞、假起頭(被放棄又重新開始的句子)以及重錄片段(重錄的台詞——保留乾淨的版本,丟棄失敗的版本)。
決定哪些算是錯誤是判斷問題,而非公式——強調性重複(「絕不,絕不」)與修辭性雙重疊詞(「第一段是,是這個……」)在機械上看起來一模一樣。因此此代理預設為審查閘門:它會提出包含完整上下文的候選剪輯;由代理(與使用者)決定;僅會渲染核准的剪輯。
何時使用
- 「剪掉錯誤」、「移除結巴 / 重複」、「清理失誤」、「保留最佳鏡頭」、「剪掉假起頭」
- 作為主編輯工作流程的第二階段,針對 cut-silences 的輸出進行。
三步驟流程
1. 找出候選點(機械式)
node .agents/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": "我- 假起頭" }, ... ] }
(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(供動態圖形代理 + 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(動態圖形 / 分層卡片)。