Skip to main content
building on livekit agents? use livekit-plugins-rumik, our official livekit tts plugin. it drops rumik straight into an AgentSession with streaming audio and interruption handling already wired up.
livekit-plugins-rumik-ai is deprecated. use livekit-plugins-rumik instead. see migrating from livekit-plugins-rumik-ai.
set your key from the dashboard:

add it to an agent

the TTS class plugs into a livekit AgentSession next to your stt and llm:
steer mulberry with a natural-language description, or pin a preset speaker:

constructor options

it also accepts the shared sampling params (temperature, top_p, top_k, repetition_penalty, max_new_tokens).
muga aggregates the full tagged reply before speaking (full_response_aggregation is True by default), so it never tries to synthesize a half-tagged sentence. see prompting muga for why.

which model?

  • muga for short, expressive reactions you steer with [tone] tags. see prompting muga.
  • mulberry for low-latency conversational agents you steer with a description. see prompting mulberry.
prefer a full walkthrough? the livekit cookbook builds a working voice agent from scratch. or hand your coding agent the rumik tts skill so it wires all of this up on the first try.

migrating from livekit-plugins-rumik-ai

livekit-plugins-rumik continues livekit-plugins-rumik-ai from 0.2.3 on. the TTS class and its options are the same; only the package and module names changed. swap the package in your environment, and in your requirements.txt or pyproject.toml:
then change the import. importing the new module under the old name leaves the rest of your code as it is:
rebuild and redeploy your agent. if you filter logs by logger name, the plugin now logs as livekit.plugins.rumik. beyond the rename, 0.2.3 keeps the connection alive between replies, so a pause no longer ends in Connection error., and it opens replacement connections in the background. when a connection does fail, the error now names the cause. see the changelog.