Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pipecat Speechify TTS

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.

Installation

pip install pipecat-speechify
# or
uv add pipecat-speechify

Set your Speechify API key (get one at platform.speechify.ai/api-keys):

export SPEECHIFY_API_KEY=sk_...

Usage

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
)

Pipecat Pipeline

pipeline = Pipeline([
    transport.input(),
    stt,
    user_aggregator,
    llm,
    tts,                     # <-- Speechify TTS
    transport.output(),
    assistant_aggregator,
])

Configuration

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.

Voices and models

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.

Example

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.py

Then open the printed local URL to talk to the agent.

Compatibility

Tested with Pipecat v1.5.0. Requires Python 3.11+.

License

BSD-2-Clause

Releases

Packages

Contributors

Languages