> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rime.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Move from Mist v1 or Mist v2 to Mist v3

> Mist v1 and Mist v2 are legacy models. Change modelId to mistv3, check your voice, and replace the features only the legacy models served.

Mist v1 (`mist`) and Mist v2 (`mistv2`) are legacy models, and the Rime docs no longer cover them. The cloud API still serves requests that name them. Move to Mist v3 for the closest match, or to [Coda](/docs/models#coda) for Rime's highest voice quality.

Mist v3 serves the same four languages as Mist v2: English, French, German, and Spanish. Most requests need only a new `modelId` and a check of the voice. The sections below cover the features that work differently.

## Change the model ID

Search your code, configuration files, and environment variables for both legacy identifiers:

```text theme={null}
mist
mistv2
```

Replace them with `mistv3`. Requests that omit `modelId` are already served by Mist v3.

## Check your voice

About half of the Mist v2 voices are also on Mist v3. Look up each `speaker` you use in the [Mist v3 catalog](/docs/voices-mist-v3).

* If the voice is listed, keep the name and listen to your production text. The two models were trained separately. Expect the audio to differ.
* If it isn't listed, choose a replacement in the same language from the catalog, or ask [support@rime.ai](mailto:support@rime.ai) for a close match.

A successful response doesn't prove the voice is supported: a request can return audio for a pairing the catalog doesn't list.

## Ask for audio, not JSON

Mist v1 and Mist v2 can return a JSON envelope with base64 audio in `audioContent`. Mist v3 always streams audio bytes in the format you name in the `Accept` header. Set `Accept` to a type such as `audio/wav` or `audio/mpeg`, and write the response body to a file or a player. If `Accept` is missing, Mist v3 streams headerless 16-bit PCM, which most players won't open. See the [Mist v3 HTTP reference](/api-reference/mistv3/http) for every format.

Server-sent events (`Accept: text/event-stream`) are Mist v2 only. Use [HTTP streaming](/api-reference/mistv3/http) or the [`/ws3` WebSocket](/api-reference/mistv3/websockets-json) instead.

## Move WebSocket clients from /ws2 to /ws3

`/ws2` serves only the legacy models. Connect to `wss://users-ws.rime.ai/ws3` with `modelId=mistv3`. It uses the same JSON messages. The one difference is the `done` event. `/ws2` adds a `done: true` field and `/ws3` doesn't. Match on `type === "done"`, which works on both. See the [Mist v3 WebSocket reference](/api-reference/mistv3/websockets-json).

## Update speed settings

On Mist v2, `speedAlpha` below 1.0 is faster. On Mist v3, `speedAlpha` runs the other way. Use `timeScaleFactor` instead. Like Mist v2's `speedAlpha`, it's faster below 1.0. Move your value to `timeScaleFactor`, then listen to the result and adjust it.

`inlineSpeedAlpha` keeps the Mist v2 direction on Mist v3. It works over HTTP only. See [Speed](/docs/speed).

## Check pronunciation and normalization settings

* `phonemizeBetweenBrackets` works on English Mist v3 only. French, German, and Spanish requests ignore it. See [Custom pronunciation](/docs/custom-pronunciation).
* `noTextNormalization` has no effect on Mist v3, which always normalizes text. Remove it, and see [Text normalization](/docs/text-normalization) if you relied on it.

## Related

* [Mist v3 voices](/docs/voices-mist-v3): find a supported speaker and language.
* [Models](/docs/models): compare Mist v3 and Coda.
* [Mist v3 HTTP reference](/api-reference/mistv3/http): request fields and audio formats.
* [Remove Arcana model IDs](/docs/migrate-arcana-to-coda): the same steps for Arcana.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.