modelId: arcana, arcanav2, or arcanav3 needs to move to Coda before then.
Rime has not published the exact cutoff instant or its timezone, only the date. If you operate outside the Americas, or need to know what happens to a request already in flight at the boundary, contact support@rime.ai before scheduling a cutover on August 15 itself. Move earlier if you can.
The request does not change
Coda and Arcana share the same endpoints, parameters, and transports. Nothing about the shape of your request needs to change:speedAlpha also behaves the same on both: above 1.0 is faster. Only Mist v2 inverts it, so that caveat does not apply here. See Speed.
So the only edit to your request body is the value of modelId, and possibly speaker and lang. Three things change, and all three are about the voice.
What changes
Your speaker may not exist. Only 62 of Arcana’s 266 voice names are also served by Coda. The other 204 are not available under anymodelId, so keeping the name is not an option.
lang must match the voice you choose. Every Coda voice serves exactly one language, and none crosses between them. Coda covers eight languages, but a Coda voice does not, so picking a language narrows which voices you can use. See the language note on Voices.
Audio differs even where the name matches. Coda and Arcana are trained separately, so a shared name is a starting point rather than a guarantee. Compare before you switch.
Step 1: find everywhere you set a model
Three identifiers resolve to Arcana and all three are affected:arcana, arcanav2, and arcanav3. Search your code, configuration files, environment variables, and per-environment deploys for all three.
Requests that omit modelId resolve to Mist v3 and are unaffected. This is a common false alarm, so confirm which of your call sites actually set the parameter before treating them as work.
Step 2: check every voice you use
Search the Coda catalog for each Arcana speaker you use. Two outcomes: The name is there. Keep it and go to step 4. The name survives; the sound still changes. The name is not there. That applies to 204 of Arcana’s 266 voices, so expect it. Choose a replacement from the same language section, matching on the attributes the catalog publishes for every voice: gender, age, and country. Then compare candidates on your own text. The catalog’sdialect, demographic, genre, and styles fields are populated for roughly a third to a half of Coda voices, so they cannot be relied on to narrow a search. To hear candidates rather than read about them, use the Rime dashboard or ask an assistant connected to the hosted MCP server to synthesize a line with each.
Step 3: check your language has a destination
Every Arcana language except Hebrew is served by Coda. Voice counts change, so a language that survives may still offer you fewer options:
English and Hindi shrink, so plan for a narrower shortlist there. No Hindi voice name carries over: Arcana serves
anaya, anil, and arya, while Coda serves nadi and taru.
Step 4: hear the difference before you switch
Synthesize the same sentence with both voices and listen before you commit. SetRIME_API_KEY in your shell; your key stays on the machine running these commands and is never placed in a URL.
speaker, modelId, and lang. An unsupported combination does not reliably return an error, so a file that plays does not by itself prove the pairing was valid. Check the voice against the Coda catalog first.
Step 5: stage the cutover
Move a slice of traffic rather than all of it. Put themodelId value behind a flag or an environment variable so it can be changed and reverted without a deploy, then raise the share of Coda traffic while watching whatever quality signal you already collect: call completion, transfer or escalation rate, replay complaints, or your own evaluation set.
Do one environment at a time and keep the previous value revertible until the deadline. Because no response identifies the serving model, your flag state is the record of what is live.
Step 6: verify before the deadline
Confirm, per environment:- No call site sets
arcana,arcanav2, orarcanav3, including configuration and environment variables. - Every
speakeryou now send is listed on Coda for thelangyou send with it. - Each language you use was exercised at least once, since behavior and voice availability differ by language.
- Each transport you use was exercised, since HTTP and the two WebSocket endpoints are separate paths.
After August 15
An unrecognizedmodelId resolves to Mist v3 rather than returning an error, so a call site you missed may keep working while producing a different voice than you intended. Nothing will alert you, which is why step 6 checks configuration instead of waiting for failures.
If you are not finished, contact support@rime.ai before the date rather than after.
Related
- Coda voices: the full catalog to choose replacements from, grouped by language.
- Models: what Coda supports, and the retirement status of every model.
- Speed:
timeScaleFactoris the parameter Rime recommends going forward for Coda.

