livekit-plugins-vakyam). Install it next to livekit-agents; it is
versioned with the LiveKit Agents monorepo, independently of the core
vakyamai SDK.stream() uses the realtime WebSocket API and
sentence-tokenizes LLM text so each utterance is one complete sentence.
synthesize() uses HTTP streaming (POST /v1/tts/stream) and returns PCM
audio.vakyamai[livekit] extra and from vakyamai.livekit import VakyamTTS remain
available for now, but they will be deprecated. Switch to the official LiveKit
plugin — the constructor arguments are the same; only the package and import
path change. See Migrate from the SDK extra.1pip install livekit-plugins-vakyam
1uv add "livekit-agents[vakyam]"
1export VAKYAM_API_KEY="vak_live_..."
123456789from livekit.plugins import vakyam tts = vakyam.TTS( model="raaga-v1", voice="Archana", language="ta-IN", sample_rate=24000, speed=1.0, )
VAKYAM_API_KEY from the environment by default; pass
api_key="vak_live_..." to set it explicitly.path api_keystringVAKYAM_API_KEY environment variable.path modelstringdefault: raaga-v1path voicestringdefault: ArchanaGET /v1/voices)
or a custom voice ID beginning with vc_. See
Voices & languages.path languagestringdefault: ta-INta-IN, hi-IN, or en-IN.path sample_rateintegerdefault: 240008000, 16000, 24000, or 48000.path speednumberdefault: 1.00.5–2.0.path base_urlstringdefault: https://api.vakyam.aihttps://api.vakyam.ai).path allow_insecure_base_urlbooleandefault: falsehttp:// base URLs. Defaults to false.path tokenizerSentenceTokenizerupdate_options(...) to change model, voice, language,
sample_rate, or speed for streams created after the call. Call prewarm()
to open a pooled WebSocket before the first turn.vakyam.TTS with your chosen STT, LLM, and VAD, the same way you would
wire any other LiveKit TTS plugin:1234567891011121314from livekit.agents import AgentSession from livekit.plugins import vakyam session = AgentSession( stt=your_stt, llm=your_llm, tts=vakyam.TTS( model="raaga-v1", voice="Archana", language="ta-IN", sample_rate=24000, ), vad=your_vad, )
vakyam.TTS supports streaming synthesis and interruption. WebSocket
connections are pooled and reused between sequential agent turns. Each active
synthesis stream has exclusive ownership of its connection, so an overlapping
stream uses a separate connection. On barge-in, the plugin sends a cancel,
drains through Vakyam's cancellation acknowledgement, and returns the healthy
connection to the pool. See
Interrupting playback.vakyamai[livekit], switch the package and import. The
constructor arguments are unchanged. Keep vakyamai installed if you use the
core SDK elsewhere.1pip install livekit-plugins-vakyam
12345678910111213141516171819# Before (will be deprecated) from vakyamai.livekit import VakyamTTS tts = VakyamTTS( model="raaga-v1", voice="Archana", language="ta-IN", sample_rate=24000, ) # After from livekit.plugins import vakyam tts = vakyam.TTS( model="raaga-v1", voice="Archana", language="ta-IN", sample_rate=24000, )