Skip to main content
Arcana retires August 15, 2026. Traffic sent with modelId: arcana, arcanav2, or arcanav3 needs to move to Coda before then.
204 of Arcana’s 266 voices have no Coda counterpart. For most Arcana users this is a voice change, not a parameter change, so it needs listening and sign-off rather than a config edit. Start with step 2 and budget time for choosing replacements.
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 any modelId, 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.
No response header names the model that served a request, and the API returns no request or correlation ID. You cannot confirm from a response that a call stopped using Arcana. Coverage is established by inventory and configuration review across every environment, language, and transport you use, not by inspecting a reply. Record which environments you checked, because that record is the only evidence you will have.

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’s dialect, 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.
Hebrew has no Coda destination. Coda serves no Hebrew voices, so aviva and ori have nowhere to move under the current catalog. If you synthesize Hebrew, contact support@rime.ai now rather than at the deadline. Rime’s documentation states that Hebrew and Sinhala remain on Arcana after the sunset while also stating that all cloud Arcana traffic routes to Coda. Those cannot both hold, and the mechanism has not been published, so do not plan a Hebrew or Sinhala cutover on the basis of either statement.

Step 4: hear the difference before you switch

Synthesize the same sentence with both voices and listen before you commit. Set RIME_API_KEY in your shell; your key stays on the machine running these commands and is never placed in a URL.
Play both and compare. Use text from your own product rather than a generic sentence: the differences that matter usually show up on your domain vocabulary, your numbers, and your longest utterances, not on a greeting. Both requests must name a supported combination of 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 the modelId 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:
  1. No call site sets arcana, arcanav2, or arcanav3, including configuration and environment variables.
  2. Every speaker you now send is listed on Coda for the lang you send with it.
  3. Each language you use was exercised at least once, since behavior and voice availability differ by language.
  4. Each transport you use was exercised, since HTTP and the two WebSocket endpoints are separate paths.
One request does not establish coverage across languages and transports. Treat the matrix of language times transport as the unit of verification.

After August 15

An unrecognized modelId 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.
  • Coda voices: the full catalog to choose replacements from, grouped by language.
  • Models: what Coda supports, and the retirement status of every model.
  • Speed: timeScaleFactor is the parameter Rime recommends going forward for Coda.