Skip to main content
Connect to wss://mist.api.rime.ai/ws to send text and receive Mist v3 audio on one persistent connection. Mist uses the same WebSocket v1 protocol as Coda: the same authentication, messages, events, audio formats, errors, and limits. The Coda WebSocket reference documents them. The JSON and Protobuf quickstarts also work on Mist when you change the URL and the voice.

Differences from Coda

To stream LLM tokens, set splitStrategy to SPLIT_STRATEGY_ACCUMULATE_SENTENCE, as on Coda. The server then joins the tokens into sentences before Mist speaks them. See stream text as it becomes available.

Mist parameters

Put Mist’s options in start.mistParameters, or in config.defaults.mistParameters to apply them to every context. As with codaParameters, a mistParameters object in start replaces the whole default object. Mist ignores the HTTP API’s top-level names, such as pauseBetweenBrackets and inlineSpeedAlpha, on this protocol, so a misplaced option has no effect and causes no error. This start message uses all three. Mist pauses for 500 ms after “order”, says “Tuesday” at half speed, and pronounces “Friday” from its phonemes:
The HTTP API takes the same speed factors as a comma-separated string named inlineSpeedAlpha.

Word timestamps

Set timestamps.enable to true in start to get the time of each spoken word. The times arrive in the done event, after the last audio. Mist returns them for English.
Each span is one word as Mist spoke it, after text normalization, so numbers appear spelled out. start and end are offsets from the start of the audio, in seconds. An empty status means that every word was aligned. Otherwise, status has a code and a message, and spans is empty. The audio is unaffected either way.

Use Mist with LiveKit

Set model="mistv3" in rime.TTS, as in the Coda LiveKit integration. The other plugin settings work the same way:
The plugin sends pauseBetweenBrackets and phonemizeBetweenBrackets when you set pause_between_brackets and phonemize_between_brackets. To use inlineTimeScaleFactors or splitStrategy, use a direct client.