メインコンテンツへスキップ
見出し画像

台本はOpus、声はGemini。──2日で4本の"人の声ゼロ"動画を作って決めた、AIの分担表と14の使い道

    鈴木章裕

    9月30日の夜から10月1日の夕方までの2日間で、人の声が一秒も入っていない動画を4本作りました。台本と映像はClaude Opus 5.5、声はGemini 3.8 Flash TTSです。4本目を納品するころには、どこまでをOpusに任せ、どこからを声のAIに渡すかの線がはっきり引けていました。役割で分けておけば、台本を1行直すだけで声も絵も作り直せます。この記事では、その分担表と、同じ分担で作れる14の使い道、今日からの一歩を、そのまま使えるプロンプト5本と一緒にまとめます。

    画像

    1つのAIに全部やらせると、どこかで止まる

    動画づくりは仕事が多い。何を伝えるかを決め、台本を書き、読みを整え、声を録り、絵を用意し、音と映像の時刻を合わせ、最後に確かめる。中小企業では、この全部を社長か担当者が1人で抱えがちです。

    画像

    ただ、1つのAIに「動画を作って」と丸ごと頼むと、たいていどこかで止まります。筋を組み立てるのが得意なモデルは声を出せず、声がきれいなモデルは構成を考える役に向いていない。得意なことが違う道具を、1本の線でつなぐ設計が要ります。

    もう1つは「直しやすさ」です。社名の読みが違う、数字が古い。直すたびに全部を作り直すようでは、動画はだんだん使われなくなります。台本という原本を真ん中に置き、声と絵がそこからぶら下がる形にしておけば、直すのは台本の1行で済みます。この2日間は、その形を自分の手で確かめる時間になりました。

    2日で4本、人の声ゼロの動画を作った記録

    1本目は、9月30日の夜に作った私自身の自己紹介の解説動画です。ナレーターの語りに、電話応対のデモと2人の掛け合いが入る構成で、仕上がりは177.6秒になりました。

    画像

    作業の進め方は、4本とも同じです。Claude Codeの画面で私が目的と素材を渡し、Opus 5.5が台本を書き、声を呼ぶスクリプトを書き、映像を組み、検査の数字を返してくる。私は途中で出てくる選択肢に答え、最後に動画を見て聞く。手を動かすのはほとんどAIで、私の仕事は「決めること」と「聞くこと」に寄っていきました。

    最初は無料枠のAPIキーで始めました。Gemini 3.8 Flash TTSの無料枠は、1日10リクエストまでです。台本を1文ずつに分けると、約40クリップ。早く終わらせたくて、4本を並列で投げ、失敗したら5回まで再試行する設定にしていました。数分後、上限のエラーで止まります。40クリップのうち27が未生成のままでした。動画の3分の2に、まだ声がない状態です。

    ここで有料のキーに切り替えました。すると、別の問題が出ます。1本目では、言葉で声の特徴を説明して作る「ボイスデザイン」の声を使っていました。作ると voice_ で始まるIDが返ってきて、次からはそのIDを指定すれば同じ声で読ませられます。ところが、有料キーで同じIDを指定すると404が返ってきました。調べると、このIDは声を作ったGoogleのプロジェクトに属していて、別のプロジェクトのキーからは使えない。結局、声そのものを作り直すことになりました。キーを替えるときは、声も一緒に引っ越しが要る。夜の作業の途中で知るには、少し痛い決まりでした。

    もう1つ改めたのが、送り方です。並列と再試行の組み合わせは、回数に上限がある相手には最悪でした。失敗が次の失敗を呼んで、回数だけが減っていく。以後は「1本ずつ、15秒あけて」の直列に変えています。2日間の途中では、本文に口調の指示を書き込んでしまい、その指示ごと読み上げられたこともありました。取り直しも重なり、TTSを呼んだ回数は4本の中で1本目がいちばん多くなりました。それでも夜のうちに完走し、社内のチャットへ共有しています。

    振り返ると、1本目の失敗はどれも「声の側の事情」でした。回数の上限、声のIDの持ち主、本文と指示の境目。台本を書く側がいくら賢くても、声の側の決まりを知らなければ止まる。ここで初めて、2つの道具を別々の担当として扱う必要を感じました。

    2本目は、自社の経営者向け教材のPDF10枚を、4分50秒の研修動画にしたものです。9月30日の深夜に着手し、10月1日の未明に納品しました。1本目で直列に改めていたおかげで、送信の失敗は0回。作り方の細部はPDF編の記事に書いたので、ここでは省きます。

    3本目は、イソップ寓話「北風と太陽」の朗読劇で、330.6秒。4役に合唱が付き、TTSは64回でした。1日の上限に阻まれ、日本時間16時のリセットを待った日でもあります。配役や合唱の重ね方は朗読劇編の記事にまとめています。

    4本目が、10月1日の16時54分に納品した「コミクスのAI支援が支持される3つの理由」です。自社の支援が選ばれる理由を3つに絞って伝える、会社紹介に近い動画で、長さは184.9秒、TTSは44回。ここで社名につまずきました。

    完成した音声を、台本を見せずに別のAIで書き起こし、読みを確かめるのが私の決まった手順です。その書き起こしで、「コミクス」が「コミックス」と出てきました。モデルを3つ替えて書き起こしても、そろって「こみっくす」。本物の誤読です。会社紹介の動画で社名が揺れるのは困ります。演技の指示(style)に「4拍で、つめずに」という発音の指示を足し、読ませる文字も「コ・ミ・ク・ス」と区切って作り直しました。字幕は正しい表記のまま、読みだけを直せたのは、台本の列と演技の指示を分けておいたからです。

    チェック役のモデルにも波がありました。誤読の確認に使う通常のGemini Flashが、夜間に混雑を示す503を連発した日があり、待つか別のモデルに替えるかを選ぶ場面もありました。最後に社名の読みを決めたのは、私の耳です。再生して、自分の会社の名前が、自分の知っている音で聞こえるか。そこだけは機械の判定で済ませませんでした。

    4本を並べてみると、うまくいかなかった場面はどれも台本を書くAIに声の事情まで背負わせたか声を出すAIに台本の都合まで期待したかのどちらかで、役割の線を引き直すたびに作業は静かに前へ進んでいきました。

    1本目で「上限と直列」を覚え、2本目と3本目で「台本を表にして、1行ずつ直す型」が固まり、4本目で「読みは本文でなく演技の指示で直す」を覚えた。どれも、先に知っていれば避けられた失敗です。ただ、実際に止まってみるまで、どこに線を引くべきかは見えませんでした。次の章の分担表は、この4回の失敗と修正を整理したものです。

    分担表:Opusは「考える・書く・組む」、TTSは「演じる」

    Claude Opus 5.5は2026年9月22日リリースのAnthropicのモデルで、IDは claude-opus-5-5。料金は100万トークンあたり入力4ドル、出力20ドルです(Anthropic公式の料金ページ)。私はClaude Codeから使っています。Gemini 3.8 Flash TTSはIDが gemini-3.8-flash-tts で、Google AI Studioで発行したキー(GEMINI_API_KEY)でGemini APIから呼びます。料金や仕様は執筆時点(2026年10月1日)の情報なので、最新は各社の公式ページで確認してください。

    画像

    Claude Opus 5.5に任せること(考える・書く・組む)

    ・構成を決め、1文ずつの台本にする

    ・各文に「期待する読み」をひらがなで添える

    ・声ごとの演技の指示(style)を書く

    ・TTSを呼ぶスクリプト、タイムライン、映像のHTMLを書く

    ・音声の長さを測り、検査結果を数字でまとめる

    Gemini 3.8 Flash TTSに任せること(演じる)

    ・台本の1文を、指定された声と口調で読む

    ・ボイスデザインで作った声を、IDで何度でも同じように再現する

    人が持つこと

    ・何を伝えるかの最終決定

    ・社名や固有名詞の読みの最終確認(耳で聞く)

    ・回数と費用の上限

    文字で決まることはOpus、音で決まることはTTS、責任は人。こう分けると、修正の入口が台本の1か所にまとまります。

    なお、Gemini 3.8 Flash TTSは、発表では130を超える言語に対応し、1回のリクエストで2人までの話者を扱えるとされています。<laugh> や <sigh>、<short pause> といった演技のタグも紹介されていますが、私は未検証なので手順には入れていません。

    14の使い道を、4つの棚に分ける

    この分担で作れるものを14に整理しました。実際に私が作ったのは上の4本で、残りは「この分担なら作れる」ものの見取り図です。棚は、何のために声を使うかで分けています。

    画像

    売る棚(発信)

    ・解説動画(YouTube向けの丸ごと生成)

    ・縦型ショート60秒

    ・2人対話のポッドキャスト

    ・広告・商品紹介の15秒(複数テイクを聞き比べる)

    最初は解説動画から(私の1本目と4本目)。縦型ショートは1日100リクエストでは量産できず、Tierの昇格、別プロジェクト、Batch(発表では料金半額と紹介)といった手続きが前提です。

    教える棚(社内)

    ・研修・操作マニュアルの動画(画面録画の代わりにHTMLのアニメとナレーション)

    ・eラーニングの章ごとのナレーション(スライドのJSONと音声をセットで)

    ・朝礼や日報の読み上げ

    中小企業が効果を感じやすい棚で、最初は研修・操作マニュアルから。私の2本目がここです。

    物語る棚(作品)

    ・昔ばなし・童話のアニメ(役ごとにボイスデザインで声を作る)

    ・オーディオブックや長い朗読

    ・ゲームの登場人物の声

    ・分岐する音声ドラマの素材

    3本目の朗読劇がここです。会社で手を付けるなら、社内のロールプレイ台本を「演じる教材」にするところから。

    届ける棚(多言語・読み上げ)

    ・多言語の吹き替え

    ・ニュースや要約の読み上げボット(数字はひらがなで指定)

    ・アプリ内ガイドの読み上げ(明瞭さを優先)

    最初は社内向けの要約読み上げから。外国語版は、その言語が分かる人の耳を最後に入れてください(私は日本語でしか確かめていません)。

    14から最初の1つを選ばせる診断がプロンプト1です。経営者が移動中に音声入力で答える想定です。

    プロンプト1:14の使い道から「最初の1つ」を選ぶ診断

    あなたは中小企業の動画・音声活用アドバイザーです。
    私は経営者で、音声入力で答えます。言い直しや脱線が混ざっても、意図をくみ取ってください。
    
    【会社のこと】【ここに業種・社員数・主な顧客を話す】
    【いま発信していること】【ここにSNS・ブログ・営業資料などを話す】
    【社内で何度も説明していること】【ここに新人研修・作業手順・朝礼の連絡などを話す】
    【使える時間と予算】【ここに週の時間と月の上限額を話す】
    
    【候補】次の14から選ぶ。
    解説動画/縦型ショート/2人対話ポッドキャスト/広告15秒/研修・操作マニュアル動画/eラーニング/朝礼・日報の読み上げ/童話アニメ/オーディオブック/ゲームの登場人物の声/分岐する音声ドラマ/多言語の吹き替え/要約の読み上げ/アプリ内ガイド
    
    【出力形式】JSONで出してください。
    {"first_pick": "最初にやる1つ", "reason": "理由(2文以内)", "source_material": "台本の元にする社内の文書名", "next_two": ["次の候補", "次の候補"], "first_week_task": "今週やる作業を1文で"}
    
    【完了条件】
    ・first_pick は1つだけにする
    ・source_material は、私の回答に出てきた実在の文書から選ぶ
    ・TTSは1日の回数に上限がある前提で、1週間で1本作れる候補を選ぶ

    Opus 5.5への頼み方は「完了条件で縛る」

    「いい感じの台本を」と頼むと、いい感じの文章が返ってきます。困るのは、声にしたら何秒か、どの語を読み違えそうかが分からないことです。そこで、何がそろえば終わりかを先に書きます。全文に期待する読みがある、数字と固有名詞にひらがながある、想定秒数の合計が目標に収まる。条件があれば、Opusは足りない所を自分で埋めてから返します。

    画像

    もう1つは、単位を1文にすることです。1文から1クリップを作り、長さを測り、タイムラインに並べる。直すときも1文だけ。TTSの回数も直しの手間も最小で済みます。

    映像は、時刻tを渡すと1枚の絵が決まる関数(renderAt(t))で書かせます。状態を持たないので、音声の長さが変わっても絵がついてきます。

    1文ずつの台本を作らせるのがプロンプト2です。広報や研修の担当者が、原稿を手にした最初に使います。

    プロンプト2:1文ずつの台本JSONを作らせる

    あなたは解説動画の台本作家です。下の原稿を、音声合成に渡す「1文ずつの台本JSON」にしてください。
    
    【原稿】【ここに原稿を貼る】
    【目標の長さ】【ここに秒数:例)180秒】
    【1文字あたりの秒数】【ここに例:0.2(落ち着いた声の目安)】
    
    【ルール】
    ・1項目=1文。1文は40字以内
    ・display は字幕(正しい表記のまま)
    ・expected_kana は読ませたい読みを、すべてひらがなで書く。数字、英字、社名、人名、製品名も必ずひらがなにする
    ・style は、その文だけ口調を変えるときに短く書く。変えない文は空文字
    ・est_seconds は、expected_kana の文字数×1文字あたりの秒数(小数1桁)
    
    【出力形式】
    {"target_seconds": 180, "items": [{"id": "s001", "display": "", "expected_kana": "", "style": "", "est_seconds": 0.0}]}
    最後に、est_seconds の合計と、読みに迷った語の一覧を書いてください。
    
    【完了条件】
    ・原稿の内容を足しても削ってもいない
    ・数字と固有名詞のすべてに expected_kana がある
    ・est_seconds の合計が目標の±10%に収まる。収まらなければ、削る候補の文IDを挙げる

    expected_kana は、誤読チェックの正解表にもなります。

    Flash TTSの設定は、本文と演技を分けるところから

    Gemini 3.8 Flash TTSは、従来の generateContent でなく POST /v1beta/interactions で呼びます。本文は input の text に、口調は annotations の speech_metadata の style に、声は generation_config.speech_config の voice に入れます。音声は、応答の steps のうち model_output の audio のデータ(WAV)で返ってきます。自社のスクリプトで確かめた形です。

    画像

    勘所は4つあります。

    1. 演技は本文に書かない。 本文に口調の指示を書くと、指示まで読み上げられます。演技は style に書きます。

    2. 声のIDは1本の中で固定する。 同じ役は同じvoiceを使い、styleの変化も最小限に。変えすぎると同じ人に聞こえなくなります。

    3. ボイスデザインの声はプロジェクト単位。 voice_ で始まるIDは、作ったプロジェクトの中でしか使えません。キーを替える前に作り直しを見込みます。

    4. 上限を前提に、直列で流す。 無料枠は1日10リクエスト、有料のTier 1でも1日100リクエストで、数えるのはプロジェクト単位です。リセットは日本時間16時(太平洋時間0時)。約3分の動画で約40クリップに取り直しが加わるので、1日1本が実際の天井でした。

    演技の指示を、役ごとの基本と行ごとの差分に分けて設計させるのがプロンプト3です。声を2つ以上使う担当者が、台本ができた直後に使います。

    プロンプト3:本文に混ぜない「演技の指示」を設計する

    あなたは音声演出の担当です。音声合成に渡す「演技の指示(style)」を設計してください。
    style は本文とは別の欄で渡します。本文には一切混ぜません。
    
    【声の一覧】【ここに 役名:声のID:人物像 を1行ずつ】
    【動画の目的と見る人】【ここに2行で】
    【台本】【ここに id と display を貼る】
    
    【ルール】
    ・役ごとに基本の style を1つ、40字以内で作る(役割、声の質、速さ、語尾)
    ・行ごとの差分は、必要な行だけに20字以内で足す。足す行は全体の2割以内
    ・読みを指定したい固有名詞は、差分に発音の指示として書く(例:社名は4拍で、つめずに読む)
    
    【出力形式】
    {"base": {"役名": "基本のstyle"}, "deltas": [{"id": "行ID", "delta": "差分", "why": "理由"}], "leak_check": ["本文に紛れ込んでいないか確かめる語"]}
    
    【完了条件】
    ・base と deltas のどこにも、台本の本文そのものを書いていない
    ・leak_check に、括弧書きの指示や「明るく」「ゆっくり」などの演技語を挙げている

    leak_check の語が本文に残っていたら、消してから生成します。

    2つの声を掛け合わせるとき

    1本目の自己紹介動画には、2人の掛け合いが入っていました。私は1行に1つの声で作り、タイムラインで並べています。

    画像

    効くのは相づちです。「なるほど」「ええ」を独立した行にすると、会話らしい間が生まれます。ホストとゲストの台本を作らせるのがプロンプト4で、社内報の対談やポッドキャストの企画向けです。

    プロンプト4:ホストとゲストの掛け合い台本

    あなたはビジネス系ポッドキャストの構成作家です。ホストとゲストの2人の掛け合い台本を作ってください。
    
    【テーマ】【ここにテーマ】
    【ホストの人物像】【ここに例:聞き役の司会者】
    【ゲストの人物像】【ここに例:中小企業の経営者】
    【長さ】【ここに例:3分・30行前後】
    
    【ルール】
    ・1行=1人の1発言。1行は60字以内
    ・相づち(「なるほど」「ええ」など)は、8字以内の独立した行にする
    ・同じ人が3行以上続かないようにする
    ・各行の style は、その発言の気持ちを15字以内で書く
    
    【出力形式】
    {"speakers": {"host": "", "guest": ""}, "lines": [{"id": "d001", "speaker": "host", "text": "", "style": ""}]}
    
    【完了条件】
    ・相づちの行が全体の1〜2割ある
    ・最後の2行で、聞き手が今日できる行動を1つ示している

    speaker ごとに voice を割り当てれば、次のスクリプトに渡せます。Claude Codeを使う担当者が、TTSを呼ぶスクリプトをOpusに書かせる依頼文がプロンプト5です。

    プロンプト5:Claude CodeにTTSの呼び出しスクリプトを書かせる

    あなたはNode.jsで動く音声生成スクリプトの実装担当です。次の条件を満たす gen_tts.mjs を書いてください。
    
    【入力】
    ・script.json(items の各要素に id、text、style、voice を持つ)。先頭の数行:【ここに貼る】
    ・1日の上限回数:【ここに数字】
    ・APIキーは環境変数 GEMINI_API_KEY から読む。コードやログに書かない
    
    【呼び出し方】
    ・POST https://generativelanguage.googleapis.com/v1beta/interactions
    ・model は gemini-3.8-flash-tts
    ・本文は input の text に入れ、style は同じ text の annotations に speech_metadata として付ける
    ・声は generation_config.speech_config の voice で指定する
    ・音声は応答の steps のうち model_output にある audio のデータを取り出して保存する
    
    【守ること】
    ・1本ずつ直列で送り、送るたびに15秒あける。並列にしない
    ・1日の予算カウンタを持ち、上限回数に達したら送る前に止めて残り件数を表示する
    ・id、text、style、voice が同じ WAV があれば、送らずに使い回す
    ・失敗したら HTTPステータスとエラー本文を errors/行ID.log に保存して次へ進む。再試行は1回まで
    
    【完了条件】
    ・保存するデータの先頭が RIFF でなければ、WAV の見出しを付けてから保存している
    ・生成後に各 WAV の長さを秒で測り、id、開始秒、終了秒、長さを timeline.json に書いている
    ・最後に「生成N本/使い回しM本/失敗K本/今日の送信X回」を1行で表示する
    
    【出力形式】
    gen_tts.mjs の全文、実行コマンド1行、必要な環境変数の一覧の3つ。

    予算の上限は、同じプロジェクトのほかの用途を引いた数に。

    外注制作とAI分担のビフォーアフター

    同じ4本を外に頼んでいたら、と考えてみます。台本を確認し、ナレーターを手配し、朗読劇なら複数の声優の日程をそろえ、収録し、編集し、字幕を付ける。社名の読みが違えば、収録のやり直しの相談からです。

    画像

    今回は2日で4本でした。私がしたのは、素材を渡し、途中の選択肢から選び、最後に耳で聞いて決めること。社名の読みは、演技の指示を足してその1クリップを作り直して終わりです。費用はOpusのトークン代とTTSの利用料で、TTSは1分あたり2〜3円程度という紹介も見かけますが、請求額では確かめていないので数字は出しません。

    うーん、速くなった、と言い切るのは少し違う気もします。待つ時間はむしろ増えました。上限が戻る16時を待ち、混雑した確認用のモデルが空くのを待つ。人の手配を待つ時間が、枠の回復を待つ時間に置き換わった、というのが近い感覚です。

    それでも、直す単位は「1本」から「1行」に変わりました。台本の1行を直せば、その行の声が作り直され、タイムラインが組み直され、絵がついてくる。直すことをためらわなくなったぶん、動画の中身に使う頭が増えました。

    今日から始める5つの行動

    行動1:社内の文書を1本だけ選ぶ

    「読んでおいて」と渡している資料や手順書から、3分以内に収まる短いものを1本選びます。迷ったらプロンプト1に答えてください。

    行動2:無料枠で1文だけ鳴らしてみる

    Google AI StudioでAPIキーを発行し、1文だけ読ませます。無料枠は1日10回なので、今日は声の候補を2〜3個聞き比べれば十分です。口調の指示はstyleの欄に。

    行動3:Opusに台本JSONを作らせる

    選んだ文書をプロンプト2に貼り、1文ずつの台本にします。想定秒数の合計と、数字・固有名詞のひらがなを確かめます。

    行動4:読みがなの一覧で誤読を先に潰す

    台本から社名、人名、製品名、数字を抜き出して一覧にし、読みが割れそうな語にはstyleで発音を指示します。社名だけは、生成後に必ず自分の耳で聞いてください。

    行動5:回数と費用の上限を先に決める

    1日に何回送るか、月にいくらまで使うかを作り始める前に決めます。上限はプロジェクト単位なので、ほかの用途と枠を分け合っていないかも確認します。送り方は1本ずつ、15秒あけて。

    台本を直せば、声も絵もついてくる

    2日間で分かったのは、AIの性能より、役割の線の引き方が仕上がりを左右するということでした。考える、書く、組む仕事はOpusに。演じる仕事はFlash TTSに。何を伝えるかと、社名が正しく聞こえるかの最終判断は人に。この3つを混ぜなければ、台本を直すだけで声も絵も後から追いかけてきます。

    話はそれますが、16時が近づくと時計を見てしまう癖が、まだ抜けていません。

    どの棚から始めても、最初にやることは同じです。社内に眠っている文書を1本選び、1文だけ声にしてみる。

    画像

    人の声が一秒も入っていない4本の動画も、始まりは台本の1行でした。御社の棚にある文書も、台本にした瞬間から声と絵を持てるようになります。まずは1文から試してみてください。

    ▶ 30 問で自社の経営課題を診断する(無料・3 分)

    あわせて読みたい

    PDF10枚を渡したら、4分50秒の研修動画が返ってきた。──人の声ゼロ。Gemini 3.8 Flash TTS×Claude Codeの制作ラインを全部見せます

    https://note.com/comix_ceo162230/n/ncbf77176ada4

    Opus 5.5に"最後まで"任せる技術──定義ファイル1枚で、迷わない部下をつくる

    https://note.com/comix_ceo162230/n/nc4b14eb13401

    Gemini 3.8を「使えるAI」にする10の実装判断――Live・Flash・Cyberを経営と現場の共通言語で設計する

    https://note.com/comix_ceo162230/n/n395e0d069763


    自己紹介

    株式会社コミクス代表取締役の鈴木章裕です。営業の叩き上げで25年、会社を創業して18年、これまでのお取引は1,825社になりました。いまは「生成AI活用顧問」として、経営者の隣でAIの選び方から現場への定着までを伴走しています。自社でもClaude CodeとCodexを毎日使い、社長の仕事をどこまでAIに渡せるかを実験し続けています。フルマラソン完走71回、100kmウルトラマラソン完走17回。「続けること」がいちばんの武器だと思っています。

    ▶ 鈴木章裕の自己紹介ページはこちら

    鈴木章裕

    株式会社コミクス 代表取締役

     
     
     
    AI活用のご相談→ https://www.comix.co.jp/contact/ 株式会社コミクス代表取締役。生成AI活用支援実績304社(2026年9月末現在)。営業・資料作成の効率化、AIエージェント導入を支援。何から始めるか迷っている段階でもご相談ください。

    あなたへのおすすめ