はじめに
読み上げる文章と、任意で声、アクセント、話し方、速度、場面、演技に関する短いメモを送ってください。会話の場合は、文章の代わりに台詞と話者を送ります。タスクは、その声で台本を読み上げた WAV ファイル 1 本(24 kHz、16 ビット・モノラル)を返します。対話の場合は最大 2 つの声を使います。モデルは平易な言葉の指示(もっとゆっくり、マイクに近く、楽しそうに、疲れた様子で など)に従い、[sighs] のような角括弧の指示は読み上げずに演じます。SpicyAPI はコンテンツフィルターをかけません。すべての台本は書かれたとおりに読み上げられます。課金は返された音声の秒数ごとです。
| 項目 | 値 |
|---|---|
| 入力 | テキスト |
| 出力 | 音声 |
| 必須フィールド | text (1〜5,000 文字) または dialogue (最大 20 行) |
| オプションフィールド |
|
| 結果 | WAV ファイル 1 つ(24 kHz・16 ビット・モノラル) |
| 最長の音声 | 約 655 秒(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 種類のプリセットボイスから 1 つを選びます。ボイスごとに声質が決まっています。 |
style | いいえ | 全体の話し方です。空欄にすると、そのボイス本来の話し方で読みます。 |
pace | いいえ | 読み上げのリズムです。natural、 |
accent | いいえ | 読み上げに使う英語のアクセントです。既定は neutral です。 |
instructions | いいえ | 読み方の自由記述の指示です。速さ、気分、マイクとの距離、聞き手などを書きます。 1000 文字以内 |
scene | いいえ | どこで誰に向けて話すかの説明です (例:「真夜中過ぎの静かなホテルの部屋」)。演じ方に反映され、読み上げられません。 500 文字以内 |
temperature | いいえ | テイク間のバリエーションを 0 から 2 の範囲で指定します。値を大きくするほど演じ方が予測しにくくなります。 |
料金
$0.00045 / 秒
返された音声の秒数で課金します。実行中は 660 秒分を一時的に確保し、音声を計測した時点で使わなかった分を解放します。
ユースケース
オーディオブックと長尺ナレーション
章立ての物語、寝る前のお話、連載小説を落ち着いた語り手で読み上げます。ボイスを一度決めたら固定してください。同じボイスと同じ演出メモなら、章をまたいでも声の印象がそろいます。
キャラクターやコンパニオンの声
チャットのキャラクターに専用の声を持たせられます。ささやく話し方と短い演出メモを添えると、平坦なテキストが、一人の相手に語りかけるようなセリフに変わります。
検閲なしのオーディオストーリー
台本は書かれたとおりに、コンテンツフィルターなしで読み上げられます。当社のテストでは、一人称の台詞も語りの場面も、どちらも全ての語を読み上げ、語を飛ばすことも、クリップを途中で終えることもありませんでした。
動画用のボイストラック
ここでセリフを生成し、その WAV をトーキングアバターやリップシンクのモデルに渡せば、顔の映像がそのセリフを演じます。後工程の動画の長さは音声の長さで決まります。
プロンプトガイドと実践のヒント
台本を text に入れる
話してほしいとおりに書き、間を取りたい箇所には句読点を入れてください。最大 5,000 文字です。
ボイスを選び、必要なら話し方とアクセントも指定する
voice_idの既定は Kore、accent の既定は neutral です。ささやき声など特定の話し方にしたいときだけ style を指定してください。instructions で読み方を演出する
形容詞を並べるより、速さ・気分・聞き手について 1~2 文で書くほうがうまく伝わります。このメモは読み上げられません。
返ってくるもの
1 タスクにつき WAV ファイルが 1 つ返ります。形式は 24 kHz・16 ビット・モノラルの PCM です。ファイルは SpicyAPI のストレージにコピーされ、14 日間保存されます。結果には単語ごとのタイミングや字幕は含まれません。
ボイスの選び方
voice_id には 30 種類のプリセットボイスのいずれかを指定し、既定は Kore です。ボイスごとに声質が決まっています。たとえば Kore は芯のある声、Charon は説明向きの声、Puck は弾んだ声、Enceladus は息の多い声、Achernar はやわらかい声、Algenib はざらついた声、Sulafat は温かい声、Gacrux は落ち着いた大人の声です。台本の言語が変わってもボイスは変わりません。
読み方の演出
styleは全体の話し方です。whisper、empathetic、vocal_smile、newscaster、promo_hype、deadpanから選びます。省略すると、そのボイス本来の話し方で読みます。accentは英語のアクセントで、既定はneutralです。paceはリズムで、natural、rapid_fire、the_drift、staccatoから選びます。instructionsには、ペース、気分、マイクとの距離、話しかける相手など、読み方を自由に書きます。sceneには、どこで誰に向けて話すかを書きます。どちらも読み上げられません。temperature(0〜2) で、テイク間で読み方がどれだけ変わるかを決めます。textの中の[sighs]や[whispering]のような角括弧の指示は、読み上げられずに演じられます。
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 文字の段落がボイスと話し方によって 23~29 秒の音声になりました。モデルは 16,384 音声トークン、およそ 655 秒で出力を止めます。ほとんどのタスクは 1 分以内に完了します。
課金
返された音声の秒数で課金し、秒数はファイルから計測します。タスクの実行中は、モデルが出力できる最長の音声である 660 秒分を残高から一時的に確保し、精算時に使わなかった分を解放します。失敗したリクエストには課金しません。
コンテンツ
SpicyAPI はコンテンツフィルターを加えません。当社のテストでは、他のサービスが拒否する台本も一語一句読み上げられ、飛ばされた語も途中で終わったクリップもありませんでした。
SpicyAPI はコンテンツフィルターを加えません。台本は、何が書かれていても書かれたとおりに読み上げられます。送信する台本と、生成された音声の利用方法(実在の人物の発言として偽らないことを含む)について、責任は利用者にあります。
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-2.5-pro-tts/text-to-speech",
"input": {
"text": "Welcome back. Your files finished rendering a minute ago and are ready to download.",
"accent": "neutral",
"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 リファレンスを参照してください。







