Introduction
Send up to 1,000 characters of English text and, optionally, how expressive, how varied and how closely guided the reading should be. The task returns one WAV file (24 kHz, 16-bit mono) read in Chatterbox's built-in voice, or in the voice of a short clip you send in reference_audio_url. Tags such as are read aloud, so spell sounds out instead. SpicyAPI applies no content filter: unfiltered scripts are read as written. Each request costs the same flat price.
| Field | Value |
|---|---|
| Input | Text |
| Output | Audio |
| Required field | text — 1 to 1,000 characters of English |
| Optional fields | exaggeration (0–1), temperature (0.05–2), |
| Result | One WAV file, 24 kHz, 16-bit, mono |
| Voice | Built-in voice, or cloned from |
| Billed quantity | One flat price per request |
| Retention | Generated audio is kept for 14 days |
Request parameters
| Parameter | Required | Description |
|---|---|---|
text | Yes | Up to 1,000 characters of English, read exactly as written. Tags such as are read aloud; spell sounds out instead. at least 1 characters · at most 1000 characters |
reference_audio_url | No | Optional MP3 or WAV clip of the voice to imitate: upload one or give a public URL. The reading takes on that clip's timbre; the words in the clip are not repeated. at least 1 characters |
exaggeration | No | How emotional the reading is, from 0 (flat) to 1 (dramatic). Defaults to 0.5. |
temperature | No | Variation between takes, from 0.05 to 2. Defaults to 0.7. |
guidance_scale | No | How closely the reading follows the text's natural pacing, from 0.1 to 1. Defaults to 0.5; lower it to slow a rushed reading. |
Pricing
$0.036 / request
One flat price per request of up to 1,000 characters.
Use cases
Game and animation lines
Short, punchy character lines where energy matters more than a choice of timbre. Turn exaggeration up for shouted, laughing or breathless lines.
Prototype voices
Put a voice on a demo, storyboard or chat bot before choosing a final voice, at a flat price per line.
Uncensored audio stories
Unfiltered scripts are read as written. In our tests the model spoke every word of the monologues and narration we sent, and voiced spelled-out sounds too.
Voice tracks for video
Generate the line here, then hand the WAV to a talking-avatar or lip-sync model so a face performs it.
Prompt guide & pro tips
Send the script in text
Up to 1,000 characters of English, with punctuation for pauses. Spell out laughs and sighs — tags are read aloud.
Set the energy
exaggeration defaults to 0.5. Raise it for dramatic or breathless lines, lower it for calm narration.
Fine-tune if needed
Lower
guidance_scaleto slow a rushed reading; raise temperature for more variety between takes.
What it returns
One WAV file per task: 24 kHz, 16-bit, mono PCM. The file is copied to SpicyAPI storage and kept for 14 days. There are no word timings or subtitles in the result.
The voice
Chatterbox is Resemble AI's open-source English model (MIT licence). Without a reference it reads in its built-in voice; there is no voice list. Send a short MP3 or WAV clip in reference_audio_url to clone a voice: the reading takes on that clip's timbre, not its words. A few seconds of one clean voice without music works best, and you must have the right to use the voice.
Controls
exaggeration(0–1, default 0.5): how emotional the reading is.temperature(0.05–2, default 0.7): variation between takes.guidance_scale(0.1–1, default 0.5): how closely the reading follows the text's pacing; around 0.3 slows a fast, dramatic delivery.
Tags such as <laugh>, <sigh> or [gasp] are read aloud as words in our tests. Spell sounds out instead: "ha…", "mmm…", "ahh…".
Length
text accepts up to 1,000 characters. A 270-character paragraph came back as about 15 seconds of audio in our tests; most tasks finished in 10 to 30 seconds.
Billing
One flat price per request. Failed requests are not charged.
Content
SpicyAPI adds no content filter. In our tests unfiltered scripts were read word for word, with nothing skipped and no clip ended early.
SpicyAPI adds no content filter: scripts are read as written, with nothing softened. You are responsible for the scripts you send and for how you use the resulting audio, including not passing it off as a real person's words.
API quick start
# 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": "resemble-ai/chatterbox-v1/text-to-speech",
"input": {
"text": "Welcome back. Your files finished rendering a minute ago and are ready to download."
}
}'
# 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"
See the API reference for authentication, the complete schema, polling, and error handling.
