본문으로 건너뛰기
cccskills
무료GitHub에 공개

srt-fast

WAV/動画音声を単一パスGPU転写(mlx-whisper)した後、fulltextを意味区切りでN分割しLLM改行だけを並列化してSRT字幕を高速生成する /srt の高速版。日本語トーク動画用。「/srt-fast」で実行。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

WAV → SRT 高速生成 (/srt-fast・テキスト分割型 v7.1)

単一パスGPU転写(mlx-whisper・Apple Silicon対応)で高品質文字起こしを行い、取得した fulltext をポーズ位置で意味的にN分割し、サブエージェント等で改行工程のみを並列処理して高速にSRT字幕を生成するスキル。

設計原則

  1. 転写は並列化しない: 単一パスGPU転写(mlx-whisper)。gap補完内蔵で境界なし・高品質。
  2. 改行工程のみ並列化: テキストをポーズ位置でN分割し、サブエージェントで並列改行(25字超1%未満・平均14字前後)。
  3. 高速な全体アライメントとQA修復: difflibによる全体アライメントで時刻を割り当て、基準超過行(25字超や文頭NG)のみをピンポイントで修復。

使い方

/srt-fast <音声または動画ファイルのパス>

カット点同期XMLがある場合は、アライメント時に --xml "<XMLのパス>" を渡すことでカット後のタイムラインと完全同期可能。

実行手順

Step 1: 環境とスクリプト解決

# プラグイン本体の場所を決める(この順で探し、最初に見つかったものを使う)
# Claude Code は ${CLAUDE_PLUGIN_ROOT} をプラグインの実パスに展開する。Codex / Antigravity は展開しない。
ROOT="${CLAUDE_PLUGIN_ROOT:-/nonexistent}"
if [ ! -f "$ROOT/scripts/whisper_to_srt.py" ]; then
  # 同じプラグインの複数版がキャッシュに残ることがあるので、更新の新しいものを選ぶ
  HIT="$(find "$HOME/.claude/plugins" "$HOME/.codex/plugins/cache" "$HOME/.gemini/config/plugins" \
         -maxdepth 8 -type f -name whisper_to_srt.py -path '*premiere-skills*' -print0 2>/dev/null \
         | xargs -0 ls -t 2>/dev/null | head -1)"
  [ -n "$HIT" ] && ROOT="$(cd "$(dirname "$HIT")/.." && pwd)"
fi
[ -f "$ROOT/scripts/whisper_to_srt.py" ] || { echo "premiere-skills のスクリプトが見つかりません。プラグインを入れ直してください"; exit 1; }

SCRIPTS_DIR="$ROOT/scripts"
PREPARE_SCRIPT="$SCRIPTS_DIR/chunk_tools/prepare_text_parts.py"
WHISPER_SCRIPT="$SCRIPTS_DIR/whisper_to_srt.py"
RULES_FILE="$ROOT/references/srt_runtime_rules.md"
echo "premiere-skills: $ROOT"

OUT_ROOT="$(dirname "<入力ファイルの絶対パス>")"

Step 2: 依存チェック

  • ffmpeg(導入済み確認: command -v ffmpeg)
  • mlx-whisper または faster-whisper

Step 3: 前処理(単一パスGPU転写+テキスト分割)

python3 "$PREPARE_SCRIPT" "<入力ファイルの絶対パス>" --repo "$OUT_ROOT"

実行後、標準出力に MANIFEST: <path> として <stem>.parts.json が出力される。

Step 4: 並列改行(サブエージェント / LLM)

<stem>.parts.json の内容を読み込み、各パート(parts[i])に対して改行タスクを実行する。 パート数 n > 1 の場合はサブエージェント(invoke_subagent)を同一ターンでN体並列起動する。 パート数が1(n == 1)の場合は、起動オーバーヘッドを避けるためメインエージェントが直接改行して書き込む。

サブエージェント用プロンプト要約:

  • 1行=1テロップ
  • 目標文字数: 平均14字前後・25字超1%未満
  • 削除・要約・言い換えは禁止(全文をカバー)
  • SRT番号やタイムコードは含めない(純粋なテキスト行のみ)
  • 「書き終えたら再読・自己検証はせず即終了する」「最終応答は LINES=<非空行数> を返す」

Step 5: 組み立てと時刻アライメント(bash直叩き)

全パートの lines_out が揃ったら、結合してアライメントを実行する:

cd "<out_dir>" && python3 -c "
from pathlib import Path
import json
m = json.loads(Path('<stem>.parts.json').read_text())
lines = []
for p in m['parts']:
    lines += [l.strip() for l in Path(p['lines_out']).read_text().splitlines() if l.strip()]
Path(m['lines_out']).write_text('\n'.join(lines)+'\n')
print(len(lines), 'lines')
" && SRT_QA_JSON=1 python3 "$WHISPER_SCRIPT" \
  --from-text "<stem>.fast.lines.txt" --segments "<stem>.segments.json" -o "<stem>.fast.srt"

※カットXMLがある場合は --xml "<XMLパス>" を付与。

Step 6: QA自動修復

出力の QA_JSON で over25(25字超)や head_ng(文頭助詞等)が検出された場合、<stem>.fast.lines.txt の該当行をルールに従って分割・調整し、whisper_to_srt.py --from-text ... を再実行(約0.1〜1秒で再アライメント完了)。

Step 7: 掃除と完了報告

不要になった一時パートファイルを削除:

rm -f "<out_dir>/<stem>".part*.txt "<out_dir>/<stem>".part*.lines.txt

報告フォーマット:

  • 出力SRTの絶対パス(<stem>.fast.srt)
  • 統計情報(行数、平均文字数、25字超件数、修復回数など)
  • Premiere Pro に「ファイル > 読み込み」でインポート可能な旨

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

cut

무료

Premiere Pro XML の無音・雑音を自動カットする。XMLファイルを渡されたとき、無音カット・ジェットカット・カット編集を頼まれたとき、「/cut」で即実行。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

fuuuuuuma/premiere-skills142026년 9월 25일 업데이트

Premiere Pro 動画編集ワークフローを Claude Code で自動化するスキル集。/cut は Premiere Pro XML の無音・雑音区間をジェットカット、/srt は WAV+Premiere XML から日本語テロップ用 SRT を並列Whisper→LLM意味区切り→全体アライメントSRT の3ステップ(v6)で生成、/srt-fast は改行工程まで3チャンク並列化した高速版、/telop-check は書き出し済みMP4を全編スキャンしてテロップの数字表記・誤字脱字・い抜き・ら抜き・固有名詞ミスを検出する。faster-whisper / ffmpeg / Premiere Pro を要するローカル実行型。日本語トーク動画のショート / ロング編集向け。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

fuuuuuuma/premiere-skills142026년 9월 25일 업데이트

fuuuuuuma의 스킬 모두 보기

이 스킬의 문제 신고