Communitygithub.com

zroeschen/動画制作ファクトリー

カットサイレンス:動画編集パイプラインの第1エージェント。話している人の録画から無音やデッドエアを除去します。無音カット、ポーズのトリミング、間の除去、または生の動画のペース調整を依頼されたときに使用します。単語レベルのトランスクリプトを基に、編集リスト(EDL)、再調整されたトランスクリプト、およびffmpegによるカット動画を生成します。間違いのカットは行いません。

動画制作ファクトリー とは?

これは、自動動画編集パイプラインの最初のステップである「Cut Silences(無音カット)」エージェントの日本語版ドキュメントです。このエージェントは、話者の録画と単語レベルのトランスクリプトを受け取り、最初の単語の前、最後の単語の後、および指定されたしきい値より長い単語間のポーズ(無音)のみを除去します。除去後も自然な呼吸の間隔は保持されるため、不自然さが生じません。出力として、編集リスト(EDL)、再調整されたトランスクリプト、そして必要に応じてffmpegでレンダリングされたカット動画を生成します。このエージェントは決定論的かつトランスクリプト駆動型であり、その出力は後続の「Cut Mistakes(間違いカット)」エージェントやビート同期バリデーターにシームレスに連携します。主なユースケースは、トークヘッド動画のペース調整やデッドエアの除去であり、ElevenLabs Scribe形式などの単語レベルのトランスクリプトを前提としています。

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

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

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

ドキュメント

無音カット(パイプラインエージェント 1)

自動編集の最初のステップです。生の録画とその単語レベルのトランスクリプトを受け取り、無音のみを除去します:最初の単語の前と最後の単語の後のデッドエア、およびしきい値より長い単語間のポーズ(自然な呼吸の間隔までトリミングし、完全に無音にはしません)。話者の言葉はそのまま残します。言い間違い、リテイク、どもりはcut-mistakesエージェント(エージェント 2)の役割です。

このエージェントは決定論的でトランスクリプト駆動型であるため、その出力(*.silence-transcript.json)は、後続のエージェントやビート同期バリデーターにクリーンな形で渡されます。

使用するタイミング

  • 「無音をカットして」「ポーズをトリミングして」「デッドエアを除去して」「ペースを調整して」
  • マスター編集ワークフローの最初の段階として、文字起こしの直後に使用します。

前提条件

単語レベルのトランスクリプトJSONが必要です。ElevenLabs Scribe形式({ words: [{ text, start, end, type }], audio_duration_secs })または汎用形式({ words: [{ text, start, end }] })のいずれかに対応しています。ワークスペースの文字起こしツールで生成してください:

node scripts/transcribe-elevenlabs.mjs path/to/raw.mp4    # -> path/to/raw.json

使用方法

# 1) 計画のみ — カットを計算し、EDLと再調整されたトランスクリプトを書き出す(動画には触れません)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --out-dir video-projects/<slug>/assets

# 2) 動画を指定 — ffmpegコマンドも書き出す(レンダリングはまだ行いません)
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --out-dir video-projects/<slug>/assets

# 3) カット動画をレンダリング(ローカルffmpeg、再エンコード、A/V同期を維持)
#    --apply を追加して実際にffmpegを実行します
node .agents/skills/cut-silences/scripts/cut-silences.mjs <transcript.json> \
  --video video-projects/<slug>/assets/raw.mp4 --apply \
  --output video-projects/<slug>/assets/edited-silenced.mp4

オプション

フラグデフォルト意味
--video <path>—ソース動画のパス。ffmpegコマンド/レンダリングを有効にします。
--out-dir <dir>トランスクリプトと同じディレクトリ出力ファイルの書き出し先ディレクトリ
--output <path><video-stem>.silenced.mp4カット動画の出力パス
--gap <s>0.55トリミング可能な無音と見なす最小のポーズ(秒)
--head-pad <s>0.22最初の単語の前に残す無音の長さ(秒)
--tail-pad <s>0.34最後の単語の後に残す無音の長さ(秒)
--applyoff実際にffmpegを実行してカットをレンダリングする

決定方法(無音ルール)

  • --gap(0.55秒)未満のポーズはそのまま残します — 自然な話のリズムです。
  • トリミングされたポーズに対しては、自然な呼吸の間隔が保持され、コンテキストに応じて調整されます:長いポーズ(≧2秒)では0.24秒、文の終わり(. ! ?)の後では0.20秒、それ以外では0.14秒。保持される呼吸は、前のフレーズの終わりにやや近くなるように調整されます。
  • 先頭/末尾のデッドエアは --head-pad / --tail-pad にトリミングされます。
  • 削除範囲は統合され、保持範囲はその補集合となります。カットはffmpegのtrim/atrim + concatフィルターグラフでレンダリングされます(*.silence-filter.txtスクリプトに書き出され、-/filter_complexで渡されます)。そのため、ビデオとオーディオの同期が保たれます。

出力(--out-dirに書き出されます)

ファイル目的
<stem>.silence-edl.json保持/削除範囲、長さ、パラメータ — 編集リスト
<stem>.silence-transcript.json編集タイムラインに再調整された単語のトランスクリプト(エージェント 2 + ビートに渡されます)
<stem>.silence-decisions.md人間が読める要約と、トリミングされた最大のポーズ
<stem>.silence-filter.txtffmpegフィルターグラフ(--video指定時のみ)
<video-stem>.silenced.mp4カット動画(--apply指定時のみ)

標準出力に表示されるJSONサマリーには、removed、removedPct、範囲の数、出力パスが含まれており、マスターワークフローでのログ記録と連鎖に役立ちます。

チューニングの注意点

  • トークヘッドYouTubeのデフォルト(--gap 0.55)では、典型的な生のテイクから約15〜20%の純粋な無音が除去されます。よりテンポの速いカットには--gapを低く設定し、より自然な呼吸の間隔を残すには--gapを高く設定します。
  • 文の区切りでのカットが強すぎると感じる場合は、文末の呼吸の長さを増やすか、--gapを上げてください。

次のエージェントへの引き渡し

<stem>.silence-transcript.json(およびレンダリングされたsilenced.mp4があればそれ)をcut-mistakesエージェントに渡します。タイムスタンプは既に編集タイムライン上で調整されているため、下流のビートタイミングやscripts/validate-beat-sync.mjsは追加の調整なしで動作します。

Individual skills in this repo

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

zroeschen/Video-Production-Factory

Agent 2 of the video editing pipeline. Finds and removes spoken mistakes — stutters, repeated words, false starts, and retakes (re-recorded lines) — from a talking-head recording. Use after cut-silences, when asked to cut mistakes, remove stutters / repeats / filler restarts, clean up flubs, or keep the best take. Works review-gated: it proposes every cut with context and a reason for approval, then renders only the approved cuts via ffmpeg. Requires a word-level transcript.

zroeschen/Video-Production-Factory

Edit a raw talking-head video through transcription, silence trimming, mistake review, visual storytelling, motion graphics, and verified HyperFrames rendering. Use for a complete edit; route a single requested operation directly to its specialist skill.

zroeschen/Video-Production-Factory

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

zroeschen/Video-Production-Factory

HyperFrames CLI tool — hyperframes init, lint, preview, render, transcribe, tts, doctor, browser, info, upgrade, compositions, docs, benchmark. Use when scaffolding a project, linting or validating compositions, previewing in the studio, rendering to video, transcribing audio, generating TTS, or troubleshooting the HyperFrames environment.

関連スキル