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

Overview

VartaloopTTSService generates Hinglish and Indian-language speech from Vartaloop over one WebSocket per session, sending each sentence as its own utterance as soon as it is aggregated. VartaloopHttpTTSService does the same with one HTTP request per sentence.

Source Repository

Source code, tests, and issues for the Vartaloop integration

Example

A Hinglish voice agent using VartaloopTTSService

Vartaloop Docs

Voices, text normalisation, and the API reference

Installation

This is a community-maintained package distributed separately from pipecat-ai:

Prerequisites

  1. Vartaloop account: sign up at tts.vartaloop.ai.
  2. API key: create one in the portal.

Required Environment Variables

  • VARTALOOP_API_KEY: your Vartaloop API key

Configuration

VartaloopTTSService

str | None
default:"None"
Vartaloop API key. When None, it is read from VARTALOOP_API_KEY. Raises ValueError when neither is set.
str
default:"wss://api.vartaloop.ai/v1/tts/stream"
WebSocket endpoint.
int | None
default:"None"
Output sample rate in Hz. When None, the pipeline’s rate is used. The API produces 24 kHz audio, which is resampled when the rates differ.
VartaloopTTSService.Settings | None
default:"None"
Runtime-configurable settings. See Settings.

VartaloopHttpTTSService

Takes api_key, sample_rate, and settings as above, plus:
aiohttp.ClientSession | None
default:"None"
HTTP session to reuse. When None, the service creates one.
str
default:"https://api.vartaloop.ai"
API base URL.

Settings

Both services take VartaloopTTSService.Settings. Every field can be changed with TTSUpdateSettingsFrame and applies from the next sentence, without reconnecting.

Usage

Speak in a Voice Agent

Add the service to a pipeline after the LLM:

Change the Expression Mid-Call

Push a TTSUpdateSettingsFrame:

Notes

  • Interruptions: VartaloopTTSService drops the interrupted turn’s audio and reopens its WebSocket, so the server stops synthesising it. Use it for conversational agents, and VartaloopHttpTTSService for pipelines without interruptions.
  • Compatibility: tested with Pipecat 1.15.