Docs /Getting Started/Chatterbox Turbo

Chatterbox Turbo

Low-latency-oriented English speech, preset or cloned voices, and native square-bracket vocal events.

Identity

Featherless model ID: ResembleAI/chatterbox-turbo.

Use Turbo when

Choose Turbo for English voice-agent or narration work where native vocal-event tags and a smaller, lower-compute model matter. Choose base Chatterbox when the original project’s exaggeration and CFG behavior matters more than Turbo’s tag vocabulary. Chatterbox Multilingual is a different model and is not available under this model ID.

Preset request

Generate speech
curl --fail-with-body https://api.featherless.ai/v1/audio/speech \
  --header "Authorization: Bearer $FEATHERLESS_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "ResembleAI/chatterbox-turbo",
    "input": "Thanks for waiting. [chuckle] I found the account.",
    "voice": "Andy",
    "response_format": "wav"
  }' \
  --output chatterbox-turbo.audio \
  --write-out "Content-Type: %{content_type}\n"

The Python examples need pip install requests. The TypeScript examples use top-level await, so save one with a .mjs extension, or set "type": "module" in package.json, and run it on Node 18 or newer.

Load /v1/audio/voices rather than freezing the preset list in an application. The current inventory lists 20 presets and defaults to Andy: Aaron, Abigail, Anaya, Andy, Archer, Brian, Chloe, Dylan, Emmanuel, Ethan, Evelyn, Gavin, Gordon, Ivan, Laura, Lucy, Madison, Marisol, Meera, and Walter.

Voice cloning request

Each snippet below reads a local reference.wav, sends it as bare base64, and writes the result to chatterbox-turbo-clone.audio.

Generate with reference audio
reference_audio=$(base64 < reference.wav | tr -d '\n')

curl --fail-with-body https://api.featherless.ai/v1/audio/speech \
  --header "Authorization: Bearer $FEATHERLESS_API_KEY" \
  --header "Content-Type: application/json" \
  --data-binary @- \
  --output chatterbox-turbo-clone.audio \
  --write-out "Content-Type: %{content_type}\n" <<JSON
{
  "model": "ResembleAI/chatterbox-turbo",
  "input": "This line uses the supplied reference voice. [sigh]",
  "voice": {
    "clone": {
      "audio": {
        "data": "$reference_audio",
        "format": "wav"
      }
    }
  },
  "response_format": "wav"
}
JSON

Featherless accepts WAV and MP3 reference clips for this model. That set is enforced before any audio is produced: a clip in any other container is rejected with a 400 and never reaches synthesis. The five-second minimum reference length the model authors document is not checked by Featherless, so a shorter clip is accepted and fails, if it fails, during synthesis. A reference_text value is accepted and carried but is not guaranteed to be used; see Parameter support.

Safest vocal-event tags

The official Turbo demo exposes nine event markers: [clear throat], [sigh], [shush], [cough], [groan], [sniff], [gasp], [chuckle], and [laugh]. Preserve the exact lowercase spelling. The published schema for this model currently says [sush], but the official tokenizer and demo use [shush]; the UI should insert [shush]. Tags may appear wherever the event belongs in the sentence and count toward the model’s text limit.

Extended tokenizer vocabulary

The official tokenizer also contains [angry], [fear], [surprised], [whispering], [advertisement], [dramatic], [narration], [crying], [happy], and [sarcastic]. These exact tokens can pass through tokenization, but they are not all exposed by the official demo or guaranteed by the published schema for this model. Treat them as experimental until each behavior is runtime-verified; unknown bracket text may be spoken aloud.

Limits and controls

Turbo documents a 500-character text maximum. Featherless does not prevalidate that model-specific limit, so longer input is forwarded unchanged and can fail during synthesis. The controls base Chatterbox exposes, such as exaggeration and CFG weight, are not part of this request contract, and neither are seed or sampling knobs. See Parameter support below for exactly how each field is treated.

Parameter support

Unrecognized request fields are accepted, not rejected. A body carrying a field this endpoint does not read still comes back as a normal 200 with audio, and the field is discarded before the request reaches the model. A successful response is therefore never evidence that a field was honored, so confirm behavior with a listening probe rather than with the status code.

Supported

Parameter

Required

