mcpField
S
screenkite-transcription-cut

screenkite-transcription-cut

github.com/screenkiteクリエイティブ・メディア3876 回インストール10 週間前に更新
リポジトリ

screenkite-transcription-cut について

マイクの文字起こしを使って録画内の無音部分を特定し、削除する ScreenKite 編集スキルです。破壊的なカットを適用する前に、ドライランで確認し、ユーザーの承認を得る必要があります。

主な機能

  1. 01マイク音声の文字起こし
  2. 02無音カット範囲の算出
  3. 03ドライランでの確認
  4. 04ScreenKite によるカット適用
  5. 05編集の検証と取り消し

活用シーン

  1. 01録画内の長い間を削除
  2. 02編集前にカット候補を確認
  3. 03無音削除後にタイムラインを確認
  4. 04誤ったカットを取り消す

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/screenkite/awesome-ai-video-editing --skill screenkite-transcription-cut

インストール後、Claude Code で/screenkite-transcription-cutを入力して読み込まれたか確認します。

同梱ファイルscripts/apply_cuts.pyscripts/compute_silence_cuts.py

詳細

screenkite-transcription-cut

マイクの文字起こしに基づいて、ScreenKite の録画から無音部分を削除します。

前提条件

  • /usr/local/bin/screenkite に screenkite CLI があること。
  • バンドルより上の階層にある .env に ELEVEN_LABS_API_KEY(アンダースコア付き)が設定されていること。
  • PATH 上に ffmpeg があること。
  • python3 と requests(pip install requests)があること。

フェーズ 1 — プロジェクトを開く

/usr/local/bin/screenkite agent project open \
  --path '<absolute-path-to.skbundle>' --json

プロジェクトが最新であることを確認します。

/usr/local/bin/screenkite agent project current --json

フェーズ 2 — マイク音声を文字起こしする

マイク音声は <bundle>/media/microphone_*.m4a にあります。

python3 scripts/transcribe_mic.py \
  '<bundle>/media/microphone_<name>.m4a' \
  --edit-dir '<bundle-parent>/<slug>-edit' \
  --language en \        # or zho, auto-detect if omitted
  --num-speakers 1
# Output: <edit-dir>/transcripts/<stem>.json  (word-level, cached)

スクリプトは ElevenLabs Scribe を利用する薄いラッパーです。JSON がすでに存在する場合、再実行しても何も行いません。

フェーズ 3 — 無音部分のカット範囲を計算する

python3 scripts/compute_silence_cuts.py \
  '<edit-dir>/transcripts/<stem>.json' \
  --min-silence 0.8 \       # seconds — gaps shorter than this are kept
  --pad 0.15 \              # seconds to keep at each edge of the gap
  --output '<edit-dir>/cuts.json'

適用する前に cuts.json を確認してください。開始時刻順に並べられた [{start, end, gap_s}, ...] が一覧表示されます。カットが多すぎる場合や少なすぎる場合は、--min-silence を調整してください。

一般的な値:

  • 0.5s — 積極的な設定。短い息継ぎの間も検出します
  • 0.8s — バランスの取れたデフォルト値
  • 1.5s — 控えめな設定。明らかな無音部分のみを検出します

フェーズ 4 — ドライランで確認(最初に必ず実施)

python3 scripts/compute_silence_cuts.py \
  '<edit-dir>/transcripts/<stem>.json' \
  --min-silence 0.8 --pad 0.15 \
  --dry-run          # prints human-readable table, no file written

表をユーザーに表示します。件数と最長の無音部分が適切であることを確認します。 ユーザーが確認するまで、カットを適用しないでください。

フェーズ 5 — カットを適用する

/usr/local/bin/screenkite agent tool call \
  --name editTimeline \
  --input-json "$(python3 scripts/compute_silence_cuts.py \
      '<edit-dir>/transcripts/<stem>.json' \
      --min-silence 0.8 --pad 0.15 --emit-tool-input)" \
  --json

--emit-tool-input は {"action":"cut","parameters":{"ranges":[...]}} を出力します。

または、保存済みの cuts.json を直接渡します。

python3 scripts/apply_cuts.py '<edit-dir>/cuts.json'

apply_cuts.py は cuts.json を読み込み、ScreenKite CLI を呼び出して、ツールから返された更新後のクリップ数を出力します。

フェーズ 6 — 確認する

/usr/local/bin/screenkite agent tool call \
  --name getProjectState --input-json '{"scope":"summary"}' --json

合計の無音時間とおおよそ同じ分だけ duration が短くなったことを確認します。ScreenKite でスクラブして、いくつかの箇所を抜き取り確認します。

カットが誤っていた場合:editTimeline action=undo(誤ったカットごとに繰り返します)。

アンチパターン

  • ドライランを先に実施せずに実行しないでください。 cut は破壊的な操作であり、取り消しは一度に 1 ステップです。
  • この作業に B-roll スキルを使わないでください。 このスキルは setSceneLayout を使用するため、コンテンツは削除されません。
  • --min-silence を 0.3s 未満に設定しないでください。 300ms 未満の間隔が本当の無音であることはほとんどなく、その部分をカットすると不自然になります。
  • プロジェクトを開かずにカットしないでください。 現在のプロジェクトがない状態で CLI を呼び出すと、何も起こらずに失敗します。

コメント