Communitygithub.com

yyert123/remotion-narration

スクリプトをワンコマンドでRemotion用のシーン別ナレーションに変換します:保存済みまたはクローンした音声でシーン毎のMP3を生成、実測時間をdurationInFramesに変換、RemotionのCaption形式とSRTの単語レベルキャプションを出力します。

remotion-narration とは?

このスキルは、テキストスクリプトをRemotion(またはReact/コードベースの動画ツール)で使用可能な完全なナレーションアセットに変換します。ユーザーが「ボイスオーバーを追加」「シーンをナレーションに同期」「ボイスに追従するキャプションを追加」と依頼した際に利用します。内部ではMiragea APIを利用して音声を生成し、シーンごとのMP3ファイル、正確なdurationInFrames、開始フレーム、単語レベルのキャプション(RemotionのCaption[]形式とSRT)を出力します。変更のないシーンはキャッシュから再利用されるため、再実行時のコストが抑えられます。GPUやElevenLabsのAPIキーは不要で、音声タイミングは実際のオーディオから正確に計測されるため、ずれが生じません。出力はRemotionのpublic/フォルダに配置可能で、提供されるNarrated.tsxの例に従ってコンポジションで利用できます。

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

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

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

ドキュメント

Remotion ナレーション

Remotion コンポジションをボイスオーバーで駆動するために必要なすべてを生成します:シーンごとのオーディオ、正確な長さ、開始フレーム、キャプション。シーンの長さは実際のオーディオから決定されるため、ずれは発生しません。

使用すべきタイミング

  • ユーザーがスクリプト(Markdown、テキスト、または JSON)と Remotion プロジェクトを持っており、ナレーションを追加したい場合。
  • シーンの長さをボイスオーバーと正確に一致させ、キャプションを単語単位で音声に追従させたい場合。

手順

  1. MIRAGEA_API_KEY が設定されていることを確認します(絶対に表示しないでください)。音声を選択します:

    • --voice VOICE_ID - ユーザーの Miragea アカウントに保存された音声、または
    • --ref-url https://... - クローン元となる公開クリップ(ユーザーの同意が必要)、さらに --ref-text "クリップ内の正確な単語" を指定すると、より安価な 1x レートが適用されます。
  2. スクリプトを記述します。各 ## 見出し(または空白行で区切られた段落)が1つのシーンになります:

    ## intro
    Meet Retake, the fastest way to fix a voiceover mistake.
    ## demo
    Type the right word. Retake re-voices the sentence and splices it in.
    
  3. Remotion の public/ フォルダに生成します:

    python3 scripts/narrate.py script.md --voice VOICE_ID --out public/narration --fps 30
    
  4. コンポジションで public/narration/narration.json を使用します(examples/Narrated.tsx を参照): totalFrames を durationInFrames に、各シーンの startFrame / durationInFrames を <Sequence> に、staticFile('narration/' + scene.file) を <Audio> に、そして scene.captions(Remotion Caption[]: text, startMs, endMs, timestampMs, confidence)を @remotion/captions の createTikTokStyleCaptions() と組み合わせてアニメーションキャプションに使用します。

  5. スクリプトを編集して自由に再実行できます:変更されていないシーンはマニフェストから再利用されるためコストはかかりません。途中で実行が停止した場合、完了したシーンは保持され、次の実行時に再開されます。

オプション

フラグデフォルト意味
--fps30フレーム計算用のフレームレート
--pad0.4各シーンの後に追加する余白時間(秒)
--captions mirageaはい生成されたオーディオからキャプションのタイミングを取得(正確;+3 ポイント/秒)
--captions estimate無料:単語の長さに基づいて均等に配置
--modelexpressivestandard は参照音声により忠実に従う
--speed1.00.25〜4

2000 文字を超えるシーンは文の末尾で分割され、自動的に結合されます。

トラブルシューティング

  • choose a voice -> --voice または --ref-url を指定してください。参照 URL は公開されており、1024 文字未満で、直接配信される必要があります(GitHub raw、S3/R2 の公開オブジェクトは動作します;署名付きリダイレクトは動作しない場合があります)。
  • 401/402/429 -> キー、残高、レート制限の問題です。再実行は常に安全です。

Individual skills in this repo

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

関連スキル