Pipecat service integration for Gnani Vachana speech AI — STT & TTS for Indian languages
Project description
pipecat-gnani
Pipecat service integration for Gnani Vachana — high-accuracy Speech-to-Text and low-latency Text-to-Speech for Indian languages.
Vachana is a production-ready speech AI platform by Gnani.ai supporting 10+ Indian languages with real-time streaming, multilingual transcription, and code-switching capabilities.
Installation
pip install pipecat-gnani
This will also install the gnani-vachana core SDK as a dependency.
Prerequisites
You need a Gnani API key. Email speechstack@gnani.ai to get started — all new accounts receive free credits, no credit card required.
export GNANI_API_KEY="your-api-key"
Quick Start
Speech-to-Text (Streaming)
from pipecat_gnani import GnaniSTTService
stt = GnaniSTTService(
api_key="your-api-key",
settings=GnaniSTTService.Settings(
language=Language.HI_IN,
),
)
Text-to-Speech (REST)
from pipecat_gnani import GnaniHttpTTSService
tts = GnaniHttpTTSService(
api_key="your-api-key",
aiohttp_session=session,
settings=GnaniHttpTTSService.Settings(
voice="sia",
language="hi-IN",
),
)
Text-to-Speech (Streaming WebSocket)
from pipecat_gnani import GnaniTTSService
tts = GnaniTTSService(
api_key="your-api-key",
settings=GnaniTTSService.Settings(
voice="sia",
language="IND-IN",
),
)
Services
GnaniSTTService
Real-time streaming speech-to-text via WebSocket with VAD (Voice Activity Detection) support.
- Connects to
wss://api.vachana.ai/stt/v3/stream - Sends raw PCM audio in 1024-byte chunks
- Receives transcription events with segment metadata
- Supports 8 kHz and 16 kHz sample rates
GnaniHttpTTSService
REST-based text-to-speech for non-streaming use cases.
- Uses
POST /api/v1/tts/inference - Returns complete audio in a single response
- Suitable for batch synthesis
GnaniTTSService
WebSocket-based streaming text-to-speech with interruption handling.
- Connects to
wss://api.vachana.ai/api/v1/tts - Streams audio chunks in real-time
- Extends
InterruptibleTTSServicefor proper interruption support - Ideal for conversational voice agents
Supported Languages
| Language | Code |
|---|---|
| Bengali | bn-IN |
| English (India) | en-IN |
| Gujarati | gu-IN |
| Hindi | hi-IN |
| Kannada | kn-IN |
| Malayalam | ml-IN |
| Marathi | mr-IN |
| Punjabi | pa-IN |
| Tamil | ta-IN |
| Telugu | te-IN |
Available Voices
| Voice | ID |
|---|---|
| Sia | sia |
| Raju | raju |
| Kanika | kanika |
| Nikita | nikita |
| Ravan | ravan |
| Simran | simran |
| Karan | karan |
| Neha | neha |
Architecture
gnani-vachana ← Core SDK (REST, WebSocket, SSE clients)
↑
pipecat-gnani ← This package (Pipecat service adapter)
This package is a thin adapter that wraps the gnani-vachana SDK into Pipecat's STTService, TTSService, and InterruptibleTTSService base classes. All connection logic, authentication, and audio format handling lives in the core SDK.
Documentation
License
BSD 2-Clause — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pipecat_gnani-0.2.0.tar.gz.
File metadata
- Download URL: pipecat_gnani-0.2.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa2f110dbc7692567c5860f06082271879c11e293c6be9f9c9d89819b92fad73
|
|
| MD5 |
f526fb5a6129e81632befbb4eb698fb3
|
|
| BLAKE2b-256 |
ffcce1535e59299642899d1bed479bbfcb4ad05397a3b2ab73a058a67acf0ded
|
Provenance
The following attestation bundles were made for pipecat_gnani-0.2.0.tar.gz:
Publisher:
workflow.yml on Gnani-AI-Mintlify/pipecat-gnani
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipecat_gnani-0.2.0.tar.gz -
Subject digest:
aa2f110dbc7692567c5860f06082271879c11e293c6be9f9c9d89819b92fad73 - Sigstore transparency entry: 1525199500
- Sigstore integration time:
-
Permalink:
Gnani-AI-Mintlify/pipecat-gnani@444c9467b6d7a2eef508f5496b1f607667385ec9 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Gnani-AI-Mintlify
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@444c9467b6d7a2eef508f5496b1f607667385ec9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pipecat_gnani-0.2.0-py3-none-any.whl.
File metadata
- Download URL: pipecat_gnani-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f83103b80cabe5a5cb0fdb159f5cc1c2a32ffe2032466f5472583d9dcd91fea
|
|
| MD5 |
24b981fa9488f4cca5e43d7832329ee6
|
|
| BLAKE2b-256 |
e8c8a8ba7078fd9f49bf4e78083537430fd6d7799c9d93b573102c33d86da7ca
|
Provenance
The following attestation bundles were made for pipecat_gnani-0.2.0-py3-none-any.whl:
Publisher:
workflow.yml on Gnani-AI-Mintlify/pipecat-gnani
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pipecat_gnani-0.2.0-py3-none-any.whl -
Subject digest:
4f83103b80cabe5a5cb0fdb159f5cc1c2a32ffe2032466f5472583d9dcd91fea - Sigstore transparency entry: 1525199582
- Sigstore integration time:
-
Permalink:
Gnani-AI-Mintlify/pipecat-gnani@444c9467b6d7a2eef508f5496b1f607667385ec9 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Gnani-AI-Mintlify
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@444c9467b6d7a2eef508f5496b1f607667385ec9 -
Trigger Event:
release
-
Statement type: