Skip to main content
Community-maintained integration. This service is built and maintained by Chariot-AI. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.

Overview

ChariotTTSService synthesizes speech using Chariot, which serves lifelike voices for Indian languages and English. The service keeps one WebSocket open for the whole conversation, with each bot turn as its own context, and streams audio while the server is still generating. Any voice speaks any supported language, so the audio follows the text rather than the voice, and there is no language parameter to set.

Source Repository

Package source, the voice agent example, and issue tracker

PyPI Package

The pipecat-chariot package on PyPI

Chariot

API reference, voices, and supported languages

API Keys

Create an account and manage your Chariot API keys

Installation

Prerequisites

  1. Create an account at platform.chariot.in. New accounts include free credits.
  2. Copy an API key from the console and set CHARIOT_API_KEY.
  3. Optionally pick a voice from GET https://api.chariot.in/v1/voices. Without one the service uses a Chariot stock voice.

Configuration

str
required
Chariot API key.
str
default:"None"
Voice UUID from GET /v1/voices. settings.voice takes precedence. Defaults to a Chariot stock voice.
str
default:"chariot-multilingual-v1"
chariot-multilingual-v1 or chariot-v0. settings.model takes precedence.
float
default:"None"
Speaking rate. Leave unset for the voice as recorded. settings.speed takes precedence.
bool
default:"None"
Not sent unless set. Unset or True: your workspace’s data retention setting decides. False keeps the generated audio out of storage.
int
default:"44100"
Chariot streams 44.1 kHz; a mismatch logs a warning.

Settings

Pass these through ChariotTTSService.Settings(...). They can also be updated while the pipeline is running with TTSUpdateSettingsFrame.
Speaking rates are pre-encoded per voice and per model, so speed is one of a fixed set rather than a range. GET /v1/voices lists what each voice offers under each model as speeds.

Usage

Interruptions

When the user barges in, the turn’s Chariot context is cancelled: generation stops at once and the connection stays open, so the next turn starts without a new handshake. Nothing needs configuring.

Compatibility

Tested with Pipecat v1.15.0 (pipecat-ai>=1.13,<2). See the changelog for updates.