Gemini TTSの使い方|日本語で読み上げる手順と注意点
「Gemini TTSで日本語のナレーションを作りたいが、どこから呼べばいいのか分からない」「サンプルどおりに書いたのに、読み方の指示まで声になって返ってきた」——読み上げをAIに任せようとして最初につまずくのは、だいたいこの2つです。
結論から言うと、Gemini TTSの使い方で一番大事なのは「読ませる文」と「読み方の指示」を別の欄に分けることです。Gemini 3.8 Flash TTSは、本文に書いたものを一字一句そのまま読む作りになっています。「落ち着いた声で読んでください。」を本文の前に置くと、その一文から読み上げます。指示は speech_metadata の style に入れ、間や息づかいは本文の中に <short pause> のようなタグで入れます。
株式会社Fyveは、中小企業の業務にAIを組み込む仕事をしています。社内では動画の自動制作を研究していて、その中でGemini 3.8 Flash TTSに約1分の台本を6つの声で読ませ、読み間違い・無料枠・費用を記録しました。この記事では、公式ドキュメントの手順に、その実測で分かった落とし穴を重ねて、日本語で使うための手順をまとめます。
結論:Gemini TTSの使い方で押さえる4点
細かい手順に入る前に、最初に知っておけば遠回りしない4点を置きます。
- 指示は本文に混ぜない:読み方の指示は
speech_metadata.styleに入れます。本文の前に書くと、その文まで読み上げられます(私たちの実測では6声すべてで起きました) - 呼び出し口はInteractions API:公式ドキュメントの例はすべて
/v1beta/interactionsです。返ってくる音声は既定でWAV(24kHz・モノラル・16bit)です - 数字と英字は台本側でかなに開く:Flash-Lite TTSは「152キロ」を「15.2キロ」と読みました。読み間違えさせたくない数字は、台本の段階で「ひゃくごじゅうに」と書きます
- 無料枠は回数が少ない:私たちの無料の鍵では、
gemini-3.8-flash-ttsは1日10回で上限に達しました。1文ずつ呼ぶ作りにすると、短い動画1本も作れません
以下で、試し方・APIでの呼び出し方・声の選び方・日本語の落とし穴の順に説明します。
Gemini TTSとは|2つのモデルと使える場所
Gemini TTSは、GoogleのGemini APIで使えるテキスト読み上げ(TTS=Text To Speech)のモデルです。2026年9月23日に、Googleが公式ブログで「Gemini 3.8 Flash TTS」と「Gemini 3.8 Flash-Lite TTS」の2つを発表しました。
項目 | Gemini 3.8 Flash TTS | Gemini 3.8 Flash-Lite TTS |
|---|---|---|
モデルID |
|
|
公式の位置づけ | 表現力が最も高く、作り込む用途向け | 速く安く、量をこなす用途向け |
日本語 | 対応 | 対応 |
出力の単価(有料・音声) | $9.00/100万トークン | $6.00/100万トークン |
単価は2026年10月21日にGemini APIの公式料金ページで確認した数字で、どちらも2026年12月31日までの価格です。2027年1月1日からは$18.00/$12.00になると公式ページに書かれています。いずれも米ドル建て・税別で、契約前には公式の料金ページで最新の数字を確認してください。料金の読み方と、1分の音声がいくらになるかの計算は別の記事にまとめています。
使える場所は、Google AI StudioとGemini APIです。公式料金ページの各モデルの欄に「Try it in Google AI Studio」のリンクがあり、コードを書かずに音を聞くならここが早道です。業務の仕組みに組み込むならAPIから呼びます。
使い方1:まずGoogle AI Studioで声を聞く
いきなりコードを書く前に、AI Studioで2〜3文を読ませて、声の候補を絞っておくことをすすめます。理由は単純で、声の良し悪しは文字の情報では判断できないからです。公式ドキュメントには30種類の声に「Firm」「Informative」のような一言の説明が付いていますが、日本語を読ませたときの印象は、その一言から想像したものとかなり違いました。
試すときの台本には、自分の業務で実際に出てくる語を混ぜます。私たちが使った台本には、次のような「読み間違えやすい語」をわざと入れました。
- 時刻:朝5時、7時、14時、22時(「しちじ」「じゅうよじ」と読むか)
- 回数:1日3回(「ついたち」と読まないか)
- 製品名:Mac mini、Slack、Claude Code
- 英字1文字:X(「バツ」と読まないか)
- 略語:AI、SEO
- 版番号:Opus 5.5、Gemini 3.8 Flash TTS
結果は後の節で書きますが、時刻・回数・製品名はどの声も正しく読みました。崩れたのは、別の日に試した「数字+単位」と、文の言い換えでした。
使い方2:APIでGemini TTSを呼び出す手順
業務で使うなら、APIから呼んで音声ファイルを保存する形になります。手順は4つです。
- Google AI StudioでAPIキーを作る
- キーを環境変数(例:
GEMINI_API_KEY)に置く。コードの中に直接書かない - Interactions APIに、読ませる文・声・読み方の指示を送る
- 返ってきた音声(base64)をデコードしてWAVで保存する
Pythonで呼ぶ(公式の例)
公式ドキュメントのPythonの例は次のとおりです(公式の speech-generation ページより。2026年10月12日更新の版)。
import base64
from google import genai
client = genai.Client()
interaction = client.interactions.create(
model="gemini-3.8-flash-tts",
input=[{"type": "user_input", "content": [{
"type": "text",
"text": "Have a wonderful day!",
"annotations": [{"type": "speech_metadata", "style": "cheerful and friendly"}],
}]}],
response_format={"type": "audio"},
generation_config={"speech_config": [{"voice": "Kore"}]},
)
with open("out.wav", "wb") as f:
f.write(base64.b64decode(interaction.output_audio.data))見るべき場所は3つです。text が読ませる文、annotations の style が読み方の指示、speech_config の voice が声の名前です。SDKを使う場合は interaction.output_audio から音声を取り出せる、と公式に書かれています。
SDKを使わずにHTTPで呼ぶ
私たちの社内のスクリプトは、ライブラリを増やしたくなかったので標準のHTTPだけで呼んでいます。送る中身はPythonの例と同じです。
curl -s "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-d '{
"model": "gemini-3.8-flash-tts",
"input": [{"type": "user_input", "content": [{
"type": "text",
"text": "本日の作業をまとめます。",
"annotations": [{"type": "speech_metadata", "style": "落ち着いた、聞き取りやすいナレーション。ややゆっくり。"}]
}]}],
"response_format": {"type": "audio"},
"generation_config": {"speech_config": [{"voice": "Charon"}]}
}'SDKを使わない場合、音声は応答の steps[].content[].data にbase64で入っています(公式ドキュメントに記載)。これをデコードしてファイルに書けば、そのまま再生できるWAVになります。
返ってくる音声の形式
呼び方 | 既定の形式 | 補足 |
|---|---|---|
通常(一括で返す) | WAV(24kHz・モノラル・16bit PCM) | 先頭に44バイトのヘッダが付く |
ストリーミング | ヘッダなしのPCM(24kHz・モノラル) | 受け取りながら再生する用途 |
電話向け | G.711(mu-law/A-law・8bit) |
|
サンプルレートは24000・16000・8000Hzなどから選べます。電話の自動応答に使うなら、最初から電話向けの形式で受け取れば変換の手間が要りません。
読み方の指示は本文に混ぜない|speech_metadataの使い方
ここがこの記事でいちばん伝えたいところです。私たちは最初、前の世代のTTSで広まっていた書き方をそのまま使いました。読ませたい文の前に「落ち着いた、聞き取りやすいナレーションとして、ややゆっくり読んでください。」と書く方法です。
2026年9月26日、この書き方で6つの声に同じ台本を読ませたところ、6声すべてが指示文から読み上げました。文字起こしにかけて確かめたので、聞き間違いではありません。
公式ドキュメントにはこう書かれています。「Gemini 3.8 TTS models treat input text strictly as a verbatim transcript.」——本文は一字一句そのまま読む原稿として扱う、という意味です。続けて、前のプレビュー版では演技の指示を本文に書き込んでいたが、3.8では続けてかかる指示(speech_metadata)と、その場で起きる声のタグを分けた、と説明しています。
指示を speech_metadata.style に移したら、指示文は読まれなくなりました。

