Supprimer les erreurs et répétitions (Agent 2 de la pipeline)
Deuxième étape du montage automatisé, exécutée après la suppression des silences. Elle supprime ce qu'un monteur humain couperait lors d'un second passage : les bégaiements ("le le", "j- j-"), les répétitions immédiates de mots, les faux départs (une phrase abandonnée puis recommencée) et les reprises (une ligne ré-enregistrée — garder la prise propre, supprimer la ratée).
Décider ce qui constitue une erreur est une question de jugement, pas une formule — une répétition emphatique ("jamais, jamais") et un dédoublement rhétorique ("la première pièce est, est-ce…") sont mécaniquement identiques à un bégaiement. C'est pourquoi cet agent est soumis à révision par défaut : il propose des candidats avec leur contexte complet ; l'agent (et l'utilisateur) décident ; seules les coupes approuvées sont rendues.
Quand l'utiliser
- "coupe les erreurs", "supprime les bégaiements / répétitions", "nettoie les cafouillages", "garde la meilleure prise", "supprime les faux départs"
- Comme deuxième étape du workflow de montage principal, sur la sortie de la suppression des silences.
Le flux en trois parties
1. Trouver les candidats (mécanique)
node .agents/skills/cut-mistakes/scripts/find-cut-candidates.mjs \
<silence-transcript.json> --out-dir video-projects/<slug>/assets
L'entrée est normalement le <stem>.silence-transcript.json de l'Agent 1, de sorte que les coupes atterrissent sur la timeline déjà silencée. Écrit :
<stem>.cut-candidates.json— candidats structurés (type, confiance, plage decutproposée, texteremoves/keeps, contexte, recommandation)<stem>.cut-candidates.md— proposition lisible
Types de candidats : stutter (répétition immédiate de mot), retake (segment dupliqué/quasi-dupliqué via similarité Jaccard), false_start (courte phrase abandonnée qui recommence).
2. Révision (le contrôle — OBLIGATOIRE)
Lisez chaque candidat dans son contexte et décidez de le garder ou de le couper. Le détecteur mécanique ne peut pas faire la différence entre une emphase/rhétorique intentionnelle et une vraie erreur, donc ne faites pas aveuglément confiance à recommend — lisez removes + context. Faux positifs courants : répétition emphatique ("c'est jamais, jamais sans filet"), copule suivie d'une question ("la pièce est, est-ce…"), énumération.
Présentez les candidats à l'utilisateur avec une recommandation par élément ; recueillez les approbations. Écrivez les coupes approuvées dans un fichier :
{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "faux départ j-" }, ... ] }
(start/end en secondes sur la timeline vidéo/transcript d'entrée. Vous pouvez élargir la plage d'un candidat — par exemple pour une reprise, couper du début de la prise ratée jusqu'au redémarrage propre.)
3. Appliquer les coupes approuvées
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
Écrit l'EDL, un transcript retimé <stem>.mistakes-transcript.json (alimente l'agent de motion graphics + validate-beat-sync.mjs), un journal des décisions, et — avec --apply — la vidéo coupée (ffmpeg trim+concat, A/V synchronisés). Supprimez --apply pour un essai à blanc.
Révision du résultat
Utilisez l'outil de révision partagé pour examiner visuellement les coupes et vérifier les limites :
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
Remarques
- Un enregistrement très propre peut donner peu ou pas de vraies coupes — c'est un résultat valide ; ne coupez pas la parole naturelle pour atteindre un quota.
- Les coupes entre deux mots parlés sont des jonctions dures. Elles sont généralement propres pour les bégaiements/faux départs ; pour un son plus serré, un fondu de 20-30 ms peut être ajouté plus tard.
- Transmettez le
mistakes-transcript.json+ la vidéo propre à l'Agent 3 (motion graphics / tiered cards).