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 instart.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:
inlineSpeedAlpha.
Word timestamps
Settimestamps.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.
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
Setmodel="mistv3" in rime.TTS, as in the Coda LiveKit integration. The other plugin settings work the same way:
pauseBetweenBrackets and phonemizeBetweenBrackets when you set pause_between_brackets and phonemize_between_brackets. To use inlineTimeScaleFactors or splitStrategy, use a direct client.
