Worked examples that pair with the technical posts on speechify.ai/blog. Each folder is self-contained: copy the folder, follow its README, run it.
Demos with a Live link run in your browser at demos.speechify.ai; the rest are clone-and-run.
| Folder | Stack | Live | What it does |
|---|---|---|---|
demos/next-voice-cloning-app/ |
Next.js | Open | Upload a sample, record verified consent in the browser, clone the voice, synthesize with the clone. The API key stays server-side in route handlers. |
demos/ai-sdk-speechify-speech/ |
Next.js + AI SDK | Open | A custom Speechify speech model for the AI SDK's generateSpeech, wired into a Next.js page. The API key stays server-side. |
demos/multilingual-voiceover/ |
Next.js + simba-3.0 | Open | Generate the same line in six languages with a locale-matched simba-3.0 voice. The API key stays server-side. |
demos/captions-speech-marks/ |
TypeScript (native) | Synthesizes audio and builds a WebVTT caption file from the speech marks the API returns in the same response. Karaoke-highlight HTML demo included. | |
demos/voice-cloning-narration/ |
TypeScript (native) | Clones a voice from a 10-30 sec WAV sample, synthesizes with the new voice, deletes the clone. End-to-end lifecycle. | |
demos/audiobook-pipeline/ |
Python (SDK) | Chunks long-form text on sentence boundaries, synthesizes each chunk via the Speechify Python SDK, concatenates the MP3s with ffmpeg. | |
demos/livekit-agent-speechify-python/ |
Python (LiveKit) | Real-time voice assistant using LiveKit's official livekit-plugins-speechify package for TTS, with Deepgram STT and an OpenAI LLM in a LiveKit AgentSession. | |
demos/livekit-captions-speechify-python/ |
Python (LiveKit) | Read Speechify's word-level timestamps in a LiveKit voice agent by overriding transcription_node, so each spoken word logs its start/end time for synced captions. | |
demos/livekit-voice-agent-python/ |
Python (LiveKit) | Legacy Speechify-owned LiveKit TTS demo, with Deepgram STT and an OpenAI LLM in a LiveKit AgentSession. Prefer the official LiveKit plugin demo for new work. | |
demos/livekit-voice-agent-node/ |
TypeScript (LiveKit) | Legacy Speechify-owned LiveKit TTS demo, with Deepgram STT and an OpenAI LLM in a LiveKit AgentSession. | |
demos/ssml-emotion-tts/ |
TypeScript (SDK) | Drives emotion, pauses, prosody, emphasis, and pronunciation with SSML in a single POST /v1/audio/speech request. | |
demos/web-audio-streaming/ |
TypeScript (browser) | Streams Speechify PCM into the browser Web Audio API for low-latency playback, behind a zero-dep proxy that keeps the key server-side. | |
demos/deepgram-voice-agent-shim/ |
Go shim + Node | Points Deepgram Voice Agent at the tts-shims OpenAI-compatible proxy so it speaks with a Speechify voice, key held server-side. | |
demos/vapi-custom-voice/ |
Go shim | Points Vapi custom voice at the tts-shims Vapi-compatible proxy so it speaks with Speechify raw PCM, key held server-side. | |
demos/pipecat-agent-speechify/ |
Python (Pipecat) | Real-time voice pipeline using Pipecat with Deepgram STT, Anthropic Claude, and Speechify TTS through SpeechifyTTSService. | |
demos/mastra-agent-speechify/ |
TypeScript (Mastra) | Text-in, speech-out Mastra Agent using an OpenAI LLM for replies and Speechify's simba-3.2 model for TTS via @mastra/voice-speechify. |
|
demos/voice-agent-showcase/ |
Cloudflare Workers | One page, ten live Voice Agents API demos: calendar booking, policy-bound support, a page copilot, form intake, US outbound calls capped by the agent's own max_call_duration_seconds, a voice gallery, mid-call language handoff, cross-call memory, a grounded knowledge base, and dual-control troubleshooting. | |
demos/ci-pipeline-tts/ |
TypeScript (SDK) | Wire the Speechify TTS API into a CI pipeline so build, test, and deploy events are spoken aloud or dropped into a channel as audio. | |
demos/rss-audio-digest/ |
TypeScript (SDK) | Point it at any RSS feed and it reads today's items into a spoken digest: fetches the feed, concatenates titles and snippets into one script, synthesizes each chunk via the Speechify API, and stitches the parts into a single daily audio file with ffmpeg. | |
demos/vercel-ai-sdk/ |
TypeScript (Vercel AI SDK) | Speechify TTS through the Vercel AI SDK's unified generateSpeech interface via the official @speechify/vercel provider — one-line swap from OpenAI/ElevenLabs, plus word-level speech marks from providerMetadata. |
|
demos/puter-txt2speech/ |
HTML (puter.js) | Speaks with a Simba 3.2 voice via the Speechify provider in Puter's puter.ai.txt2speech() — one static page, your key configured once on the Puter instance. | |
demos/slack-bot-speechify/ |
TypeScript (Socket Mode) | A Slack bot that reads every new message in a channel aloud: on each message it synthesizes the text with the Speechify API and posts the MP3 back as a file. Socket Mode means no public tunnel. | |
demos/discord-bot-speechify/ |
TypeScript (discord.js) | A Discord slash-command bot: /speak synthesizes the text with the Speechify API and posts the MP3 into the channel. The command registers automatically on first run. | |
demos/docs-read-aloud/ |
TypeScript (zero-dep server) | A documentation-style page with a Listen button that reads the article aloud. The button POSTs the text to a tiny server route, which synthesizes it with the Speechify API (key stays server-side) and returns the MP3 for the browser to play. Framework-agnostic. | |
demos/ivr-ssml/ |
Next.js | Open | A phone-system playground for getting names, account numbers, and product terms right with SSML. Hear plain vs SSML side by side; the API key stays server-side. |
demos/webpage-audiobook/ |
Next.js | Open | Paste a URL, get narrated audio. The server fetches the article, extracts the text, chunks it on sentence boundaries, and synthesizes each part with the Speechify TTS API. |
Every demo needs SPEECHIFY_API_KEY. Grab one at platform.speechify.ai/api-keys. Copy .env.example to .env inside the folder you want to run and paste the key in.
Want to add a demo? See CONTRIBUTING.md.