Skip to content

Models

Change the model. Keep the call.

Four open-source speech models are connected behind one request. Switching is a field change, plus a preset that model accepts. It is not a new integration.

Self-hosted model catalog

IndexTTS-2.5

A different character for narration and spoken text.

Sample rate
22.05 kHz
Response
Complete WAV
Request field
indextts-2.5
Try IndexTTS-2.5

The only moving part

Watch the model field. The rest of the request stays.

curl --fail --silent --show-error https://api.timbrelay.com/v1/audio/speech \
  -H "Authorization: Bearer $TIMBRELAY_PROJECT_KEY" \
  -H "Idempotency-Key: ${TIMBRELAY_REQUEST_ID:?Set a stable ID for this action}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "cosyvoice3",
    "voice": "voice_preset_en_5639",
    "input": "Welcome. It is good to have you here.",
    "response_format": "wav"
  }' --dump-header speech.headers --output speech.response

# Before using speech.response as WAV, verify HTTP 200, audio/wav,
# and X-Timbrelay-Watermark: applied in speech.headers.

Preview of the program request. The host comes from this environment’s API origin. Set TIMBRELAY_REQUEST_ID to a new stable ID for each action; keep it and the exact input for retries. Changing model or text starts a new action. It uses a project key, never a console session. Voice presets are shared IDs; send one the selected model accepts. Open API test