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.

4 min readSume
All posts

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.

Eleven voice controls per TTS Router id, from the Sume catalog code, read 2026-10-11
Model idstabilitysimilarity_booststylespeedseedtext normalization
eleven-v4YesYesNoNoYesYes
eleven-v4-turboYesYesNoNoYesYes
eleven-v3YesNoNoNoNoYes
eleven-multilingual-v2YesYesYesYesNoYes
eleven-turbo-v2.5YesYesYesYesNoYes

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_boost and style are fractions; keep them inside 0 to 1.
  • apply_text_normalization: auto, on or off, 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

All Developers posts

Written by Sume