音声メッセージ、小説の一章、2人の登場人物による場面など、成人向けの台本を、息遣いやため息も含めて書かれたとおりに読み上げたい。料金も知りたい。SpicyAPIのGemini 2.5 Pro TTSなら、それができます。SpicyAPIはコンテンツフィルターを追加しません。2026年9月のテストでは、成人向け台本が省略や表現の弱化、途中の打ち切りなしで、完全な音声として返されました。
Playgroundでは、次の手順で始めてください。
- 雰囲気に合うVoiceを選びます。
Enceladus(息の混じる声)、Achernar(柔らかい声)、Sulafat(温かい声)、Gacrux(落ち着いた大人の声)、または既定のKore(はっきりした声)です。 - Styleを設定します。親密な内容では通常
Whisperが適しています。その場面を伝える文をDelivery instructionsまたはSceneに1、2文追加します。 - Text内で、
[sighs]や[laughs]のように音を角括弧で指定します。テスト例では音として表現されました。指示自体が読み上げられる場合は、演技指示をDelivery instructionsに移してください。 - 登場人物が2人の場合は、Textの代わりにDialogueとSpeakersを使います。
まずPlaygroundで試す
Gemini 2.5 Pro TTSを開き、PlaygroundタブのForm表示を使います。
- Textに台本を貼り付けます(最大5,000文字)。Cuesのショートカットで
[whispers]、[sighs]、[laughs]、[gasps]、[pause]を挿入できます。 - Voiceを選びます(例:
Enceladus · Breathy)。StyleをWhisper、PaceをUnhurriedにすると、ゆっくりと余韻を残す読み方になります。 - Delivery instructionsとSceneに1、2文を書きます。どちらの内容も読み上げられません。
- Textの下にある長さに基づく見積もりを確認し、Run modelを押して、Outputで結果を再生します。WAVもそこからダウンロードできます。
コードを書く前に、最も難しい箇所をここで試聴してください。Playgroundで演技として表現されずに読み上げられる指示は、APIでも読み上げられます。以下で各設定の働きを説明します。
結果を変える設定
voice_idには30種類の既成の声から1つを指定します。既定値はKoreです。
| 雰囲気 | 試聴する声 |
|---|---|
| 息の混じる、近い声 | Enceladus |
| 柔らかく、優しい声 | Achernar, Vindemiatrix |
| 温かい声 | Sulafat |
| 大人びた、かすれた声 | Gacrux, Algenib |
| はっきりした声 | Kore, Orus |
| 明るく、軽やかな声 | Puck, Aoede |
さらに4つの任意項目で演技を調整できます。いずれも読み上げられません。
styleは全体的な話し方を設定します。whisper、empathetic、vocal_smile、newscaster、promo_hype、deadpanから選びます。paceはリズムを設定します。natural、rapid_fire(速く、歯切れよく)、the_drift(ゆっくり、余韻を残す)、staccato(短い句を区切る)があります。遅い読み方ほど音声の秒数が増え、料金はその秒数に基づきます。instructions(最大1,000文字)には、雰囲気、マイクとの距離、誰に話しかけるかを自由に書きます。形容詞の羅列より、1、2文の指示が効果的です。例:"close to the microphone, unhurried, as if speaking only to the listener"。scene(最大500文字)には、どこで誰に話すかを書きます。例:"a quiet hotel room after midnight"。
accent(英語のアクセント8種類、英語台本のみ)とtemperature(各テイクの変化の程度)は任意です。違いを出したくなるまでは未指定にしてください。言語の項目はありません。モデルが台本の言語を検出し、それぞれの声は持ち味を保ちます。
演技を引き出す台本の書き方
text内の短い角括弧の指示で、音を出す場所や話し方を変える場所を指定します。テスト例では[sighs]と[laughs]が音として表現されました。長い箇所の話し方はstyle: "whisper"またはinstructionsで指定してください。タグが単語として読まれる場合も、代わりにこれらの項目を使います。三点リーダーは間を示します。
次の2つを意識すると役立ちます。
- 耳で聞く文章を書く。 読ませたい内容を省略せずに書き、三点リーダーやコンマで間を表し、文を短くします。
- 演技指示は本文ではなく専用項目に書く。
text内に"she whispers breathlessly"と書くと、その言葉が読み上げられます。styleまたはinstructionsに入れてください。
次にコードから呼び出す
このコードはタスクを作成し、完了を待ってWAVのリンクを出力します(pip install spicyapiで導入し、SPICY_API_KEYを設定してください)。
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
task = client.create_task(
model="google/gemini-2.5-pro-tts/text-to-speech",
input_data={
"text": "Hey... it is me. [sighs] I know it is late. Stay on the line a little longer?",
"voice_id": "Enceladus",
"style": "whisper",
"pace": "the_drift",
"scene": "A quiet bedroom after midnight, speaking to one listener",
"instructions": "Close to the microphone, unhurried, a little tired.",
},
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"]) # a 24 kHz, 16-bit mono WAV; copy it to your own storage音声の保存期間は14日で、単語ごとの時刻情報や字幕はありません。待機、再試行、結果リンクの期限、エラー処理については、Python SDKリファレンス、タスクのドキュメント、保存期間の説明を参照してください。
またはAgentに実行を任せる
アシスタントに音声メッセージを生成させるなら、CLIまたはMCPサーバーを使えるようにします。どちらも料金を表示し、有料呼び出しの前に確認を求めます。Skillは、そのどちらにも追加の指示を提供します。
- CLI。
spicyapiを使います(npx @spicyapi/cliならインストール不要です)。input.jsonには上のコードのinputオブジェクトを入れます。
``bash spicyapi tasks create --model google/gemini-2.5-pro-tts/text-to-speech \ --input-file input.json --wait ``
- MCPサーバー。 MCPサーバーを追加し、"Read this script in a whispered Enceladus voice with Gemini 2.5 Pro TTS."と依頼します。
spicyapi_task_create(料金確認のため停止します)とspicyapi_task_waitが呼び出されます。 - Skill。
npx skills add spicyapi-ai/spicy-skillでAgent Skillを導入します。コーディングアシスタントに、最新のスキーマを読むことと、冪等性キーを再利用することを教えます。単独ではタスクを実行できないため、CLIまたはMCPと併用してください。
1つのクリップに2人の登場人物を入れる
2人の場面では、dialogueをtextの代わりに送り(両方は送れません)、配役を定義するspeakersも指定します。各話者には台詞から参照するnameとvoice_idがあり、独自のaccent、style、paceも設定できます。さらに、誰が話しているかを短く説明するprofileを指定できます(読み上げられません)。話者が省略した値にはトップレベルの値が使われます。各台詞は{speaker, text}で、順番に表現されます。最大20行、1行250文字、話者は最大2人です。上と同じ呼び出しで、inputオブジェクトを次の内容に置き換えてください。
{
"speakers": [
{ "name": "Mara", "voice_id": "Sulafat", "style": "whisper", "profile": "Warm, close, unhurried" },
{ "name": "Jonah", "voice_id": "Charon", "profile": "Low, amused" }
],
"dialogue": [
{ "speaker": "Mara", "text": "Stay a little longer." },
{ "speaker": "Jonah", "text": "[laughs] You say that every time." },
{ "speaker": "Mara", "text": "And every time you do." }
],
"scene": "A quiet apartment after midnight"
}会話はミックス済みの1つのWAVとして返されます。後から人物ごとの台詞を個別に編集するなら、各人物を別々の単一音声タスクで生成し、編集ソフトでファイルをつなげてください。より長い場面、2人を超える声、参照クリップから複製した声については、TTSの比較とChatterboxの音声参照ガイドを参照してください。
料金
実際に返された音声の長さをファイルから測り、1秒あたり$0.00045で課金します。長さは声、スタイル、ペースによって変わります。270文字の段落は23〜29秒になるため、概算料金は文字数を10で割り、$0.00045を掛けた値です。
| クリップの長さ | 料金 | おおよその文字数 |
|---|---|---|
| 15秒 | $0.0068 | 150文字 |
| 30秒 | $0.0135 | 300文字 |
| 60秒 | $0.027 | 600文字 |
| 5分 | $0.135 | 3,000文字 |
| 7〜9分 | $0.19〜$0.24 | textの上限である5,000文字 |
タスクの実行中は、残高から約$0.30が一時的に確保されます(秒単価で660秒分。モデルが生成できる最長の約655秒のクリップをカバーします)。音声の長さを測定した後、未使用分が解放されます。失敗したリクエストは課金されません。バッチをキューに入れる前に、少なくともこの金額を利用可能な残高として確保してください。先行タスクの一時確保により、次のタスクを開始できなくなることがあります。
つまずきやすい点
- 指示が単語として読まれる。 書き換えるか、演技指示を
styleまたはinstructionsに移し、角括弧内は音だけにします。 - 演技指示が無視されているように見える。
accentが作用するのは英語台本だけです。トップレベルのstyleとpaceは、独自の値を設定していないすべての話者に適用されます。 textとdialogueを両方送った。 どちらか一方を選んでください。dialogueにはspeakersも必要です。
新しいGeminiの声を選ぶ場合
Gemini 3.8 Flash TTS(1秒$0.00032)とGemini 3.8 Flash-Lite TTS(1秒$0.00021)は、dialogueを含む同じ項目を、より低い料金で受け付けます。Flash-Liteは角括弧内の指示の一部を読み上げる傾向があるため、息遣いやため息が重要ならProを選んでください。Flashも通常は角括弧の指示を表現しますが、まず短い箇所で試聴してください。Gemini 3.8のナレーションガイドでは、この2つを詳しく説明しています。
よくある質問
Gemini 2.5 Pro TTSは検閲なしですか?
テストした成人向け台本は、単語の省略や表現の弱化なしに、完全な音声として返されました。SpicyAPIは追加のコンテンツフィルターを設けません。台本と音声の使い方については、引き続き利用者が責任を負います。実在の人物の発言として扱わないことも含まれます。登場人物は架空の成人にしてください。
[sighs]や[laughs]のような指示は読み上げられますか?
テストした[sighs]と[laughs]の例では、音として表現されました。別の指示が読み上げられる場合は、その指示をinstructionsへ移すか、styleを使ってください。他のモデルの挙動は異なり、上のTTS比較で説明しています。
instructions、scene、styleの違いは何ですか?
styleは全体的な話し方を選ぶ固定の一覧です。instructionsには読み方の指示を自由に書き、sceneにはどこで誰に話すかを書きます。まずstyleを使い、その場面に合わせてinstructionsまたはsceneを追加してください。
1分の音声はいくらですか?
約$0.027です。台本の長さではなく、返された音声の秒数に基づいて課金します。
声を複製できますか?
このエンドポイントではできません。30種類の既成の声から選ぶか、参照クリップを受け付けるモデルを使ってください。
まずPlaygroundで始めてください(先にアカウントを作成します)。Enceladus、Whisper、[sighs]を1つ入れた短い台本で、指示がどう反映されるか確認できます。





