Speechify text-to-speech for
Pipecat voice agents, maintained by
Speechify. Drop SpeechifyTTSService into a pipeline the same way you use the
other TTS providers.
It uses Speechify's POST /v1/audio/speech endpoint, which returns audio
together with word-level timestamps (speech marks) in a single response.
Pipecat's base TTSService aggregates streamed LLM text into sentences, so one
request is made per sentence — near-streaming time-to-first-audio while
preserving word timestamps. Built on the official
speechify-api SDK.
pip install pipecat-speechify
# or
uv add pipecat-speechifySet your Speechify API key (get one at platform.speechify.ai/api-keys):
export SPEECHIFY_API_KEY=sk_...from pipecat_speechify import SpeechifyTTSService
tts = SpeechifyTTSService(
api_key=os.environ["SPEECHIFY_API_KEY"],
voice_id="dominic_32", # any voice from the /v1/voices endpoint
model="simba-3.2", # simba-english | simba-multilingual | simba-3.0 | simba-3.2
)pipeline = Pipeline([
transport.input(),
stt,
user_aggregator,
llm,
tts, # <-- Speechify TTS
transport.output(),
assistant_aggregator,
])| Constructor argument | Default | Description |
|---|---|---|
api_key |
$SPEECHIFY_API_KEY |
Speechify API key. |
voice_id |
dominic_32 |
Voice to synthesize with (see /v1/voices). |
model |
simba-3.2 |
simba-english, simba-multilingual, simba-3.0, or simba-3.2. |
language |
None |
BCP-47 code (e.g. en-US); Speechify auto-detects when omitted. |
loudness_normalization |
None |
Normalize output loudness. |
text_normalization |
None |
Expand numbers/dates into words before synthesis. |
sample_rate |
pipeline rate | Speechify synthesizes at 24 kHz; audio is resampled when this differs. |
base_url |
Speechify default | Override the API base URL. |
client |
None |
Pass a preconfigured speechify.AsyncSpeechify client. |
Runtime-updatable settings (SpeechifyTTSService.Settings / update_settings):
voice, model, language, loudness_normalization, text_normalization.
List available voices and their supported models via the Speechify
/v1/voices endpoint. Audio is raw 16-bit
little-endian PCM at 24 kHz mono; simba-3.2 is the default and recommended for
the lowest time-to-first-audio.
examples/bot.py is a complete voice agent (Deepgram STT +
OpenAI LLM + Speechify TTS):
cd examples
cp .env.example .env # SPEECHIFY_API_KEY, DEEPGRAM_API_KEY, OPENAI_API_KEY
uv run --with "pipecat-speechify[examples]" bot.pyThen open the printed local URL to talk to the agent.
Tested with Pipecat v1.5.0. Requires Python 3.11+.