はじめに
読み上げるテキスト、システム音声、感情を送り、任意で言語のヒントを添えます。タスクは、その声と感情で台本を読み上げた音声ファイル 1 本を返します。output_format、sample_rate、bitrate、audio_channels を指定しない場合は 32 kHz モノラルの MP3 になります。speed、pitch、volume で話し方を調整でき、pronunciation_dict で特定の語の読み方を固定できます。テキスト中の(sighs)や(laughs)などの括弧付きのサウンドタグは、読み上げられずに音として演じられます。SpicyAPI はコンテンツフィルターをかけません。すべての台本は書かれたとおりに読み上げられます。課金は送信したテキストの 1,000 文字単位です。
| 項目 | 値 |
|---|---|
| 入力 | テキスト |
| 出力 | 音声 |
| 必須フィールド | text — 1〜5,000 文字 |
| 任意フィールド |
|
| 結果 | 音声ファイル 1 つ (既定は MP3・32 kHz・モノラル、WAV・FLAC・PCM も可) |
| 課金対象の数量 | 送信した text の文字数 (1,000 文字ごと) |
| 標準的な時間 | 300 文字で約 8 秒 |
| 保存期間 | 生成された音声は 14 日間保存されます |
リクエストパラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
text | はい | 実際に話す言葉を、書いたとおりに指定します。(sighs) や (laughs) のようなかっこ付きのサウンドタグは、音として演じられ、読み上げられることはありません。 1 文字以上 · 5000 文字以内 |
voice_id | いいえ | 472 種類のシステムボイスのいずれかを指定します。既定値は Calm_Woman です。 |
emotion | いいえ | 7 種類の固定された感情 (neutral、happy、sad、angry、fearful、disgusted、surprised) のいずれかを、読み上げ全体に適用します。既定値は neutral です。 |
speed | いいえ | 話す速さを 0.5 (遅い) から 2 (速い) の範囲で指定します。1 が声の標準の速さです。 |
pitch | いいえ | 音の高さを半音単位で -12 から 12 の範囲でずらします。0 で声本来の高さのままです。 |
volume | いいえ | 音量の倍率を 0.1 から 10 の範囲で指定します。1 が標準の音量です。 |
language | いいえ | 40 言語のいずれかについて発音を改善するヒントです。既定値は auto で、台本から言語を自動検出します。 |
output_format | いいえ | ファイル形式です。mp3 (既定)、wav、flac、pcm から選べます。 |
sample_rate | いいえ | 音声のサンプリングレート (Hz) です。8000、16000、22050、24000、32000、44100 から選べます。 |
bitrate | いいえ | MP3 のビットレート (ビット/秒) です。32000、64000、128000、256000 から選べます。 |
audio_channels | いいえ | 出力のチャンネルです。mono (既定) か stereo を選びます。 |
english_normalization | いいえ | オンにすると、英語テキスト中の数字・日付・略語を人が読むとおりに読み上げます (1990 を「nineteen ninety」と読むなど)。既定はオフです。 デフォルト値: |
pronunciation_dict | いいえ | {alias, pronunciation} の組を最大 100 個まで指定します。text 中の alias はすべて pronunciation として読まれます。 100 件以内 |
料金
$0.12 / 1,000 文字
送信したテキストの 1,000 文字ごとに課金され、スペースや句読点も文字数に含まれます。実行前に表示される見積もりが最終価格です。
ユースケース
短編動画のナレーション
解説動画、商品クリップ、SNS 投稿向けのナレーションです。価格は台本の長さで決まるため、開始前にまとめての費用がわかります。
多言語コンテンツ
対応する 40 言語のいずれかを language で指定して同じ台本を読み上げるか、auto のままにして台本に判断を任せます。
無検閲のオーディオストーリー
台本は書かれたとおりに、コンテンツフィルターなしで読み上げられます。当社のテストでは、他のサービスが拒否する独白や語りの場面も、モデルは一語も欠かさず話し、息づかいや効果音のキューは読み上げずに演じました。
感情表現つきキャラクターボイス
リクエストごとに 7 種類の感情 (happy、sad、angry、fearful、disgusted、surprised) から 1 つを選び、台本中の (sighs)、(laughs)、(breath) といったタグに演技を委ねます。
プロンプトガイドと実践のヒント
台本を text で送信する
ポーズ用の句読点や、演じてほしい箇所に (sighs) のようなかっこ付きのサウンドタグを含め、実際に話してほしいとおりに書きます。最大 5,000 文字まで対応します。
ボイスと感情を選ぶ
voice_idの既定値は Calm_Woman、emotion の既定値は neutral で、7 種類の固定値から選べます。必要に応じて言語のヒントを追加する
language を auto のままにすると台本から自動検出されます。短い台本や複数言語が混在する台本の発音を補いたい場合は、40 言語のいずれかを指定してください。
返される内容
タスクごとに音声ファイルを 1 つ返します。output_format、sample_rate、bitrate、audio_channels を変えなければ 32 kHz モノラルの MP3 です。ファイルは SpicyAPI のストレージにコピーされ、14 日間保存されます。
ボイスを選ぶ
voice_id には Calm_Woman、Deep_Voice_Man、Lively_Girl、Elegant_Man など 472 種類のシステムボイスのいずれかを指定でき、既定値は Calm_Woman です。クローンや参照音声のアップロードは提供していません。
感情を設定する
emotion には 7 種類の固定値 neutral、happy、sad、angry、fearful、disgusted、surprised のいずれかを指定でき、読み上げ全体に適用されます。既定値は neutral です。
サウンドタグ
text の中に括弧で入れたタグ((sighs)、(laughs)、(breath)、(gasps) など)は、読み上げられずに音として演じられます。当社のテストでは、他のサービスが拒否する台本でも、普通の台本でも同じでした。
言語
言語は台本から自動検出されます。language を使うと、中国語、広東語、英語、アラビア語、ロシア語、スペイン語、フランス語、ポルトガル語、ドイツ語、日本語、イタリア語、韓国語、ポーランド語など 40 言語のいずれかをヒントとして指定でき、短い台本や複数言語が混在する台本の発音を改善できます。
読み方の調整
speed (0.5〜2)、pitch (-12〜12 半音)、volume (0.1〜10) で読み方を調整できます。料金は変わりません。pronunciation_dict には {alias, pronunciation} の組を最大 100 個まで指定でき、名前・略語・外来語を常に思いどおりの読み方にできます (普通の単語でも、括弧で囲んだ IPA でも指定できます)。english_normalization をオンにすると、英語テキスト中の数字・日付・略語を人が読むとおりに読み上げます。
出力形式
output_format で mp3 (既定)、wav、flac、pcm を選べます。sample_rate は 8000〜44100 Hz、bitrate は MP3 のビットレート、audio_channels はステレオへの切り替えです。pcm はヘッダーのない 16 ビット・リトルエンディアンの生サンプルなので、ブラウザーでは再生できません。同じサンプルを再生できるファイルで受け取るなら wav を選んでください。
課金
text のスペース、句読点、改行を含む 1,000 文字ごとに課金されます。文字数はタスクの開始前にわかっているため、見積もりがそのまま最終的な請求額になります。失敗したリクエストには課金されません。
コンテンツ
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": "minimax/speech-2.8-hd/text-to-speech",
"input": {
"text": "Welcome back. Your files finished rendering a minute ago and are ready to download.",
"emotion": "neutral",
"language": "auto",
"voice_id": "Calm_Woman",
"output_format": "mp3"
}
}'
# 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 リファレンスを参照してください。










