Communitygithub.com

yyert123/画面収録ボイスオーバー

サイレントな画面収録(製品デモ、チュートリアル、ウォークスルー、バグ再現)を、1つのコマンドでナレーション付き動画に変換します。録画からステップを検出し、1行ごとに台本を書き、保存済みまたはクローンした音声で各ラインを吹き込み、クリップに正確に同期させ、フリーズ同期や自動速度調整、字幕生成まで行います。

画面収録ボイスオーバー とは?

このスキルは、サイレント画面収録(製品デモ、チュートリアル、バグ再現など)を、1つのコマンドで完全なナレーション付き動画に変換するAIエージェント機能です。最大の特徴は「自動同期」機能で、各台詞を収録内の対応する操作(クリックなど)に正確に合わせ、台詞が長すぎる場合は映像を自動的に速度調整(最大1.15倍)または最終フレームで停止(フリーズ同期)することで、ずれや重なりを防ぎます。対応プラットフォームはMiragea API(音声合成)に依存し、保存済み音声IDまたは公開URLからの音声クローンが利用可能です。制作される動画は-16 LUFS(YouTube/Web標準)にラウドネス正規化され、任意でBGM(自動ダッキング)や字幕(SRT/VTT、焼き込み可能)を追加できます。ワークフローは録画からシーンを自動抽出、ユーザー(またはAI)が各シーンに1行台本を記述、ドライランでタイミング確認、本レンダリングの順で進みます。キャッシュ機構により、台詞修正時の再レンダリングは無料です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yyert123/miragea-skills/tree/HEAD/screen-recording-voiceover

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

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

ドキュメント

画面収録ボイスオーバー は何をしますか?

画面収録にナレーションを付ける際の面倒な部分は、声そのものではなく「同期」です。各文章を、それが説明するクリックに合わせて並べ、文章がアクションよりも長い箇所を修正する作業。このスキルはその両方を自動で行い、ナレーションのずれや重なりを決して発生させません。

使用するタイミング

  • 「このデモ/チュートリアル/画面収録にボイスオーバーを追加して」
  • 「画面をサイレントで録画したので、ナレーションをつけて」または「自分の声/アクセントは使いたくない」
  • 「ナレーションを画面上の操作に合わせて」

手順

  1. MIRAGEA_API_KEY が設定されていることを確認する(絶対に表示しない)。音声:ユーザーに Miragea の音声 ID を一度尋ねるか、または自分の音声クリップの公開 URL とその正確なテキストを尋ねる。export MIRAGEA_VOICE_ID=... を提案し、二度と尋ねられないようにする。ユーザーが所有するか、使用許可のある音声のみをクローンする。

  2. ステップを見つけて台本テンプレートを作成する:

    python3 scripts/scenes.py demo.mp4      # -> demo.frames/*.jpg, demo.frames/steps.json, demo.script.txt
    
  3. フレームを見る(画像を読める) demo.frames/ 内のフレームを確認し、各ステップに対して1つの明確な文章を demo.script.txt 内の各タイムスタンプの後、# step コメントを置き換えて記述する。~N words のヒントに収まるようにし、そのラインが次のステップの前に収まるようにする。ステップのマージ、移動、削除は自由に行う。ユーザーが独自の台本を提供した場合は、その文章を一致するタイムスタンプに配置する。

  4. 費用をかけずにタイミングを確認する:

    python3 scripts/voiceover.py demo.mp4 demo.script.txt --dry-run
    

    ユーザーがフリーズフレームをゼロにしたい場合は、will freeze とマークされたラインを短くする。

  5. レンダリング:

    python3 scripts/voiceover.py demo.mp4 demo.script.txt --voice VOICE_ID            # 字幕はファイルとして
    python3 scripts/voiceover.py demo.mp4 demo.script.txt --burn --music bed.mp3      # 字幕焼き込み+BGM(自動ダッキング)
    
  6. ユーザーに出力されたJSONからパスを伝える:video(ナレーション付きMP4)、voice_track(WAV、編集者用)、srt/vtt。frozen_seconds が0より大きい場合はその旨を伝える。

  7. ラインを変更するには、台本を編集して手順5を再度実行する:変更されていないラインはキャッシュから無料で提供される。

