成人向けオーディオブックの1章やキャラクターのボイスメッセージなら、演出指示や広い言語カバレッジが必要なら Gemini 3.8 Flash TTS を、シンプルな完成ナレーション、短いメッセージ、大量の台詞には Flash-Lite TTS を選びましょう。 どちらも明示的な成人語彙をそのまま読み上げます。Flash は [whispers] のような角括弧の演出指示をそのとおりに演じ分けます(通常は。ただし先に試聴してください)。対応言語は Flash が 130 言語、Lite は 101 言語です。Lite は角括弧の演出指示を安定して解釈できず、まれに読み上げてしまうため、シンプルな台本が必要です。Flash は返却されたオーディオ 1 秒あたり $0.00032、Lite は $0.00021 です。差額はオーディオ 10 分あたり $0.066、1,000 分では $6.60 になります。2026 年 9 月の自社テストに基づく数値です。

作例中の架空の成人ペアを描いたイラスト。オーディオの出力結果ではありません。
用途別のモデル選び
| Flash TTS | Flash-Lite TTS | |
|---|---|---|
| オーディオ 10 分 | $0.192 | $0.126 |
角括弧の演出指示([whispers]、[sighs]) | ほとんど解釈される。たまにタグの語が読み上げられる | 安定して解釈されない。タグの語が読み上げられることがあるため、効果音は文字で書く |
| 言語 | 130 | 101(タイ語、スウェーデン語、フィンランド語、スワヒリ語、ソマリ語には対応しない) |
| 1 リクエストで 2 人の話者 | 対応(speakers + dialogue) | 対応、構造も同じ |
| 音声 / 出力 | 30 種類のプリセット音声、24 kHz 16 ビットモノラル WAV | 同じ |
| 向いている場面 | 演出されるオーディオブックの場面、息づかいなどの声の効果、会話の多い場面、より広い言語カバレッジ | シンプルな完成ナレーションとメッセージ、下書き、音声の試聴、大量の台詞 |
笑い声やため息、ささやきがピンポイントで必要なときには Flash TTS、シンプルな話し方には Flash-Lite TTS を使ってください。まず Lite でシンプルな台本を試し、気に入ったテイクを残しておけば、Flash で作り直す必要はありません。場面に演出指示が必要なとき、または Lite が対応していない言語のときに Flash へ切り替えましょう。どちらも同じ項目を受け付けるので、切り替えはモデル名の変更だけです。
キャラクターのボイスメッセージを作る
まず Playground で試してください。Flash TTS または Flash-Lite TTS を開き、Playground タブの Form ビューで次のようにします。
- Text には、聞き手に届かせる言葉だけを入れます(最大 5,000 文字)。Flash では Cues のショートカットで
[whispers]、[sighs]、[laughs]、[gasps]、[pause]を挿入できます。Lite はこのようなタグが読み上げられるという警告を表示します。 - Voice を選びます(既定は
Kore)。必要に応じて Style と Pace も選びます。 - Delivery instructions(最大 1,000 文字)と Scene(最大 500 文字)に読み方に関するメモを書きます。どちらも読み上げられることはありません。
- 長さの推定値を確認し、Run model を押して、Output で WAV を再生またはダウンロードします。
続いて同じリクエストをコードから送ります(pip install spicyapi、SPICY_API_KEY の設定済み)。タスクを作成して待ち、WAV のリンクを出力します。Lite の場合はモデルを google/gemini-3.8-flash-lite-tts/text-to-speech に変更し、角括弧の代わりに効果音を文字で書いてください。
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="google/gemini-3.8-flash-tts/text-to-speech",
input_data={
"text": "You made it. I was starting to think you had changed your mind. Stay a little longer; I like having you here.",
"voice_id": "Kore",
"instructions": "Quiet, warm and intimate. Speak to one adult listener, with a natural pause after the first sentence.",
"pace": "natural",
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
print(output_assets(final)[0]["url"]) # 24 kHz 16-bit mono WAV; copy it to your own storage待機、リトライ、エラー処理については Python SDK リファレンスとタスクのドキュメントを参照してください。
Character: ラベル、テイク番号、場面の説明は text から外してください。モデルはその内容を書き起こしとして読みます。instructions はトーンやマイクからの距離など、1〜2 文に抑えてください。年齢や性別をここで説明するのではなく、別の音声を選ぶ形にします。アクセントは accent 項目で設定します。
Flash では、指定する台詞の直前にインラインの演出指示を置きます。[whispers] You made it. のように書きます。モデルのページには [sighs]、[laughing]、[gasping] も挙げられており、例では [softly] や [teasing] が使われています。間はタグではなく、句読点(カンマ、三点リーダ、句点)から生まれます。Google の直接 API ドキュメントにある山括弧のタグではなく、角括弧を使ってください。タグが解釈されるのではなく読み上げられた場合は、作り直すか、その台詞を instructions に移してください。
Lite では、効果音を文字で書いてください。Mmm... you made it. や Ha... of course you did. のようにします。角括弧はまったく使わず、トーンは instructions、句読点、短い文で伝えます。
あるいは Agent に任せます。 アシスタントに CLI か MCP サーバーを渡してください。どちらも価格を表示し、有料呼び出しの前に確認を求めます。Skill はどちらの上にも指示を追加します。
- CLI:
spicyapi(npx @spicyapi/cliはインストールなしでも動きます)。input.jsonには上記のinputオブジェクトを書きます。
``bash spicyapi tasks create --model google/gemini-3.8-flash-tts/text-to-speech \ --input-file input.json --wait ``
- MCP サーバー: MCP サーバーを追加して、「この台詞を Gemini 3.8 Flash TTS で温かい調子で読んで」と依頼します。
spicyapi_task_create(価格確認のためそこで止まります)を呼び、続いてspicyapi_task_waitを呼びます。 - Skill:
npx skills add spicyapi-ai/spicy-skillで Agent Skillをインストールします。現在のスキーマを読むようアシスタントに教えるだけで、それ自体はタスクを実行できないため、CLI か MCP と組み合わせて使ってください。
音声を選ぶ
音声 ID は大文字と小文字を区別し、Kore(しっかりした)が既定です。より温かく柔らかい選択肢としては Sulafat(温かい)、Achernar(柔らかい)、Enceladus(吐息が聞こえる)があります。Charon(落ち着いている)はナレーションに向いており、Gacrux は大人びた声で、Algenib はざらついた声、Puck は明るく弾む印象です。Lite で同じ 2 行を 3 種類の音声で試し、作品全体でその音声を固定してください。音声は言語が変わっても性格を保ちます。これらのプリセットのみが利用可能な音声で、クローンもアップロードした参照音声もありません。

イラスト。オーディオの出力結果ではありません。
1 リクエストで 2 人の成人
text 内の話者名では 2 つの音声は作られません。text ではなく dialogue を使い、各行に speakers に含まれる話者名を割り当ててください。
{
"speakers": [
{"name": "Mara", "voice_id": "Kore", "style": "vocal_smile"},
{"name": "Eli", "voice_id": "Charon", "pace": "natural"}
],
"dialogue": [
{"speaker": "Mara", "text": "You can stay, if you want to."},
{"speaker": "Eli", "text": "I was hoping you would ask."}
],
"scene": "Two fictional adults speaking quietly after a dinner date."
}制限は 2 人の話者、20 行、1 行あたり 250 文字です。返されるのは 1 つのミックス WAV で、話者ごとのファイルではありません。音声を個別に編集したい場合は、各話者の台詞を単一音声のタスクとして個別に生成してください。各話者は独自の style、pace、accent と、profile(読み上げられない)を設定できます。
1 章をリクエストに分割する
1 リクエストで受け付けるのは最大 5,000 文字です。実際には 270 文字程度の段落は 20〜26 秒程度になるため、最大 5,000 文字のフルリクエストは 6〜8 分くらいが目安です。これは長さの上限ではありません。この範囲の費用は Flash で $0.1152〜$0.1536、Lite で $0.0756〜$0.1008(それぞれおよそ $0.12〜$0.15、$0.08〜$0.10)です。したがって 20 分の章は 3〜4 リクエストになります。Flash で $0.384、Lite で $0.252 です。
- 場面の転換や長い間で分割してください。 文の途中で切らないこと。場面の途中でつないだ部分は、音色の変化が最も聞こえやすい場所です。
- どの部分にも同じ音声、同じ
instructions、同じ設定を使ってください。 そうしないと 1 人のナレーターが 2 人のように聞こえ始めます。 - 余裕を見て見積もってください。 支払いは返却された秒数に対して発生し、
paceを遅く設定するとより多くの秒数が返されます。 - WAV は 14 日間保持されます。 タイムスタンプも字幕もありません。必要ならエディターで書き起こしを揃えてください。
- 一時的な確保を想定してください。 実行中のタスクは 660 秒分の予算を確保し、完了時に未使用分を解放します。
- MP3、BGM のトラック、音高や速度のスライダー、ライブ通話はありません。 WAV はローカルで変換し、環境音はエディターで合成し、リアルタイムの声にはリアルタイム連携を使ってください。
結果を変える設定
pace には natural、rapid_fire、the_drift(ゆっくり、余韻を残す)、staccato があります。まず natural で始めてください。台詞が急ぎすぎていると感じたら、まず句読点を直してください。style には whisper、empathetic、vocal_smile、newscaster、promo_hype、deadpan があり、親密な場面では whisper か vocal_smile を試してみてください。accent は英語のアクセントを 8 種類(ニュートラル、アメリカ系 3 種、イギリス系 2 種、大西洋横断風、オーストラリア)から選べます。temperature は 0〜2 の範囲で、テイクごとの揺らぎを制御します。最初のテイクでは未設定のままにしてください。
音がおかしいとき
| 聞こえるもの | 変更すること |
|---|---|
| Lite が角括弧の演出指示を読み上げる | 角括弧を外して音を文字で書くか、その行を Flash に移す |
| Flash が演出指示の語を解釈せず読み上げる | 作り直す。同じことが続くなら演出指示の言い方を変えるか instructions を使う |
| 台詞がアナウンスのように聞こえる | promo_hype または newscaster を外し、短い会話的な指示を試す |
| 対応していない言語、または Lite では読みにくい | Flash を使う(130 言語) |
| 冒頭の演出メモが読み上げられる | text に入っていないか確認し、入っている場合はタスク ID をサポートに連絡する |
試聴の例として、公開されている囁き告白の Flash サンプル を用意しました。Google のモデルドキュメントが扱うのは直接 API のみです。
まとめると、シンプルなナレーション・下書き・大量の台詞は Lite、演出指示や Lite にない言語は Flash です。どちらのモデルでも、章全体を着手する前に、使いたい音声で短い朗読を 1 つ試聴し、そのあとその音声と演出方針をすべての部分に再利用してください。
ほかの音声オプションとして、検閲なしのテキスト読み上げ API の比較記事(英語版のみ)と、NSFW 向けの Gemini 2.5 Pro TTS があります。







