# Integrations

> Kalpa voices in the voice-agent frameworks and platforms you already build on.

Kalpa is available inside voice-agent frameworks and platforms, so an agent you already run can speak in Kalpa voices without code against the API itself. Both integrations default to `kalpa-tts-1`, which speaks English, Hindi and code-switched Hinglish from one model.

| Integration | What it is | How Kalpa plugs in |
|---|---|---|
| [Pipecat](/pipecat) | Open-source Python framework for real-time voice and multimodal agents | The [`pipecat-kalpa`](https://github.com/kalpalabs/pipecat-kalpa) community package, maintained by Kalpa Labs: `KalpaTTSService` (WebSocket) and `KalpaHttpTTSService` (HTTP streaming) |
| [Bolna](/bolna) | Voice AI platform for phone and web agents, with an open-source framework | Built in: set the agent's synthesizer `provider` to `kalpa` |

Both stream speech while the agent's reply is still being generated, and stop it when the user interrupts.

## Before you start

- **An API key** for Pipecat, or for a Bolna server you host yourself. Create one at [kalpalabs.ai/dashboard/keys](https://kalpalabs.ai/dashboard/keys/) and keep it server-side as `KALPA_API_KEY` — see [Authentication](/authentication).
- **A voice.** Both integrations default to Arjun, a Hindi and English voice. To choose another, list the catalog with `GET /v1/voices` (see [Named voices](/text-to-speech#named-voices)) and pick a voice offered for your model.

## Another framework

The integrations call the same public endpoints you can call directly: the streaming WebSocket [`WSS /v1/tts/{voice_id}/stream`](/reference#wss-v1-tts-voice-id-stream) for text that arrives as an LLM writes it, and [`POST /v1/tts/{voice_id}/stream`](/text-to-speech#streaming-over-http) for one utterance per request. [Text-to-speech](/text-to-speech) covers both. To ask for an integration, write to [hello@kalpalabs.ai](mailto:hello@kalpalabs.ai).
