Overview
TypecastTTSService converts text into expressive, lifelike speech using
Typecast’s neural voices. It supports emotion control
and audio customization, and integrates Typecast’s streaming text-to-speech into
a Pipecat pipeline.
Source Repository
Source code, examples, and issues for the Typecast integration
PyPI Package
The
pipecat-ai-typecast package on PyPITypecast Website
Learn more about Typecast’s text-to-speech voices
API Keys
Create and manage your Typecast API keys
Installation
This is a community-maintained package distributed separately frompipecat-ai:
Prerequisites
Typecast Account Setup
Before using the Typecast TTS service, you need:- Typecast Account: Sign up at Typecast
- API Key: Create a key from the Typecast API key page
Required Environment Variables
TYPECAST_API_KEY: Your Typecast API key for authentication (required)TYPECAST_VOICE_ID: Voice ID override (optional; defaults to the service’s built-in voice)
Configuration
Active aiohttp client session used for Typecast API requests.
Typecast API key. Falls back to the
TYPECAST_API_KEY environment variable if
not provided.Voice ID to use. Falls back to the
TYPECAST_VOICE_ID environment variable,
or the service’s built-in default voice.Typecast model version. Use
ssfm-v30 (default) or the legacy ssfm-v21.Typecast API endpoint URL.
Audio sample rate in Hz.
Advanced configuration parameters for language, seed, emotion, and audio
output. See Input Parameters below.
Input Parameters
Advanced settings passed via theparams constructor argument using
TypecastInputParams(...).
| Parameter | Type | Default | Description |
|---|---|---|---|
language | Language | Language.EN | Target language, mapped to a Typecast ISO-639-3 code. |
seed | int | None | Seed for deterministic synthesis of identical text. |
prompt_options | TypecastPromptOptions | PresetPromptOptions() | Emotion control. See prompt option models below. |
output_options | OutputOptions | OutputOptions() | Audio output configuration. See output options below. |
prompt_options accepts one of:
PresetPromptOptions(ssfm-v30):emotion_preset(e.g.normal,happy,sad,angry,whisper,toneup,tonedown) andemotion_intensity(0.0–2.0).SmartPromptOptions(ssfm-v30):previous_textandnext_text(max 2000 chars each) for context-aware emotion inference.PromptOptions(legacy ssfm-v21):emotion_presetandemotion_intensity.
OutputOptions fields:
| Parameter | Type | Default | Description |
|---|---|---|---|
volume | int | None | Volume percent (0–200). Mutually exclusive with target_lufs. |
audio_pitch | int | 0 | Pitch adjustment in semitones (-12 to 12). |
audio_tempo | float | 1.0 | Playback speed (0.5–2.0). |
audio_format | str | "wav" | Output format. Only wav is supported. |
target_lufs | float | None | Absolute loudness target in LUFS (-70.0–0.0). Excludes volume. |
Available parameters and defaults are defined by the integration and the
selected Typecast model. See the source
repository for the
authoritative, up-to-date list.
Usage
example.py
in the source repository for a complete working bot.