Create a new agent in your browser using this model
Overview
Rime text-to-speech is available in LiveKit Agents through LiveKit Inference and the Rime plugin. With LiveKit Inference, your agent runs on LiveKit's infrastructure to minimize latency. No separate provider API key is required, and usage and rate limits are managed through LiveKit Cloud. Use the plugin instead if you want to manage your own billing and rate limits. Pricing for LiveKit Inference is available on the pricing page.
LiveKit Inference
Use LiveKit Inference to access Rime TTS without a separate Rime API key.
| Model name | Model ID | Languages |
|---|---|---|
Arcana | rime/arcana | enesfrdehihejaptar |
Mist | rime/mist | en |
Mist v2 | rime/mistv2 | enesfrde |
Mist v3 | rime/mistv3 | enesfrdehi |
Usage
To use Rime, use the TTS class from the inference module:
from livekit.agents import AgentSession, inferencesession = AgentSession(tts=inference.TTS(model="rime/arcana",voice="celeste",language="en"),# ... tts, stt, vad, turn_handling, etc.)
import { AgentSession, inference } from '@livekit/agents';session = new AgentSession({tts: new inference.TTS({model: "rime/arcana",voice: "celeste",language: "en"}),// ... tts, stt, vad, turnHandling, etc.});
Parameters
modelstringThe model ID from the models list.
voicestringSee voices for guidance on selecting a voice.
languageLanguageCodeLanguage code for the input text. The framework automatically converts to the format expected by the Rime API.
extra_kwargsdictAdditional parameters to pass to the Rime TTS API. See model parameters for supported fields.
In Node.js this parameter is called modelOptions.
Model parameters
These parameters apply only to the mist and mistv2 models. arcana does not support extra model parameters.
Pass the following parameters inside extra_kwargs (Python) or modelOptions (Node.js):
| Parameter | Type | Default | Notes |
|---|---|---|---|
speed_alpha | float | 1.0 | Speed multiplier. Values less than 1.0 produce faster speech; values greater than 1.0 produce slower speech. |
pause_between_brackets | bool | False | Whether to insert a pause at bracket positions in the text. |
phonemize_between_brackets | bool | False | Whether to interpret text between brackets as phonemes for custom pronunciation. |
inline_speed_alpha | str | Comma-separated list of speed multipliers applied inline to segments of text. | |
no_text_normalization | bool | False | Whether to skip text normalization (disabling expansion of numbers, abbreviations, etc.). Might reduce latency but can affect pronunciation of digits and abbreviations. |
Voices
LiveKit Inference supports all of the voices available in the Rime API. You can view the default voices and explore the wider set in the API in the Rime voices documentation, and use the voice by copying its name into your LiveKit agent session.
The following is a small sample of the Rime voices available in LiveKit Inference.
String descriptors
As a shortcut, you can also pass a descriptor with the model ID and voice directly to the tts argument in your AgentSession:
from livekit.agents import AgentSessionsession = AgentSession(tts="rime/arcana:celeste",# ... llm, stt, vad, turn_handling, etc.)
import { AgentSession } from '@livekit/agents';session = new AgentSession({tts: "rime/arcana:celeste",// ... tts, stt, vad, turnHandling, etc.});
Plugin
LiveKit's plugin support for Rime lets you connect directly to Rime's TTS API with your own API key.
Installation
Install the plugin:
uv add "livekit-agents[rime]~=1.4"
pnpm add @livekit/agents-plugin-rime@1.x
Authentication
The Rime plugin requires a Rime API key.
Set RIME_API_KEY in your .env file.
Usage
Use Rime TTS within an AgentSession or as a standalone speech generator. For example, you can use this TTS in the Voice AI quickstart.
from livekit.plugins import rimesession = AgentSession(tts=rime.TTS(model="arcana",speaker="celeste",speed_alpha=0.9,),# ... llm, stt, etc.)
import * as rime from '@livekit/agents-plugin-rime';const session = new voice.AgentSession({tts: new rime.TTS({modelId: "arcana",speaker: "celeste",speedAlpha: 0.9,}),// ... llm, tts, etc.});
Parameters
This section describes some of the available parameters. See the plugin reference for a complete list of all available parameters.
modelstringDefault: arcanaID of the model to use. To learn more, see Models.
speakerstringDefault: celesteID of the voice to use for speech generation. To learn more, see Voices.
audio_formatTTSEncodingDefault: pcmAudio format to use. Valid values are: pcm and mp3.
sample_rateintegerDefault: 16000Sample rate of the generated audio. Set this rate to best match your application needs. To learn more, see Recommendations for reducing response time.
speed_alphafloatDefault: 1.0Adjusts the speed of speech. Lower than 1.0 results in faster speech; higher than 1.0 results in slower speech.
reduce_latencybooleanDefault: falseWhen set to true, turns off text normalization to reduce the amount of time spent preparing input text for TTS inference. This might result in the mispronunciation of digits and abbreviations. To learn more, see Recommendations for reducing response time.
phonemize_between_bracketsbooleanDefault: falseWhen set to true, allows the use of custom pronunciation strings in text. To learn more, see Custom pronunciation.
api_keystringEnv: RIME_API_KEYRime API Key. Required if the environment variable isn't set.
Customizing pronunciation
Rime TTS supports customizing pronunciation. To learn more, see Custom Pronunciation guide.
Additional resources
The following resources provide more information about using Rime with LiveKit Agents.