Communitygithub.com

iamaanahmad/captions-subtitles

キャプションと字幕の作成、編集、翻訳、焼き込みを行います。Whisperによる音声認識、SRT/VTT/ASSファイルの作成、スタイル設定、Shorts/Reels/TikTok向けのワードハイライト焼き込みまで対応。キャプション、字幕、文字起こし、アクセシビリティに関するあらゆるリクエストにご利用ください。

captions-subtitles とは?

このスキルは、AIエージェントが動画コンテンツ向けにキャプションや字幕を生成、編集、翻訳し、焼き込むための包括的な機能を提供します。OpenAI Whisperまたはfaster-whisperを使用した音声認識により、タイムスタンプ付きの文字起こしを行い、SRT、VTT、ASSなどの一般的な字幕ファイル形式を作成します。その後、ffmpegを使用して字幕を動画にソフトまたはハード焼き込みし、ワードハイライト(カラオケ形式)のスタイリングも可能です。ソーシャルメディアのショート動画(Reels、TikTok、Shorts)向けのレイアウト最適化や、スクリプトが既にある場合の強制アラインメントによる正確なタイミング調整にも対応します。このスキルは、Claude Code、Cursor、Codexなどのコマンドラインやコード実行が可能なAIエージェントに最適で、ffmpeg、whisper、faster-whisperのインストールが必要です。

対応~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/captions-subtitles

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

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

ドキュメント

キャプションと字幕

ソーシャル動画の多くはミュートで視聴されます。キャプションは編集の一部であり、オプションではありません。

1. 文字起こし

# openai-whisper (pip install openai-whisper)
whisper audio.mp3 --model small --language en --output_format srt --output_dir captions/

# faster-whisper (pip install faster-whisper): より高速、低メモリ、ワードタイムスタンプ対応
python - <<'PY'
from faster_whisper import WhisperModel
model = WhisperModel("small", compute_type="int8")
segments, info = model.transcribe("audio.mp3", word_timestamps=True, vad_filter=True)
for s in segments:
    for w in s.words:
        print(f"{w.start:.2f}\t{w.end:.2f}\t{w.word}")
PY

より良い結果を得るために、まずクリーンな音声を抽出します:

ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 audio.wav

モデルサイズは精度と速度のトレードオフがあります: base < small < medium < large。英語の場合は small または medium を、難しいアクセントや他言語の場合は large を使用します。

スクリプトが既に存在する場合(ナレーションをスクリプトから生成した場合)、文字起こしの文言を信頼しないでください。スクリプトのテキストを使用し、Whisperはタイミング調整(強制アライメント)のみに使用します。これにより、固有名詞や数値が正確に保たれます。

2. テキストの修正

固有名詞、製品名、数値を校正します。Whisperはこれらを誤認識することがよくあります。トピックが技術的な場合は、ユーザーに用語集を依頼してください。

3. キャプションファイルの作成

SRT:

1
00:00:00,000 --> 00:00:02,400
Most builds fail on Friday.

2
00:00:02,400 --> 00:00:05,100
Here is why.

可読性のルール:

  • 最大2行、1行あたり約42文字(縦型動画の場合は約20文字)。
  • 読み取り速度は毎秒17文字未満、最小キューの長さは1秒。
  • フレーズの区切りで改行し、フレーズの途中で切らない。名前を複数のキューに分割しない。
  • キューが重ならないようにする。2フレームのギャップを空けるか、ギャップをなくす。

4. 焼き込み

# force_style によるソフトスタイリング (SRT)
ffmpeg -i in.mp4 -vf "subtitles=captions.srt:force_style='FontName=Arial,FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Alignment=2,MarginV=60'" -c:a copy out/captioned.mp4

# ASS で完全なコントロール(カラオケワードハイライト、位置、アニメーション)
ffmpeg -i in.mp4 -vf "ass=captions.ass" -c:a copy out/captioned.mp4

Windows のパスの注意点:フィルター内ではドライブのコロンをエスケープし、フォワードスラッシュを使用してください(subtitles='C\:/work/captions.srt')。または、ファイルが置かれているフォルダから FFmpeg を実行し、相対パスを使用します。

5. ショートフォーム向けワードハイライトスタイル

1イベントあたり2~4語のグループで ASS ファイルを生成し、\k カラオケタグまたは単語ごとの色オーバーライドを使用して、アクティブな単語の色が変わるようにします。典型的な見た目:太字サンセリフ、白文字、3~4pxの黒い輪郭、アクティブな単語はブランドアクセントカラー。画面の下中央からやや上(プラットフォームのUIに覆われない位置)に配置します。

開始用の最小限の ASS ヘッダー:

[Script Info]
ScriptType: v4.00+
PlayResX: 1080
PlayResY: 1920

[V4+ Styles]
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,OutlineColour,BackColour,Bold,Italic,Underline,StrikeOut,ScaleX,ScaleY,Spacing,Angle,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Encoding
Style: Default,Arial,72,&H00FFFFFF,&H0000D7FF,&H00000000,&H64000000,-1,0,0,0,100,100,0,0,1,4,0,2,60,60,520,1

[Events]
Format: Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text
Dialogue: 0,0:00:00.00,0:00:01.20,Default,,0,0,0,,{\k30}Most {\k40}builds {\k30}fail

ASS での色は &HAABBGGRR(青-緑-赤の順、アルファが先頭)です。

6. 配信

  • ソーシャルプラットフォーム向けの焼き込み版。
  • YouTube、LinkedIn、Webプレーヤー向けの個別の .srt または .vtt ファイル(視聴者はオン/オフや翻訳が可能)。
  • MP4 へのソフト字幕トラックの埋め込み:-i captions.srt -c copy -c:s mov_text。

翻訳

タイミングではなく、キューのテキストのみを翻訳します。言語ごとの行制限を守ってください(ドイツ語やフィンランド語は長くなるため、折り返しを調整します)。動画が公開されたら、ネイティブスピーカーに確認を依頼してください。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル