剪除錯誤與重複(管線代理 2)
自動編輯的第二個步驟,在剪除靜音段落之後執行。它移除人類編輯在第二遍中會剪除的內容:結巴(「這個這個」、「我- 我-」)、立即重複的詞彙、假開頭(未說完即重啟的語句)以及重錄片段(保留乾淨的錄音,丟棄失敗的錄音)。
決定何謂錯誤是一種判斷,而非公式——強調性重複(「永不,永不」)與修辭性疊加(「第一個部分是,是這個…」)機械上與結巴完全相同。因此此代理預設採用審查閘門:它會呈現候選剪輯及其前後文;代理(與使用者)共同決定;只有核准的剪輯才進行渲染。
使用時機
- 「剪除錯誤」、「移除結巴/重複」、「清理失誤」、「保留最佳鏡頭」、「剪除假開頭」
- 作為主編輯流程的第二階段,在剪除靜音段落的輸出結果上執行。
三部分流程
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": "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(提供給動態圖形代理 + validate-beat-sync.mjs)、決策記錄,以及加上 --apply 時會輸出剪輯後的影片(ffmpeg 修剪+串接,影音同步)。省略 --apply 則進行乾執行(dry run)。
檢視結果
使用共用的檢視工具來目視檢查剪輯並抽查邊界:
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(動態圖形 / 分層卡片)。