どの指示をどこに書くか
公式ドキュメントは、指示を「範囲」で2つに分けるよう書いています。
指示の種類 | 書く場所 | 例 |
|---|---|---|
その発話全体にかかる指示(感情・速さ・話し方) |
| 「落ち着いた解説」「speaking slowly」 |
特定の位置で起きること(間・ため息・咳) | 本文の中に山かっこのタグ |
|
日本語の原稿でも、タグは英語のまま書きます。公式に「本文が英語以外でも、タグは英語のまま使うのが最もよい結果になる」とあります。「ここで一拍置きたい」なら、本文に <short pause> を入れます。読点(、)やダッシュ(--)、三点リーダー(...)でも自然な間が入る、と公式は書いています。
「声を安定させて」と書かない
もう一つ、公式が明確に止めている書き方があります。「話者を変えないで」「声質を同じに保って」のような指示です。公式は、余分な指示文はかえって声のぶれを増やすとして、こうした指示を入れないよう書いています。声を毎回同じにしたいなら、指示を足すのではなく、同じ声の名前(または保存した自作の声)を使い続けます。
私たちの経験でも、指示は短いほうが安定しました。最終的に使った指示は「落ち着いた、聞き取りやすいナレーション。ややゆっくり。」の1文だけです。
声の選び方|30種類から日本語ナレーション向きを選ぶ
公式ドキュメントに載っている既製の声は30種類です。日本語の解説ナレーションで候補にしやすいものを抜き出すと、次のとおりです(説明は公式の英語の一言を訳したもの)。
声の名前 | 公式の説明 |
|---|---|
Charon | Informative(説明向き) |
Kore | Firm(しっかり) |
Puck | Upbeat(明るい) |
Aoede | Breezy(軽やか) |
Fenrir | Excitable(勢いがある) |
Iapetus | Clear(はっきり) |
Schedar | Even(平らで落ち着いた) |
Sadaltager | Knowledgeable(知的) |
このほかに、公式ブログが「2,000以上」とうたう拡張の声のライブラリがあり、APIの GET /v1beta/voices で一覧を取れます。
実際に日本語で読ませた結果
約1分の同じ台本・同じ指示で読ませ、文字起こしで読みを確かめた結果です(2026年9月26日・社内での測定)。
声 | 音声の長さ | 気になった点 |
|---|---|---|
Charon | 49.3秒 | なし |
Kore | 54.1秒 | 一か所、文の言い換えの疑い |
Puck | 47.4秒 | 一か所、文の言い換えの疑い |
Aoede | 50.2秒 | 一か所、文の言い換えの疑い |
Fenrir | 51.7秒 | 「SEO」の書き起こしが乱れた(文字起こし側の誤りの可能性) |
Charon(Flash-Lite) | 46.2秒 | なし |
同じ原稿でも、声によって長さが47秒から54秒まで約15%違いました。動画の尺や電話の応答時間が決まっているなら、声を変えると尺も変わる点に注意が要ります。
比較のために、macOSに標準で入っている読み上げ(say コマンド)でも同じ台本を読ませました。費用ゼロで出せる声です。「有料のTTSを使う理由があるか」は、この費用ゼロの声と並べて聞くと判断しやすくなります。
日本語で読ませるときの3つの落とし穴
時刻・回数・製品名は、どの声も正しく読みました。崩れたのは別の場所です。
1. 数字と単位:「152キロ」が「15.2キロ」になった
2026年9月27日、短い動画のナレーションでFlash-Lite TTSに「152キロ」を読ませたところ、「じゅうごてんにキロ」と読みました。数字が一桁ずれると意味が変わります。重さ・金額・人数のように、間違えると困る数字は、台本の段階でかなに開きます。
- 原稿(画面に出す字幕):152kg
- 読ませる台本:ひゃくごじゅうにキロ
字幕と台本を別に持つのは手間に見えますが、私たちはこれを決まりにしました。直す箇所は、読み間違いが出た語だけで足ります。
2. 文の言い換え:生成モデルなので、語が変わることがある
6声の比較で、3つの声に「台本と違う言葉で読んだのでは」という箇所が1つずつ出ました。たとえば「動かしているのは」が「私が作っているのは」に聞こえる、といった違いです。
TTSといっても中身は生成モデルなので、原稿を一字一句なぞる保証はありません。文字起こしの誤りなのか、本当に言い換えたのかは、最後は耳で聞かないと分かりません。外に出す音声は、出す前に一度聞く工程を残す——これが6声を試した私たちの結論です。
3. 英字と版番号:英語読みになる
「Opus」「Gemini 3.8 Flash TTS」は、日本語の文の中でも英語の発音で読みました。英語読みで困らないなら、そのままで構いません。「ジェミニ さんてんはち」と日本語読みにしたい場合は、台本をカタカナとかなで書きます。
聞き取り確認を機械に手伝わせる
全部を耳で聞くのは時間がかかるので、私たちは「読み間違いの候補を機械で拾い、怪しい箇所だけ人が聞く」形にしています。最初は文字起こしのツール(whisper)を使いましたが、数字を「15.2kg」のように整えて書き出すため、読み間違いなのか整形なのか区別できませんでした。
そこで、Geminiに音声を渡し、「聞こえた音のとおりにすべてひらがなで書き起こしてください。数字は読まれた音のまま」と頼む方式に変えました。台本の読み(ひらがな)と並べれば、ずれた箇所が見えます。