Behavior

model

yes

Must be ResembleAI/chatterbox-turbo

input

yes

Target text, forwarded verbatim

voice as a preset name

no

Checked against the preset inventory

voice.clone.audio.data

no

Bare base64 reference clip

voice.clone.audio.format

no

Clone container, wav or mp3

delivery

no

Delivery control, stream, json, or bulk

stream_format

no

Delivery control, sse or audio

stream

no

Delivery control, boolean

encoding

no

Delivery control, binary or base64

input is forwarded verbatim: Featherless applies no length cap, no trimming, and no rewriting of square-bracket tags. A preset voice name is checked against the preset inventory for this model before any audio is produced, so load /v1/audio/voices rather than hard-coding the list. voice.clone.audio.data takes a bare base64 reference clip, and wav and mp3 are the accepted clone containers for this model.

delivery, stream_format, stream, and encoding are delivery controls only; they do not change generation. When more than one is present, delivery wins, then stream_format, then stream.

Best-effort

A few fields are read and carried with the request, but they are not guaranteed to affect the output for this model. Treat them as best-effort: send them if you want them, and verify by listening. speed is a real parameter constrained to the 0.25 to 4.0 range — a value outside it fails with 422 before any audio is produced, and omitting it substitutes 1.0 — but it is not guaranteed to change the delivered audio for this model. instructions is accepted and carried, and is likewise not guaranteed to affect the output. A voice.clone.reference_text value is accepted and carried, but it travels only alongside a reference clip and is not guaranteed to be used.

response_format is a request, not a guarantee. mp3 and wav are always accepted, but the only conversion Featherless performs is PCM-to-WAV rewrapping and there is no codec transcoding, so an accepted request can come back in a different container than the one asked for. The response is labeled with what the bytes actually are, so read Content-Type, or the format field of the JSON delivery envelope, to learn which container arrived.

Unsupported

Rejected with an error

These fail before any audio is produced, so the client sees the failure directly.

Parameter

Result

Error code

speed outside 0.25 to 4.0

422

None named

response_format outside the allowed values

422

None named

voice.clone.audio.format outside the allowed values

422

None named

Empty input

422

None named

response_format set to opus, aac, or flac

400

unsupported_format

voice preset name not in the inventory for this model

400

invalid_voice

voice.clone.audio.format set to opus, aac, flac, or pcm

400

unsupported_clone_format

Any body that fails schema validation returns 422, not 400. That covers a speed outside the 0.25 to 4.0 range, a response_format or clone clip format outside the allowed enum, and an empty input. The accepted clone containers are wav and mp3.

Accepted and ignored

These return 200 with audio and no error, and have no effect on the result. Nothing in the response signals that they were dropped.

Parameter

What happens

exaggeration

Returns 200, no effect on output

cfg_weight

Returns 200, no effect on output

seed

Returns 200, no effect on output

temperature and any other sampling field

Returns 200, no effect on output

language

Returns 200, no effect on output

Any other field not listed under Supported or Best-effort

Returns 200, no effect on output

exaggeration and cfg_weight are the base Chatterbox controls and are not part of this request contract. seed is discarded, so output is not reproducible. language is discarded because this model ID is English-only.

Formats and streaming

This model is WAV-native. A requested MP3 can still be delivered as honest WAV, because Featherless does not transcode between codecs, so inspect Content-Type or JSON delivery’s format field. Resemble positions Turbo as a low-latency model, but on Featherless generation completes before any audio is delivered. SSE is therefore deferred delivery, not proof of native streaming inference.

Output watermark

Resemble states that Chatterbox-generated audio includes its imperceptible PerTh watermark, designed to remain detectable after common editing and MP3 compression. Treat watermarking as model-family output behavior, not a request option.

Preview UI contract

Show preset and reference-audio voice modes, an English-only label, a 500-character counter, and a nine-item Vocal events picker that inserts exact tags at the caret. Keep the ten additional tokenizer tokens behind an Experimental label. Do not show exaggeration, CFG, or language selection. A speed control and a reference-transcript input are best-effort for this model, so expose them only if a probe confirms they change the audio.

Sources

Official Chatterbox repository, official Turbo model card, official tokenizer vocabulary.

Last edited: Aug 27, 2026