Skip to main content

Overview

CambTTSService provides high-quality text-to-speech synthesis using Camb AI’s MARS model family with streaming capabilities. The service offers multiple model options optimized for different use cases: mars-flash for fast inference and mars-pro for high-quality output.

Camb AI TTS API Reference

Pipecat’s API methods for Camb AI TTS integration

Example Implementation

Complete example with interruption handling

Camb AI Documentation

Official Camb AI API documentation

Camb AI Platform

Access the Camb AI studio platform

Installation

To use Camb AI services, install the required dependencies:
pip install "pipecat-ai[camb]"

Prerequisites

Camb AI Account Setup

Before using Camb AI TTS services, you need:
  1. Camb AI Account: Sign up at Camb AI
  2. API Key: Generate an API key from your account dashboard
  3. Voice Selection: Choose voice IDs from the platform

Required Environment Variables

  • CAMB_API_KEY: Your Camb AI API key for authentication

Configuration

CambTTSService

api_key
str
required
Camb.ai API key for authentication.
voice_id
int
default:"147320"
deprecated
Voice ID to use for synthesis.Deprecated in v0.0.105. Use settings=CambTTSService.Settings(...) instead.
model
str
default:"mars-flash"
deprecated
TTS model to use. Options: "mars-flash" (fast, 22.05kHz), "mars-pro" (high quality, 48kHz), "mars-instruct" (instruction-following, 22.05kHz).Deprecated in v0.0.105. Use settings=CambTTSService.Settings(...) instead.
timeout
float
default:"60.0"
Request timeout in seconds. 60 seconds is the minimum recommended by Camb.ai.
sample_rate
int
default:"None"
Output audio sample rate in Hz. If None, uses the model-specific default (22050 for mars-flash, 48000 for mars-pro).
params
InputParams
default:"None"
deprecated
Runtime-configurable voice settings. See InputParams below.Deprecated in v0.0.105. Use settings=CambTTSService.Settings(...) instead.
settings
CambTTSService.Settings
default:"None"
Runtime-configurable settings. See Settings below.

Settings

Runtime-configurable settings passed via the settings constructor argument using CambTTSService.Settings(...). These can be updated mid-conversation with TTSUpdateSettingsFrame. See Service Settings for details.
ParameterTypeDefaultDescription
modelstrNoneModel identifier. (Inherited.)
voicestrNoneVoice identifier. (Inherited.)
languageLanguage | strNoneLanguage for synthesis. (Inherited.)
user_instructionsstrNOT_GIVENInstructions to guide voice synthesis style.

Usage

Basic Setup

from pipecat.services.camb import CambTTSService

tts = CambTTSService(
    api_key=os.getenv("CAMB_API_KEY"),
    settings=CambTTSService.Settings(
        model="mars-flash",
    ),
)

High Quality with mars-pro

tts = CambTTSService(
    api_key=os.getenv("CAMB_API_KEY"),
    settings=CambTTSService.Settings(
        voice="12345",
        model="mars-pro",
    ),
)

With Language Customization

from pipecat.transcriptions.language import Language

tts = CambTTSService(
    api_key=os.getenv("CAMB_API_KEY"),
    settings=CambTTSService.Settings(
        model="mars-flash",
        language=Language.FR,
    ),
)
The InputParams / params= pattern is deprecated as of v0.0.105. Use Settings / settings= instead. See the Service Settings guide for migration details.

Notes

Set the audio_out_sample_rate in PipelineParams to match the model’s sample rate (22050 for mars-flash, 48000 for mars-pro) for optimal quality. See the example implementation for usage.
  • Model-specific sample rates: Each model has a fixed output sample rate. Setting a mismatched sample_rate will produce a warning and may cause audio issues.
  • Text length limit: Input text is limited to 3000 characters per request. Longer text is automatically truncated with a warning.
  • 140+ languages: Camb.ai supports a wide range of languages through BCP-47 codes.