Skip to main content
Kalpa Labs is a text-to-speech provider whose conversational speech models render named voices and speak code-switched Hindi and English from a single model, with no language parameter. Speech streams over a persistent WebSocket, so audio starts playing while the model reply is still arriving.

Quick config


Supported models

The multilingual model handles Hindi, English, and Hinglish in the same utterance on its own, so there is no language setting to configure.

Voices

Voices are the named voices in Kalpa’s catalog. The default is Kiara. Address a voice either by its display name (voice) or by its explicit id (voice_id); a display name is resolved to its id on the first connection of a call. Casing is normalized for you, so voice: "kiara" still resolves to Kiara.

Key settings

temperature, acoustic_temperature, max_new_tokens, and audio_quality are optional tuning knobs. Only the ones you set are sent; anything left out uses Kalpa’s tuned default for that model.

How streaming works

A call runs on a single persistent WebSocket connection. Model output is forwarded to Kalpa as it arrives, and the chunk_length_schedule opts the connection into server-side segmentation: once buffered text crosses the next threshold and ends at a complete sentence, that part starts rendering while the rest is still streaming in. Bolna does no client-side chunking of the text. The turn is closed with a flush at the end of the model reply, which renders whatever text remains. First audio can arrive well before that flush. On interruption, Bolna cancels the open response and stops the audio, flushing first when needed so the connection always settles cleanly and is ready for the next turn.

Audio output

Kalpa streams audio at 24 kHz. Bolna converts it depending on where the audio is going:
  • Telephony - downsampled to 8 kHz and mu-law encoded
  • Web - left at Kalpa’s native 24 kHz, no resampling
Handoff and prewarm clips are generated with a one-shot HTTP call rather than the WebSocket.

FAQ

No. The default kalpa-tts-multilingual-beta-v0.1 model speaks English, Hindi, and code-switched Hinglish from one model, with no language parameter. Use kalpa-tts-beta-v0.1 if you want an English-only voice.
Pass a voice display name as voice (default Kiara), or an explicit voice_id. A display name is resolved to its id on the first connection, and casing does not matter.
Yes. Bolna downsamples and mu-law encodes Kalpa’s audio for telephony, and leaves it at native 24 kHz for web.
It sets the buffered-character thresholds at which Kalpa starts rendering each successive part of an utterance, which is what lets first audio start before the reply finishes. The default [50, 80, 120, 150] suits most agents; lower first values trade a little stability for faster time to first audio.

  • Audio Tab - configure synthesizer in the dashboard
  • Maya - alternative Indian-language synthesizer
  • Sarvam - Indian-language synthesizer with per-language voices
  • ElevenLabs - Bolna’s default English synthesizer
  • Latency - how synthesis affects response time