Communitygithub.com

プレゼンター音声ナレーション

ビデオ、デモ、プレゼンテーション向けのナレーションや音声原稿を作成・生成するためのスキルです。プレゼンタースタイルのスクリプトルール、ポーズマークアップ、オフラインのKokoro音声、ビデオに合わせたミキシングを提供します。

プレゼンター音声ナレーション とは?

このスキルは、ビデオやプレゼンテーション向けにプレゼンタースタイルのナレーション原稿を作成し、音声生成、編集、ビデオミキシングまでを一貫して行うためのツールセットを提供します。原稿作成フェーズでは、画面テキストをそのまま読むことを避け、一行一アイデア、エンドフォーカス、ルール・オブ・スリーなどの原則に従って、人間らしい語り口を実現します。音声生成はオフラインのKokoroエンジン(50以上の声)に加え、ElevenLabsのクラウド音声にも対応しており、スピード調整やポーズマーカー(/, //, ...)を細かく制御できます。生成後は、ポリッシュ(トリミング、EQ、コンプレッション)とビデオミキシング(音楽ダッキング、LUFS正規化、SRT生成)を自動化し、各ラインのタイミングがビジュアルに合致するか確認するドリフトレポートも出力します。主に`video-generations`リポジトリのスクリプト群を活用し、プレゼンター風の自然な語り口と正確なタイミングを両立させたい開発者やコンテンツ制作者に適しています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Sanjayyykumar/ai-essentials/tree/HEAD/skills/presenter-voiceover

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

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

ドキュメント

プレゼンター音声ナレーション は何をしますか?

ツール: $VIDEO_ROOT/voice/(video-generations より)(speak.py, speak_cast.py, polish_vo.py, mix_narration.py, el_cache.py); モデルは $VIDEO_ROOT/models(python studio/get_models.py)。

1. プレゼンターのように書く(声よりもスクリプトが重要)

  • 画面をそのまま読まない。 画面上のテキストは事実を述べ、音声はその背後にある意味、感情、ストーリーを加える。行が画面のテキストを一字一句繰り返している場合は、書き直すか削除する。例外:製品名と最後のタグライン。

  • 一行一アイデア。 短い文、6~12語。話し言葉の英語、短縮形は許可。

  • ヒーロースレッド。 一人の人物(例:Aroon、Anita、Dr Rao)を追い、その人物に言及する。人は機能ではなくストーリーを覚える。

  • エンドフォーカス。 重要な単語をフレーズの最後に配置する(「…すべてのチームが ただ一つ を保持する」)。声は自然にそこに着地する。コンテキストは前置き:「…午前2時14分、早朝に // Aroon // 倒れる。」

  • ルール・オブ・スリー:利益やリストには均等なビートで。

  • 対比と転換: 問題 → 「さあ、想像してみてください…」 → 解決策。

  • 開始: 各セクションをアンカーで始める(「まず、家族のために。」「では、病院の中に入ってみましょう。」)。

  • 終了: 文は終止符で終わり、下降して完了したトーンにする。約束またはタグラインで締めくくり、明確な招待状、そして「ありがとうございました。」

  • ペース(ハウススタイル): ゆっくりでポーズが多いとロボット的に聞こえる(「ポーズが多すぎ、単語が少なすぎ」)。デフォルトは流暢なプレゼンターペース:

    • ほとんどの行は速度 1.00、長いリストや説明は 1.02、タグラインやクロージングは 0.95~0.97、感情的なフックにのみ 0.93。
    • 一行あたりの保持ビート...は最大一つで、感情の転換点のみ(「午前2時14分、早朝に ... Aroon倒れる」、「もし ... たった一回のタップでできたら?」)。/は控えめに使う;代わりに普通のコンマを推奨。
    • このスタイルでの測定レート:約 2.6~2.8 語/秒(af_kore)。予算 = 語数 / 2.7 + 0.35秒(ポリッシュテール)。行は次のビジュアルビートの前に収まらなければならない。
    • 問題の構築後、および解決策の感情的なペイオフ後(「あの最初の夜よりも落ち着いている。」)に、意図的な無音(1~1.5秒、行なし)を残す。
    • 密度:2.5分のフィルムで約230~250ナレーション語;すべてのシーンに少なくとも一行あるため、計画された無音以外で3秒以上無音のシーンは発生しない。
  • 誠実さ: 創作された結果は含めない;架空の名前や数値はデモデータ。

  • 高速パス(時間節約のため): すべての行を書く → 上記の予算で所要時間を見積もる → テキスト内でオーバーランを修正してから生成 → 一度生成する。ラップトップでの再生成は一行あたり約25~40秒かかるため、ほとんどの時間は書き直されるテキストに費やされる。

2. マークアップ(ナレーションファイル)

LINES = [(start_s, speed, text), ...]、VOICE = '...'、さらに配信ノートを含むdocstring。例:voice/examples/narration_demo.py。

  • / = ブレスポーズ(0.25秒)、// = 劇的なポーズ(0.55秒)、... = 保持ビート(0.8秒)。
  • エンジンが間違える名前は voice/lexicon.py で綴りを直す(例:Arun → "Aroon"、Dr → "Doctor")。最初に一行テストする。
  • 複数声のダイアログ:speak_cast.py 用に LINES = [(key, voice, speed, text), ...](voice/examples/dialogue_demo.py)。

3. 音声

  • エンジン:kokoro-onnx経由のKokoro、オフライン、50以上の声。良いプレゼンターの選択:af_kore / af_heart(落ち着いた、自信のある女性)、hm_omega / hm_psi(インド人男性)、am_onyx(深い男性)、bm_george(イギリス人男性)、hf_alpha / hf_beta(インド人女性)。ブレンドも可能:hm_omega:0.6,am_onyx:0.4。
  • 新しい声の選択には、候補ごとに代表的な3行(フック、解決策、タグライン)をレンダリングし、本番実行前にユーザーに選んでもらう。
  • 単語レベルの強調は強制できない;フレージング、句読点、ポーズ、速度で作り出す。正確な強調には人間の録音が必要。
  • プレミアムクラウド音声:voice/el_cache.py(ElevenLabs;各行は一度課金され、その後キャッシュされる)。

4. 生成 → ポリッシュ → ミックス

  1. python voice/speak.py <narration>.py work/vo [voice] — 再開可能;各フレーズは個別に発声され、マークされた無音で結合される。
  2. python voice/polish_vo.py work/vo work/vo_polished — トリミング、温かみ/クリアなEQ、ソフトなコンプレッション、さりげない残響、フェードアウトテール。
  3. python voice/mix_narration.py <silent.mp4> <music.wav> <narration>.py work/vo_polished <out.mp4> — 行を配置、長い行を最大1.08倍に速度調整、必要に応じて後続の行をずらし、音楽をダッキング、−16 LUFS、SRTを書き出す。
  4. ドリフトレポートを確認する。 すべての行がビジュアルから約0.5秒以内にあるべき。ドリフトが蓄積した場合は、行を短くするか削除し(画面を繰り返す行が優先)、開始時間をビジュアルビートに合わせる。触っていない行を再生成せずに再ミックスする。 一部の行をやり直すには、古いクリップを移動し、speak.pyを再実行する;欠落したクリップのみが補充される。クリップ番号とLINESの同期を保つ。
  5. MP4とSRTを納品する。

関連スキル