Eleven v4 seed and voice settings: what each Sume router id accepts
Which of stability, similarity_boost, style, speed and seed work on eleven-v4, v4-turbo, v3, multilingual-v2 and turbo-v2.5 in the Sume TTS Router, with ranges.

On the Sume TTS Router, seed works only on eleven-v4 and eleven-v4-turbo, and the other voice settings depend on the model id: eleven-v3 takes stability only, while eleven-multilingual-v2 and eleven-turbo-v2.5 take stability, similarity_boost, style and speed. Sending a field a model does not accept is the first thing to rule out when a request fails.
The settings sit under voice_settings, next to apply_text_normalization. They are not the same object as the Sonic generation_config, which the Eleven rows refuse.
The field matrix
The matrix comes from the router's per-model specifications in the catalog code. apply_text_normalization accepts auto, on or off, and the defaults when you send nothing are stability 0.5, similarity 0.75 and style 0.
| Model id | stability | similarity_boost | style | speed | seed | text normalization |
|---|---|---|---|---|---|---|
| eleven-v4 | Yes | Yes | No | No | Yes | Yes |
| eleven-v4-turbo | Yes | Yes | No | No | Yes | Yes |
| eleven-v3 | Yes | No | No | No | No | Yes |
| eleven-multilingual-v2 | Yes | Yes | Yes | Yes | No | Yes |
| eleven-turbo-v2.5 | Yes | Yes | Yes | Yes | No | Yes |
Ranges and what they do
Do not rely on a seed alone to reproduce a take; for production lines save the audio you approved instead of regenerating it from a seed. Because billing is per request, rounded up to the cent, regenerating a short line to chase a seed is cheap but not free.
speed: 0.7 to 1.2, only on multilingual-v2 and turbo-v2.5.seed: an integer from 0 to 4294967295, only on v4 and v4-turbo. Reuse the same seed with the same text and settings when you want to compare a settings change against a stable baseline.stability,similarity_boostandstyleare fractions; keep them inside 0 to 1.apply_text_normalization:auto,onoroff, controls whether numbers and abbreviations are spoken out.
Controls that live elsewhere
The top-level speed field is a Sonic control and is refused on Eleven rows, so use voice_settings.speed only on the two models whose table row says Yes. Emotion presets such as neutral, content, excited, sad, angry and scared belong to Sonic 3.x through generation_config, with speed 0.6 to 1.5 and volume 0.5 to 2. They have no equivalent field on an Eleven row, so to change delivery there you change the text, the voice or the model.
If your pipeline needs pronunciation overrides, remember that pronunciation_dict_id is refused on Eleven rows too. Spell the word the way it should sound in the text itself.
A request skeleton
The skeleton below sets a seed on eleven-v4 and stops early if the key is missing. Fill voice.id from GET /v1/tts-router/voices?family=eleven. The API reference covers job states, and the models overview lists the audio endpoints.
import os, json, urllib.request
key = os.environ.get("SUME_API_KEY")
if not key:
raise SystemExit("SUME_API_KEY is not set")
body = {
"model": "eleven-v4",
"transcript": "Welcome back. Here is today's update.",
"voice": {"id": "YOUR_ELEVEN_VOICE_ID"},
"voice_settings": {"stability": 0.5, "similarity_boost": 0.75},
"seed": 1234,
"apply_text_normalization": "auto",
}
req = urllib.request.Request(
"https://api.sume.com/v1/tts-router/generate",
data=json.dumps(body).encode(),
headers={"Authorization": f"Bearer {key}", "Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(req) as resp:
print(json.dumps(json.load(resp), indent=2)[:1200])Sources
Related posts
More in Developers
- Grok Imagine Video 1.5 Lite batch API: what xAI documents
xAI's Lite page lists a $0.02 per second price, 10 requests per second, batch support and two regions. Sume jobs are async instead; here is how they differ.
- Image-to-video with sound by API: Sume ids that take a first frame
Kandinsky 6.0 has an image-to-audio-video mode. On Sume these ids take a first_frame image and return sound, and these do not. Request code included.
- Lambda Powertools idempotency and Sume's Idempotency-Key: use both
Powertools idempotency guards your Lambda handler; Sume's Idempotency-Key guards the paid submit. How they differ, and how to derive one key from an order id.
- LangGraph replay re-fires API calls: key Sume submits per fork
LangGraph time travel re-runs every node after the checkpoint, API calls too. Derive the Sume Idempotency-Key from the body so replays dedupe and forks run.
Written by Sume