Communitygithub.com

zroeschen/Video-Production-Factory

顔出し収録から言い間違い(吃音、繰り返し、言い直し、リテイク)を検出・削除するパイプラインの第2エージェントです。カット前に録音された無音部分を除去した後に使用し、各カットを承認するユーザーレビューを経て、承認されたカットのみをffmpegでレンダリングします。

Video-Production-Factory とは?

このエージェントは、顔出し収録動画の編集パイプラインの第2ステップです。第1エージェント(無音カット)の出力を受け、吃音(「あの、あの」、単語の即時繰り返し)、言い直し(途中で放棄されたフレーズ)、リテイク(再収録ライン)など、人間が2回目の編集パスで削除する種類のミスを自動で検出・除去します。ただし、意図的な強調(「決して、決して」)や修辞的な繰り返し(「最初の部分は、はこれです…」)は機械的には区別できないため、このエージェントはデフォルトでレビューゲート方式を採用。各候補カットを文脈とともに提示し、ユーザーまたは上位エージェントが承認したカットのみがffmpegでレンダリングされます。Claude CodeやCursorでの使用を想定し、Node.jsスクリプトで候補を検出、承認リストを作成、カットを適用します。また、結果確認用のレビューツールも提供します。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zroeschen/Video-Production-Factory/tree/HEAD/.agents/skills/cut-mistakes

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

ミス・繰り返しのカット(パイプラインエージェント2)

自動編集の第2ステップ。無音カットの後に実行します。人間の編集者が2回目のパスでカットする種類のものを除去します。吃音(「その、その」「わ、私は」)、すぐに繰り返される単語、言い直し(放棄されて再開されたフレーズ)、リテイク(再録音されたライン — きれいなテイクを残し、失敗した方を削除)です。

何がミスと見なされるかは判断の問題であり、公式ではありません。強調の繰り返し(「決して、決して」)や修辞的な二重化(「最初の部分は、はこれです…」)は、機械的には吃音とまったく同じに見えます。そのため、このエージェントはデフォルトでレビューゲート方式を採用しています。すべての文脈を含めて候補を提示し、エージェント(とユーザー)が判断し、承認されたカットのみがレンダリングされます。

使用するタイミング

  • 「ミスをカット」「吃音・繰り返しを除去」「フラブを修正」「ベストテイクを残す」「言い直しをカット」
  • マスター編集ワークフローの第2段階として、無音カットの出力に対して使用します。

3つのステップからなる流れ

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のトリム+連結、A/V同期)を出力します。--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

注意事項

  • 非常にきれいな収録の場合、実際のカットはほとんどまたはゼロになることがあります — それは妥当な結果です。ノルマを達成するために自然な発話をカットしないでください。
  • 2つの発話間のカットはハードジョインになります。吃音や言い直しの場合は通常きれいですが、よりタイトなオーディオが必要な場合は後で20〜30msのフェードを追加できます。
  • mistakes-transcript.json ときれいなビデオを**エージェント3(モーショングラフィックス / 階層カード)**に渡します。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル