Couper les erreurs et répétitions (Agent 2 du Pipeline)
Deuxième étape du montage automatisé, exécutée après cut-silences. Il supprime ce qu'un monteur humain retire lors d'un second passage : bégaiements (« le le », « j- j- »), répétitions immédiates de mots, faux départs (phrase abandonnée qui redémarre) et reprises (ligne réenregistrée — gardez la prise propre, supprimez la ratée).
Décider ce qui constitue une erreur relève du jugement, pas d'une formule — la répétition emphatique (« jamais, jamais ») et le redoublement rhétorique (« la première pièce est, est-ce que… ») ressemblent mécaniquement à un bégaiement. Cet agent est donc validé par défaut : il présente les candidats avec un 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 bourdes », « garde la meilleure prise », « coupe les faux départs »
- Comme deuxième étape du flux de montage principal, sur la sortie de cut-silences.
Le flux en trois parties
1. Recherche des 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, donc les coupes atterrissent sur la timeline déjà silencieuse. Écrit :
<stem>.cut-candidates.json— candidats structurés (type, confiance, plage decoupeproposée, texteretiré/conservé, 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 (phrase courte abandonnée qui redémarre).
2. Validation (la barrière — 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 distinguer l'emphase/rhetorique intentionnelle d'une véritable bourde, donc ne faites pas aveuglément confiance à recommend — lisez retiré + contexte. Faux positifs courants : répétition emphatique (« ce n'est jamais, jamais sans surveillance »), copule puis question (« la pièce est, est-ce que… »), énumération.
Présentez les candidats à l'utilisateur avec une recommandation par élément ; collectez les approbations. Écrivez les coupes approuvées dans un fichier :
{ "cuts": [ { "start": 100.93, "end": 101.06, "reason": "j- faux départ" }, ... ] }
(start/end en secondes sur la timeline de la transcription/vidéo d'entrée. Vous pouvez élargir la plage d'un candidat — par exemple pour une reprise, coupez 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 <stem>.mistakes-transcript.json retemporisé (alimente l'agent d'infographie + validate-beat-sync.mjs), un journal des décisions, et — avec --apply — la vidéo coupée (ffmpeg trim+concat, A/V synchronisé). Supprimez --apply pour un essai à blanc.
Vérification du résultat
Utilisez l'outil de relecture 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
Notes
- Une livraison très propre peut donner peu ou pas de coupes réelles — 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 franches. 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 (infographie / cartes à plusieurs niveaux).