Cartesia sonic-3-latest and sonic-3-preview aliases: fix model strings

Cartesia lists sonic-3-latest and sonic-3-preview as deprecated aliases. What each maps to, which ids Sume's TTS Router accepts, and a safe migration.

4 min readSume
All posts

Cartesia's older-models page lists sonic-latest and sonic-3-latest as deprecated, pointing you to sonic-preview, and sonic-3-preview as deprecated, pointing you to sonic-3. On Sume's TTS Router the accepted ids are sonic-3.6, sonic-3.5, sonic-3, sonic-latest and sonic-preview. So sonic-3-latest and sonic-3-preview are not Sume ids and return a 400 model_not_found with a pointer to the catalog.

One more catch: on Sume, sonic-latest is an alias that resolves to sonic-3.6, while Cartesia's page says to move sonic-latest users to sonic-preview. The two meanings differ, so do not copy an id from one system to the other without checking.

Alias map, as of today

The Cartesia column comes from Cartesia's older-models page. The Sume column comes from the TTS Router docs.

  • Cartesia's changelog also says sonic-2, sonic-turbo and sonic-3-2025-10-27 stop working on October 20, 2026, with sonic-3.6 as the replacement.
Model string meaning by system (read 2026-10-08)
StringCartesia docs saySume TTS Router
sonic-latestDeprecated; use sonic-previewAccepted; alias for sonic-3.6
sonic-3-latestDeprecated; use sonic-previewNot a catalog id (400 model_not_found)
sonic-3-previewDeprecated; use sonic-3Not a catalog id (400 model_not_found)
sonic-previewBeta channelAccepted; beta; rejects pro voice clones with voice_model_mismatch
sonic-3.6GA since Aug 27Accepted; what TTS 1.0 always uses

Fix your model strings in four steps

  • Search your code and config for sonic-latest, sonic-3-latest and sonic-3-preview.
  • Call GET /v1/tts-router/models and keep only ids that appear in the catalog.
  • Replace aliases with a dated or numbered id such as sonic-3.6.
  • Re-render one approved script and compare it with the old take before you roll out.
import os, requests

r = requests.post(
    "https://api.sume.com/v1/tts-router/generate",
    headers={
        "Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
        "Idempotency-Key": "tts-demo-001",
    },
    json={
        "model": "sonic-3.6",
        "transcript": "Welcome back. Today we compare three prices.",
        "voice": {"id": os.environ["SUME_VOICE_ID"]},
        "timestamps": {"words": True},
    },
    timeout=30,
)
r.raise_for_status()
print(r.json())

Why avoid the floating alias

An alias moves when the vendor moves it. That is its purpose, and it is the problem for finished work. Sonic-preview is the extreme case: the Sume docs say its output and availability can change without notice. Use it for experiments, and never for a file that a customer has already approved.

A safe migration order

Change one thing at a time. First, replace the aliases with pinned ids in a staging copy of your config, so nothing in production moves. Second, render the same short script with the old and the new id and listen to both; differences in pace and pronunciation are the usual surprise. Third, ship the change behind a flag and watch for rejected requests, which show up as 400 responses with a catalog_url that points you to the list of valid ids.

Keep the old take for a week. If a customer reports that a voice sounds different, you can answer with evidence rather than a guess. Add the model id and the date of the render to the file name so the record travels with the audio.

What Sume does not do

Sume does not translate sonic-3-latest or sonic-3-preview into current ids for you. Sume TTS covers Cartesia Sonic only. The router has no Eleven, OpenAI, Gemini, MAI or Inworld engines, no streaming TTS, and no routing presets. Jobs are asynchronous, and any audio over 1,200 seconds fails with tts_duration_exceeded. I could not verify how Cartesia treats the old strings after a given date beyond what its older-models page states.

Read next

See pin the TTS model id for the pinning argument and the October 20 sunset for the dates.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume