Agent-readable docs index: /llms.txt. Download /docs.zip to grep all markdown files locally.

Pipecat

Vakyam ships VakyamTTSService as a standalone Pipecat community integration (pipecat-vakyam). Install it next to pipecat-ai; it is versioned independently of both Pipecat and the core vakyamai SDK.
The service keeps a persistent WebSocket connection and, by default, aggregates LLM output into sentences to match Vakyam's one-utterance-per-message protocol.
The vakyamai[pipecat] extra and from vakyamai.pipecat import VakyamTTSService are deprecated and will be removed. Switch to pipecat-vakyam — the service API is the same; only the package and import path change. See Migrate from the old SDK extra.

Install

pip install pipecat-vakyam
The package depends on vakyamai for Vakyam's WebSocket protocol helpers, and on pipecat-ai (>=1.5,<2). It is tested with Pipecat v1.7.0. Source, issues, and examples live in the pipecat-vakyam repository .
Set your API key:
export VAKYAM_API_KEY="vak_live_..."

Create the TTS service

from pipecat_vakyam import VakyamTTSService tts = VakyamTTSService( settings=VakyamTTSService.Settings( voice="Archana", model="raaga-v1", language="ta-IN", speed=1.0, ), )
The service reads VAKYAM_API_KEY from the environment by default; pass api_key="vak_live_..." to set it explicitly.
Omit sample_rate unless you need a specific rate. Pipecat sets it from the pipeline StartFrame. Supported values are 8000, 16000, 24000, and 48000.

Constructor parameters

path api_keystring
Vakyam API key. Defaults to the VAKYAM_API_KEY environment variable.
path sample_rateinteger
Output PCM sample rate in Hz: 8000, 16000, 24000, or 48000. When omitted, Pipecat supplies it from the pipeline StartFrame.
path settingsVakyamTTSService.Settings
Runtime-updatable synthesis settings (see below).
path text_aggregation_modeTextAggregationMode
How Pipecat aggregates LLM text before synthesis. Defaults to sentence aggregation, which matches Vakyam's utterance-oriented API.
path base_urlstringdefault: https://api.vakyam.ai
API base URL. Defaults to production (https://api.vakyam.ai).
path allow_insecure_base_urlbooleandefault: false
Allow non-localhost http:// base URLs. Defaults to false.

Settings

VakyamTTSService.Settings holds the synthesis configuration and can be updated at runtime via Pipecat's TTSUpdateSettingsFrame:
path voicestringdefault: Archana
Voice selector — a preset name (discover valid values with GET /v1/voices) or a custom voice ID beginning with vc_. See Voices & languages.
path modelstringdefault: raaga-v1
TTS model identifier.
path languagestringdefault: ta-IN
BCP 47 language code, such as ta-IN, hi-IN, or en-IN.
path speednumberdefault: 1.0
Speech rate multiplier, 0.5–2.0.

Add it to your pipeline

Wire the service into your Pipecat pipeline alongside your transport, STT, and LLM, as you would any other TTS service:
from pipecat.pipeline.pipeline import Pipeline from pipecat.pipeline.task import PipelineParams, PipelineTask from pipecat_vakyam import VakyamTTSService tts = VakyamTTSService( settings=VakyamTTSService.Settings( voice="Archana", model="raaga-v1", language="ta-IN", ), ) pipeline = Pipeline([ transport.input(), stt, context_aggregator.user(), llm, tts, transport.output(), context_aggregator.assistant(), ]) task = PipelineTask(pipeline, params=PipelineParams(allow_interruptions=True))
The service holds a single persistent WebSocket. On barge-in it sends a cancel and keeps the socket open — it does not reconnect — so the next turn starts without new connection latency. See Interrupting playback.

Migrate from the old SDK extra

If you still install vakyamai[pipecat], switch the package and import. The constructor and settings are unchanged. Keep vakyamai installed if you use the core SDK elsewhere — pipecat-vakyam already depends on it.
pip install pipecat-vakyam
# Before (deprecated) from vakyamai.pipecat import VakyamTTSService # After from pipecat_vakyam import VakyamTTSService