はじめに
読み上げるテキストと、任意で 30 種類の声のいずれか、アクセント、スタイル、速さ、シーン、話し方に関する短いメモを送ってください。会話の場合は、テキストの代わりに台詞と話者を送ります。タスクは 1 本の WAV ファイル(24 kHz・16 ビット・モノラル)を返し、その声で台本が読まれます。対話の場合は最大 2 つの声を使います。通常は数秒以内です。句読点で読み方を整えてください。[sighs] のような角括弧の指示は確実には演じられず、そのまま読み上げられることもあります。SpicyAPI はコンテンツフィルターを適用しないので、すべての台本は書いたとおりに読まれます。課金は返された音声の秒数単位です。
| 項目 | 値 |
|---|---|
| 入力 | テキスト |
| 出力 | 音声 |
| 必須フィールド | text (1〜5,000 文字) または dialogue (最大 20 行) |
| オプションフィールド |
|
| 結果 | WAV ファイル 1 つ、24 kHz、16 ビット、モノラル |
| 最長クリップ | 16,384 音声トークン |
| 課金対象の数量 | 返された音声の秒数(ファイルから測定) |
| 保存期間 | 生成された音声は 14 日間保存されます |
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
text | いいえ | 読み上げてほしい言葉を、書かれたとおり正確に指定します。[sighs] のような角括弧の指示は確実には演じられず、そのまま読み上げられる場合があるため、音は書き出す形にしてください。 1 文字以上 · 5000 文字以内 |
dialogue | いいえ | text の代わりに使う、最大 2 人の声による台本付きの会話です。最大 20 行で、各行に speaker (speakers にある名前) と 250 文字以内の text を指定します。 1 件以上 · 20 件以内 |
speakers | いいえ | dialogue の配役です。1 人か 2 人分を指定し、それぞれに行から参照される name と |
voice_id | いいえ | 30 種類のプリセット音声のいずれかで、それぞれ固定のキャラクターを持っています。デフォルトは Kore です。 |
style | いいえ | 全体の話し方です。空欄にすると、そのボイス本来の話し方で読みます。 |
pace | いいえ | 読み上げのリズムです。natural、 |
accent | いいえ | 読み上げに使う英語のアクセントです。省略すると声本来のアクセントのままです。 |
instructions | いいえ | 読み方の自由記述の指示です。速さ、気分、マイクとの距離、聞き手などを書きます。 1000 文字以内 |
scene | いいえ | どこで誰に向けて話すかの説明です (例:「真夜中過ぎの静かなホテルの部屋」)。演じ方に反映され、読み上げられません。 500 文字以内 |
temperature | いいえ | テイク間のバリエーションを 0 から 2 の範囲で指定します。値を大きくするほど演じ方が予測しにくくなります。 |
料金
$0.00021 / 秒
返された音声の秒数に応じて課金されます。タスクの実行中は 660 秒分の保留が設定され、音声が測定され次第、未使用分が解放されます。
ユースケース
大量ナレーション
商品説明文、レッスン台本、記事の読み上げ、短い台詞のバッチ処理など、演技の細やかさよりも所要時間とコストが重視される用途に向いています。
キャラクター・コンパニオンの声
チャットキャラクターに専用の声を与え、数秒で返答できます。話し言葉らしい短い文と丁寧な句読点が、トーンの大部分を決定づけます。
無検閲のオーディオストーリー
台本はコンテンツフィルターを通らずに処理されます。当社のテストでは、送った最も大胆なモノローグとナレーションのシーンを、モデルがすべての言葉を読み上げ、飛ばしたり途中で切ったりしませんでした。
動画用の音声トラック
ここで台詞を生成し、その WAV ファイルをトーキングアバターやリップシンクのモデルに渡せば、顔がそれを演じます。音声の長さが、後段のクリップの長さを決定します。
プロンプトガイドと実践のヒント
スクリプトをテキストで送信する
実際に読み上げてほしいとおりに、間の句読点も含めて書いてください。最大 5,000 文字まで対応しています。
音声を選ぶ
voice_idのデフォルトは Kore です。30 種類の音声にはそれぞれ固定のキャラクターがあるため、一度選んだらシリーズ全体で同じ音声を使い続けてください。音は音として書く
ため息、笑い声、あえぎ声などは、角括弧タグ(このモデルではそのまま読み上げられることがあります)を使うのではなく、「Mmm…」「ha…」「ahh…」のように音として書き出してください。
返される内容
タスクごとに WAV ファイルが 1 つ返されます:24 kHz、16 ビット、モノラル PCM。ファイルは SpicyAPI のストレージにコピーされ、14 日間保存されます。結果には単語ごとのタイミング情報や字幕は含まれません。
音声を選ぶ
voice_id には 30 種類のプリセット音声のいずれかを指定でき、デフォルトは Kore です。各音声には固定のキャラクターがあります。たとえば Kore はしっかりした声、Charon は説明調、Puck は明るい声、Enceladus は吐息交じり、Achernar は柔らかい声、Algenib はしゃがれた声、Sulafat は温かい声、Gacrux は落ち着いた声です。音声はスクリプトの言語が変わっても変化しません。
読み上げ方を形作る
text と voice_id のほかに、次の設定で読み方を形作れます。
style、accent、paceで話し方、英語のアクセント、リズムを決めます。省略すると、声本来のものが使われます。instructionsには読み方を自由に書き、sceneにはどこで誰に向けて話すかを書きます。どちらも読み上げられません。temperature(0〜2) で、テイク間で読み方がどれだけ変わるかを決めます。
読み方の多くは引き続き句読点で決まります。読点や三点リーダーはテンポを落とし、短い文は会話らしくします。
[sighs] のような角括弧の指示は確実には演じられません。テストでは、モデルが角括弧内の単語をそのまま読み上げてしまうことがありました。代わりに音を書き出してください(「Mmm…」「ahh…」)。演じられる指示が重要な場合は、Gemini 3.8 Flash TTS をご利用ください。
このモデルでは、1 人の声に対して送った演出指示がクリップの冒頭で読み上げられることがあります。そのため、1 人の声のリクエストに style・accent・pace・instructions・scene が含まれる場合、SpicyAPI はモデルの 2 人用の形式に切り替え、何も話さない 2 人目を加えて送ります。これで指示は音声に入りません。課金は変わらず、返された秒数分だけです。
1 つのクリップに 2 人の声
会話にする場合は、text の代わりに dialogue を送り、配役を speakers に入れます。1 人か 2 人分を指定し、それぞれに name、voice_id、任意で accent、style、pace、profile (話し手の短い説明。読み上げられません) を設定します。dialogue の各行は {speaker, text} で、speaker にはこれらの名前のいずれかを書きます。行は順番どおりに演じられ、1 行 250 文字までで最大 20 行です。話し手が省いた設定には、最上位の accent、style、pace が使われます。会話全体は 1 つの WAV ファイルで返り、ほかのリクエストと同じく秒単位で課金されます。
長さとタイミング
text は最大 5,000 文字まで対応しています。テストでは、270 文字の段落が 22〜26 秒の音声になり、タスクの生成時間の中央値は約 7 秒でした。モデルは 1 クリップあたり 16,384 音声トークンで停止します。
課金
返された音声の秒数に応じて課金され、ファイルから測定されます。タスクの実行中は残高に 660 秒分の保留が設定され、タスクの精算時に未使用分が解放されます。失敗したリクエストには課金されません。
コンテンツ
SpicyAPI はコンテンツフィルターを追加しません。当社のテストでは、最も大胆なものを含むすべての台本が一語一句そのまま読まれ、飛ばされたものも、途中で終わったクリップもありませんでした。
SpicyAPI はコンテンツフィルターを一切追加していません。NSFW スクリプトも書かれたとおりに読み上げられます。送信するスクリプトの内容、および生成された音声の使い方(実在の人物の発言として偽って使用しないことを含む)については、お客様ご自身に責任があります。
API クイックスタート
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "google/gemini-3.8-flash-lite-tts/text-to-speech",
"input": {
"text": "Welcome back. Your files finished rendering a minute ago and are ready to download.",
"voice_id": "Kore"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
認証、完全なスキーマ、ポーリング、エラー処理は API リファレンスを参照してください。