無料枠でGemini TTSを使うときの注意
公式料金ページでは、2つのモデルとも無料枠の欄が「Free of charge」になっています。ただし、使える回数には上限があります。
回数の上限:1日10回で止まった
私たちの無料の鍵では、gemini-3.8-flash-tts は1日10回で上限に達し、6声を試す途中でエラー(429)が返りました。Flash-Lite TTSは別の枠で、こちらはまだ呼べました。上限の数字は公式のレート制限ページに一覧が無く、公式は「自分の上限はAI Studioで確認する」としています。上の10回は、あくまで私たちの鍵で起きたことです。
公式によると、上限はAPIキーごとではなくプロジェクトごとにかかり、1日の回数は太平洋時間の0時に戻ります。日本時間では、夏時間の間は16時、冬時間(2026年は11月1日から)は17時です。
回数を節約する作り:全文を1回で読ませて、無音で切る
短い動画は14文ほどの台本でした。1文ずつ呼ぶ作りだと14回かかり、無料枠では1本も作れません。そこで、台本全体を1回で読ませ、文と文の間の無音を検出して切り分ける作りに変えました。この方式で14文すべてが正しい位置で切れました。
切り分けた音声をつなぎ直すときは、WAVのヘッダに注意します。公式は、一括で返る音声には44バイトのヘッダが付くので、つなぐ前にヘッダを外すか、最初からヘッダなしのPCM(audio/l16)で受け取るよう書いています。
無料枠の入力は、製品の改善に使われる
業務で使う前に必ず見てほしい行があります。公式料金ページの「Used to improve our products」の欄が、無料枠では「Yes」、有料枠では「No」です。社外に出していない原稿や、顧客の名前が入った文を読ませるなら、無料枠ではなく有料枠で使うべきです。
2人の会話を作る(マルチスピーカー)
対談形式の音声も1回の呼び出しで作れます。公式ドキュメントの決まりは次の3つです。
- 話者は既製の声で最大2人まで
speech_configにspeakersの配列を渡し、話者の名前と声を対応させる(1人のときは[{"voice": "..."}]の配列)- 発話ごとに
speech_metadataでspeakerを必ず指定する
自作の声や複製した声を組み合わせたい場合は、話者ごとに別々に生成してつなぐよう公式は書いています。3人以上の会話も同じく、分けて作ってつなぐ形になります。
私たちがGemini TTSを本命にしなかった理由
ここまで使い方を書いてきましたが、正直に書くと、社内の動画制作で本命にしている声はGemini TTSではありません。2026年9月29日に別のTTS(ElevenLabsのEleven v4)を試したところ、田嶋が聞き比べて、こちらのほうが自然だと判断しました。Eleven v4は、Flash-Lite TTSが読み間違えた「152キロ」も数字のまま正しく読みました。
それでもGemini TTSを予備として残しているのは、次の理由です。
- 動画生成や音楽生成と同じGeminiの鍵1本で使える
- 無料枠で試せるので、仕組みを組む段階の検証に向いている
- 読み方の指示を文章で書け、間や息づかいをタグで入れられる
声の自然さは、聞く人と用途で評価が変わります。社内の研修動画やマニュアルの読み上げのように「聞き取れれば十分」な用途なら、Gemini TTSで足りる場面は多いはずです。どの声が合うかは、自社の原稿を読ませて聞き比べるのがいちばん確実です。
動画制作をAIに任せるときの考え方は、こちらの記事に書いています。
よくある質問
Gemini TTSは日本語に対応していますか
対応しています。公式ドキュメントの対応言語に、Flash TTS・Flash-Lite TTSとも日本語が含まれています。私たちの測定では、時刻・回数・製品名は正しく読み、数字+単位で1件の読み間違いがありました。
読み方の指示を書いたら、指示まで読まれてしまいます
指示を本文(text)に書いているのが原因です。annotations に {"type": "speech_metadata", "style": "..."} の形で入れてください。3.8は本文を一字一句読む原稿として扱います。
何文字まで一度に読ませられますか
公式の speech-generation ページには、入力の上限や音声の長さの上限の記載がありませんでした(2026年10月21日確認)。私たちは約1分の台本を1回で読ませて問題なく返ってきています。長い原稿は、段落ごとに分けて生成し、ヘッダに注意してつなぐのが安全です。
費用はどのくらいかかりますか
公式料金ページの換算では、Flash TTSは10秒あたり$0.00225(2026年12月31日まで)です。1分なら約$0.0135になります。詳しい計算は料金の記事を見てください。導入価格の後に倍額になる点は、ほかのGemini 3.8のモデルと同じ型です。
生成した音声に目印は入りますか
公式ブログは、声の複製の機能について、本人の同意確認・SynthIDの透かし・C2PAの来歴情報で守ると書いています。通常の既製の声で作った音声に何が付くかは、speech-generation ページには記載がありませんでした。社外に出す音声で気になる場合は、利用規約とあわせて確認してください。
まとめ
Gemini TTSの使い方を、日本語で使う前提でまとめます。
- まずGoogle AI Studioで、自社の原稿を2〜3文読ませて声を絞る
- APIはInteractions API。読ませる文は
text、声はspeech_config、読み方の指示はspeech_metadata.style - 指示を本文の前に書かない。3.8は本文を一字一句読む
- 間は
<short pause>などの英語のタグで本文に入れる - 間違えると困る数字は、台本の段階でかなに開く
- 生成モデルなので語が変わることがある。外に出す前に一度聞く
- 無料枠は回数が少なく、入力が製品の改善に使われる。業務の原稿は有料枠で
読み上げは、指示の置き場所さえ間違えなければ、数行のコードで業務に組み込めます。株式会社Fyveでは、こうした「AIを業務の仕組みに組み込むときにつまずく場所」を、自社で試した結果とあわせて発信しています。
AIを使う会社と、使わない会社。
その差は、開き始めています。
ここ数年でAIは急速に進化し、正しく導入できている企業とそうでない企業とでは、業務効率や人件費に大きな差が生まれ始めています。「AI導入に興味はあるが、実際に何ができて、どこから手をつければいいか分からない」——そんな方は、まずこの無料プレゼントに目を通してみてください。
