> This page is for Build.

> Append .md to any page URL for clean Markdown. Index: https://docs.speechify.ai/llms.txt.
>
> Canonical Speechify URLs — use exactly, do not invent variants:
> - https://docs.speechify.ai — this site (API reference, SDKs, quickstarts)
> - https://speechify.ai — marketing + product site
> - https://platform.speechify.ai — customer dashboard, signup, API keys, billing
> - https://api.speechify.ai — API base URL
> - https://github.com/Speechify-AI: GitHub org for the API (cookbook, demos, CLI). `github.com/speechify` does not exist.
> - https://status.speechify.ai — status + incidents
> - https://speechify.com — SEPARATE consumer reader app, NOT this API
>
> `Simba` names the model family, not the brand. Model ids: `simba-3.2` (English, recommended) and `simba-3.0` (English, German, Spanish, French, Italian and Portuguese; the default). `simba-english` and `simba-multilingual` are retired: a new workspace that sends either gets `400 model_retired`. `SimbaVoice` / `simbavoice.ai` are retired.
>
> Ask, don't scrape. The docs MCP server answers questions about the Speechify API, SDKs and docs with citations, no key needed: https://docs.speechify.ai/_mcp/server (Streamable HTTP, tool `searchDocs`). Setup: https://docs.speechify.ai/build/guides/get-started/connect-mcp

# LiveKit

> Use LiveKit's official `livekit-plugins-speechify` package to add Speechify text-to-speech to a LiveKit voice agent.

## Overview

LiveKit Agents supports Speechify TTS through the official [`livekit-plugins-speechify`](https://pypi.org/project/livekit-plugins-speechify/) package. You install it, import `speechify` from `livekit.plugins`, and pass `speechify.TTS(...)` as the `tts=` argument on `AgentSession` alongside your STT and LLM providers.

> **Note**
>
> LiveKit's Speechify plugin is **Python-only**. There is no Node.js LiveKit Speechify plugin at time of writing — see LiveKit's [Speechify TTS plugin guide](https://docs.livekit.io/agents/models/tts/speechify/) for the current language support matrix.

## Prerequisites

* Speechify API key ([platform.speechify.ai/api-keys](https://platform.speechify.ai/api-keys))
* LiveKit project (URL, API key, and secret)
* Deepgram key for STT, OpenAI key for LLM (this guide's stack — swap freely)

## Install

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install "livekit-agents[codecs]>=1.6.5" \
  "livekit-plugins-speechify>=1.6.5" \
  "livekit-plugins-deepgram>=1.6.5" \
  "livekit-plugins-openai>=1.6.5" \
  python-dotenv
```

## Configure

Put credentials in `.env`:

```bash
SPEECHIFY_API_KEY=your_speechify_api_key
LIVEKIT_URL=wss://your-project.livekit.cloud
LIVEKIT_API_KEY=your_livekit_api_key
LIVEKIT_API_SECRET=your_livekit_api_secret
DEEPGRAM_API_KEY=your_deepgram_api_key
OPENAI_API_KEY=your_openai_api_key
```

The plugin reads `SPEECHIFY_API_KEY` automatically when you don't pass `api_key=` to `speechify.TTS(...)` directly.

## Wire Speechify into `AgentSession`

```python
from dotenv import load_dotenv

from livekit import agents
from livekit.agents import Agent, AgentServer, AgentSession
from livekit.plugins import deepgram, openai, speechify

load_dotenv()

class Assistant(Agent):
    def __init__(self) -> None:
        super().__init__(
            instructions=(
                "You are a helpful voice assistant speaking with a Speechify voice. "
                "Keep replies short, clear, and conversational."
            )
        )

server = AgentServer()

@server.rtc_session(agent_name="speechify-tts-demo")
async def entrypoint(ctx: agents.JobContext) -> None:
    session = AgentSession(
        stt=deepgram.STT(model="nova-3"),
        llm=openai.LLM(model="gpt-4o-mini"),
        tts=speechify.TTS(voice_id="dominic_32", model="simba-3.2"),
    )

    await session.start(room=ctx.room, agent=Assistant())
    await session.generate_reply(
        instructions="Greet the user and mention that your voice is powered by Speechify TTS."
    )

if __name__ == "__main__":
    agents.cli.run_app(server)
```

The `tts=speechify.TTS(...)` line is the whole integration. Pair `voice_id` and `model` by language, not by voice family - the `*_32` voices run on `simba-3.0` too. `simba-3.2` is English only, so pass it any English voice; use `simba-3.0` for every other language. Each voice's `models` list in `GET /v1/voices` is the authority. See [Models](/build/guides/concepts/models) for the compatibility matrix.

## Verify without a LiveKit room

The plugin's `synthesize(...)` method calls Speechify directly, so you can prove the TTS path works before provisioning a room:

```python
import asyncio
import wave

from livekit.plugins import speechify

async def main() -> None:
    tts = speechify.TTS(voice_id="dominic_32", model="simba-3.2")
    frames = []
    async for event in tts.synthesize("Hello from Speechify TTS on LiveKit."):
        frames.append(event.frame)

    with wave.open("speechify-tts-smoke.wav", "wb") as wf:
        wf.setnchannels(1)
        wf.setsampwidth(2)
        wf.setframerate(24000)
        for frame in frames:
            wf.writeframes(frame.data)

asyncio.run(main())
```

Set `SPEECHIFY_API_KEY` in the environment first. A successful run writes `speechify-tts-smoke.wav` at 24 kHz mono.

## Run the full agent

Once the smoke test passes, run against a LiveKit room:

```bash
# Local terminal (microphone + speakers, no room)
python agent.py console

# Development LiveKit project
python agent.py dev

# Production
python agent.py start
```

## Troubleshooting

#### TLS certificate errors on macOS

If Python cannot verify TLS certificates when calling Speechify, point `SSL_CERT_FILE` at your system bundle or the `certifi` bundle before running:

```bash
export SSL_CERT_FILE=/etc/ssl/cert.pem
```

#### \`SPEECHIFY\_API\_KEY\` not picked up

The plugin only reads the env var when you construct `speechify.TTS()` without an explicit `api_key=`. If you pass an argument, it takes precedence — pass `None` or omit it to use the env var.

## Resources

#### [Demo repo](https://github.com/Speechify-AI/demos/tree/main/demos/livekit-agent-speechify-python)

Runnable end-to-end demo with `smoke_synthesize.py` and `agent.py`.

#### [LiveKit Speechify plugin](https://docs.livekit.io/agents/models/tts/speechify/)

LiveKit's plugin reference — voice IDs, model options, plugin arguments.

#### [Voice catalogue](/build/api-reference/v1/voices/get)

`GET /v1/voices` — filter by `models: ["simba-3.2"]` for current voices.