Community-maintained integration. This service is built and maintained by Gnani-AI-Mintlify. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.
Overview
GnaniHttpTTSService, GnaniSSETTSService, and GnaniTTSService synthesize
speech using Gnani, a production speech AI platform
for 10+ Indian languages with real-time streaming and low-latency synthesis.
Use the REST service for simple request/response synthesis, the SSE service for
streaming with lower latency than REST, or the WebSocket GnaniTTSService for
lowest latency with interruption support via InterruptibleTTSService.
Source Repository
Source code, examples, and issues for the Gnani integration
PyPI Package
The
pipecat-gnani package on PyPIGnani Website
Learn about Gnani’s speech AI platform
Gnani API Docs
TTS REST, SSE, and WebSocket API reference
Demo Video
Gnani × Pipecat integration — STT/TTS pipeline and interruption handling
gnani-vachana SDK
Core Gnani Python SDK (>= 0.9.0) installed as a dependency
Installation
Install the community package directly:gnani-vachana
(>= 0.9.0) core SDK. The Python import package name remains gnani.
Prerequisites
Gnani Account Setup
Before using the Gnani TTS services, you need:- Gnani API key: Get one from Gnani APIs.
- Set credentials: Export
GNANI_API_KEYas an environment variable.
Required Environment Variables
GNANI_API_KEY: Your Gnani API key for authentication
Configuration
All three services share the same audio-format settings via theirSettings
dataclasses. The key difference is transport: REST for single-request synthesis,
SSE for chunked streaming, and WebSocket for interruptible real-time synthesis.
Shared constructor parameters
str
required
Gnani API key for authentication.
str
default:"None"
Voice name for synthesis. Must belong to the selected model. When
None, the
default is Pranav for timbre-v2.5 and Avinash for timbre-v3.0. See
Available voices.str
default:"timbre-v2.5"
TTS model identifier. One of
timbre-v2.5 or timbre-v3.0.int
default:"None"
Output sample rate in Hz. One of
8000, 16000, 22050, 24000, 44100,
or 48000. When omitted, negotiated from the pipeline configuration.GnaniHttpTTSService and GnaniSSETTSService (HTTP)
aiohttp.ClientSession
required
Shared aiohttp session for HTTP requests.
Settings
Runtime-configurable settings passed via thesettings constructor argument
using GnaniHttpTTSService.Settings(...), GnaniSSETTSService.Settings(...),
or GnaniTTSService.Settings(...).
Settings that conflict with the chosen model or fall outside the allowed values
raise
ValueError when the service is created or updated. Output is always
16-bit PCM, so other encodings and containers (mp3, ogg, mulaw, alaw)
are rejected.
Voice, model, language, and speed changes take effect on the next synthesis
request. If an update is rejected, the previous settings stay in place. For
the supported languages, see the Gnani TTS
documentation.
Available voices
timbre-v2.5 (42 voices)
timbre-v3.0 (13 voices)
Avinash, Chetana, Devansh, Harshad, Kalpana, Lakshmi, Prakash,
Riyaa, Shivani, Shubham, Tarika, Vasudha, Yashraj
The voice lists are also available in code as pipecat_gnani.TIMBRE_V25_VOICES
and pipecat_gnani.TIMBRE_V30_VOICES.
Usage
Streaming with interruption (WebSocket)
Choosing a model, language, and speed
SSE streaming
REST (non-streaming)
Minimal pipeline example
Compatibility
Tested with the latest Pipecat main branch (v1.5.0+) usingpipecat-gnani. Requires gnani-vachana >= 0.9.0. Check the source
repository for the latest
tested version and changelog.