Built for voice agents that can't wait 600ms

Published by AllModels

How to Switch from ElevenLabs to Cartesia

Keep the ElevenLabs SDK. Point it at AllModels, then replace the model and voice. Your speech-generation call stays the same.

Switch in two small edits
  1. 1
    Use your AllModels key and set the SDK base URL to https://api.allmodels.io/el.
  2. 2
    Set cartesia/sonic-3.5 and choose a Cartesia voice ID.

AllModels is an independent service and is not affiliated with, endorsed by, or sponsored by OpenAI, ElevenLabs, Fish Audio, or Cartesia.

Change the base URL, model, and voice

These examples generate a normal MP3 response. Highlighted lines are the only provider-migration changes.

JavaScript

Before — ElevenLabs
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
 
const client = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY
});
 
const audio = await client.textToSpeech.convert("ELEVENLABS_VOICE_ID", {
  text: "Hello from my application",
  modelId: "eleven_flash_v2_5",
  outputFormat: "mp3_44100_128"
});
After — Cartesia through AllModelsChanged lines highlighted
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
 
const client = new ElevenLabsClient({
  apiKey: process.env.ALLMODELS_API_KEY,
  baseUrl: "https://api.allmodels.io/el"
});
 
const audio = await client.textToSpeech.convert("CARTESIA_VOICE_ID", {
  text: "Hello from my application",
  modelId: "cartesia/sonic-3.5",
  outputFormat: "mp3_44100_128"
});

Python

Before — ElevenLabs
import os
from elevenlabs.client import ElevenLabs
 
client = ElevenLabs(
    api_key=os.environ["ELEVENLABS_API_KEY"],
)
 
audio = client.text_to_speech.convert(
    "ELEVENLABS_VOICE_ID",
    text="Hello from my application",
    model_id="eleven_flash_v2_5",
    output_format="mp3_44100_128",
)
After — Cartesia through AllModelsChanged lines highlighted
import os
from elevenlabs.client import ElevenLabs
 
client = ElevenLabs(
    api_key=os.environ["ALLMODELS_API_KEY"],
    base_url="https://api.allmodels.io/el",
)
 
audio = client.text_to_speech.convert(
    "CARTESIA_VOICE_ID",
    text="Hello from my application",
    model_id="cartesia/sonic-3.5",
    output_format="mp3_44100_128",
)

Keep using the ElevenLabs SDK

Switching providers through AllModels is intentionally simple: keep the SDK and request flow you already use, point the client at AllModels, then choose a different model and voice.

The AllModels-compatible ElevenLabs SDK surface supports text-to-speech and streaming TTS, file transcription, realtime transcription, Speech Engine conversations, and voice discovery. Read the complete ElevenLabs SDK compatibility guide for setup details, supported methods, and current limitations.

About Cartesia Sonic 3.5

This guide switches speech generation to Sonic 3.5, Cartesia’s streaming text-to-speech model. Cartesia highlights natural pacing and emotional expression, accurate transcript following, clean multilingual audio, natural handling of alphanumeric text, and support for 42 languages.

Cartesia’s Ink-2 announcement covers the complementary speech-to-text side of its voice stack, not the TTS model used in the code above. Cartesia describes Ink-2 as a realtime voice-agent transcription model focused on accuracy, semantic turn detection, and low time-to-final-transcript.

Quick answers

Common migration questions

Do I need to replace the ElevenLabs SDK?

No. Keep the installed SDK and its speech method. AllModels exposes a compatible base URL for it.

Can I switch providers again later?

Yes. Keep the AllModels base URL and API key, then change the model and voice to another supported provider.

Ready to switch?

Try Cartesia through one API.

Browse available Cartesia models or continue with the complete AllModels documentation.