台本フォーマット

[00:00] Acmeへようこそ。サインイン後に表示されるダッシュボードです。
[00:04] 「新しいプロジェクト」をクリックし、名前を入力して、それを所有するチームを選びます。
[01:02.5] 以上です。プロジェクトの準備が整いました。

許容されるタイムスタンプ: [mm:ss], [h:mm:ss], mm:ss.s, 12.5s。# で始まる行はコメントです。

同期の仕組み

  • 各ラインはそのタイムスタンプで正確に開始されます。次のステップの前に0.25秒の余裕が確保されます。
  • スロットより長いラインは、最大 --max-speed(デフォルト1.15倍、自然な速度)まで速度が上げられます。
  • それでも収まらない場合、ビデオはそのステップの最終フレームを保持し、文章が終了したら再開します。後続のラインは同じ量だけシフトされるため、同期が失われることはありません。
  • 字幕は各ラインの実際の発話長に基づいてタイミングが調整されます(最大2行×42文字)。
  • ラウドネスは約-16 LUFS(YouTube/Web標準)に正規化されます。音楽が指定された場合、音声の下に自動的にダッキングされます。

オプション

フラグデフォルト説明
--voice ID / --ref-url URL --ref-text TEXT環境変数保存済みMiragea音声、または公開クリップからクローン(正確なテキスト=安い1倍料金)
--modelexpressiveまたは standard
--max-speed1.15フレームフリーズ前の最大速度倍率
--burnオフ字幕を動画に焼き込む
--music FILEなし背景音楽、ループ再生・自動ダッキング
--keep-audioオフ録画の元の音声を小さく保持する
--dry-runスロット計画を推定発話速度で表示(API呼び出しなし)
-o FILEVIDEO.voiceover.mp4出力パス(元のファイルは変更されない)

コストと制限

音声合成はMirageaにより文字単位で課金されます(保存済み音声または正確な参照テキストの場合は1倍、最新料金は GET https://miragea.ai/v1/capabilities)。3分のデモは通常2,000~3,000文字です。各ラインは2,000文字未満である必要があります。参照クリップは、Mirageaのアップロードエンドポイントがリリースされるまで公開URLである必要があります。

トラブルシューティング

  • no timestamp / not after the previous line -> エラーで指定された台本のラインを修正する。
  • no voice chosen -> --voice を渡すか MIRAGEA_VOICE_ID を設定する。
  • 401 キーが間違っている, 402 miragea.aiでチャージする, 429 待ってから再実行する(キャッシュされたラインは再課金されない)。
  • scenes.py のステップ数が多すぎる/少なすぎる -> --threshold 0.02(増やす) / 0.08(減らす)、--min-gap。

実際の台本、計画JSON、生成された字幕については examples/ を参照してください。

Individual skills in this repo

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

yyert123/remotion-narration

Turn a video script into per-scene voiceover for Remotion in one command - one MP3 per scene in a saved or cloned voice, measured durations converted to durationInFrames, word-level captions in Remotion's Caption format, and an SRT. Use when building a narrated video with Remotion (or any React/code video tool), when the user asks to "add voiceover", "narrate these scenes", "sync scenes to the narration" or "add captions that follow the voice". Voice and timing by Miragea, no GPU or ElevenLabs a

yyert123/shorts-voiceover

Make a finished vertical short video (YouTube Shorts, TikTok, Instagram Reels; 1080x1920 MP4) from a plain-text script in one command, with AI voiceover in a saved or cloned voice, word-timed pop captions taken from the real speech, Ken Burns motion on images, cropped and looped B-roll clips or animated gradient backgrounds, auto-ducked background music and -14 LUFS loudness. Use when the user asks to turn a script, tips list, story or blog post into a Short/Reel/TikTok, make a faceless short wi

yyert123/video-captions

Caption any video or audio file in one command. Produces clean, readable SRT and WebVTT subtitles (whole words, 42-char lines, proper timing) and can burn them into an MP4, including big centred 1-3 word "pop" captions for TikTok, Reels and YouTube Shorts. Use when the user asks to add subtitles or captions to a video, make an SRT/VTT file, transcribe a talk or podcast into captions, or burn captions into a short-form video. English-first; speech recognition by Miragea.

関連スキル