For one person, ElevenLabs boils down to text in, spoken audio out, in a few voices you choose, saved as MP3 or WAV. Open-weight models have caught up enough that this runs on your own machine: Kokoro on a plain CPU, and Chatterbox or Qwen3-TTS on a graphics card when you want to clone a voice from a short clip. An agent can wrap one of them in a local app in a weekend. What stays behind is the polish ElevenLabs is still the reference for on long-form and expressive reads, wider language coverage, licensed library voices, dubbing and the voice-agent platform. For narration and drafts it is a fair swap; for client work or other languages, keep the subscription.
Before you buildElevenLabs Free gives about 10 minutes of speech a month, and Starter at $6 adds a commercial license and instant cloning. For a few minutes of audio a month, the subscription costs less than the time to build.
Build me a local text-to-speech studio to replace ElevenLabs for narration. Requirements: - Python 3.11 FastAPI backend and a plain HTML + vanilla JS front end on http://127.0.0.1:4950. `uv run app.py` starts it. ffmpeg and espeak-ng must be installed; check both at startup. - Engines: Kokoro (the `kokoro` package, runs on CPU) for stock voices, and Chatterbox (`chatterbox-tts`) for cloning from a 10 to 30 second clip. Pick the device automatically (CUDA, then MPS, then CPU) and show it in the footer. Without a suitable GPU, disable cloning with a reason. - Text box with a character counter. Split long text at sentence ends into chunks under 300 characters, render them one at a time with a progress bar and join them with 150 ms of silence. - Voices: list the Kokoro voices with a preview button. "Add voice" uploads a reference clip into ./data/voices/<name>/ and requires a tick on "this is my voice or I have permission to use it". - Controls: speed from 0.7 to 1.3; for Chatterbox, exaggeration and cfg weight sliders. - Output: save each generation to ./data/history/<date>-<slug>.wav, convert to mp3 on demand, and list them in a History tab with replay, download and delete. Keep the text, voice and settings in SQLite at ./data/studio.db. - Pronunciation: a word -> respelling dictionary applied before synthesis, saved per voice. - Self-test: a Test button speaks one 20 word sentence with every voice and prints seconds taken per second of audio. - No accounts, no telemetry, local-first; model weights download once from Hugging Face. - Out of scope: dubbing, voice design, speech-to-text, sound effects, music, API keys, multiple users. - README: install steps per OS, the VRAM cloning needs, speed measured on this machine, and a note that cloning someone's voice without permission is not allowed.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own ElevenLabs.
Add document narration to the speech studio in this folder. Requirements: - Accept a Markdown, plain text or EPUB file and split it by headings or chapters. - Render each chapter in the background with a queue that survives a restart and can resume. - Join the chapters into one .m4b with chapter markers using ffmpeg metadata. - Show per-chapter progress and the estimated time left. - Update the README with the supported formats.
Add an OpenAI-compatible speech endpoint to the speech studio in this folder. Requirements: - POST /v1/audio/speech with `model`, `input`, `voice` and `response_format` (mp3, wav, opus). - Map `voice` to the Kokoro voices and saved clones; return a 400 with the list of valid names otherwise. - Bind to 127.0.0.1 only and require a bearer token from API_TOKEN in .env. - Stream the audio as chunks finish. - Update the README with a curl example.
Add an ElevenLabs history importer to the speech studio in this folder. Requirements: - Read ELEVENLABS_API_KEY from .env, page through the history endpoint, and download each audio file with its text and voice name. - Save them into ./data/history/ and the SQLite table, skipping items already imported. - Respect rate limits and print a summary of items, minutes and failures. - Do not try to copy voices; list the cloned voices by name so I know which samples to keep. - Update the README.
Add captions to the speech studio in this folder. Requirements: - After each generation, run faster-whisper on the audio and write an .srt with lines of at most 42 characters next to the audio file. - Compare the transcript with the input text and warn when more than 3% of words differ. - A Captions toggle per generation and a download button in the History tab. - Update the README.
Creators pay for output they can ship without tuning: choose a voice, paste a script and get narration with natural pacing, in many languages, under a license that covers commercial use. Dubbing, sound effects and an API sit under the same plan, so one subscription replaces several tools. Running open models yourself swaps that for GPU setup, model choices and your own quality checks.
Estimate · Free on a PC or Mac you already own, apart from electricity. Without a suitable GPU the running cost is renting one by the hour. The build is token usage on your agent plan.
Checked 2026-10-14 against ElevenLabs's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | 10,000 credits a month, about 10 minutes of audio, 3 custom voices, 2 concurrent requests. |
| Starter | $6 | $5 | 30,000 credits (about 30 minutes), commercial license, instant voice cloning, 10 custom voices, dubbing studio. |
| Creator | $22 | $18.33 | 121,000 credits (about 2 hours), professional voice cloning, 30 custom voices, 5 concurrent requests. |
| Pro | $99 | $82.50 | 600,000 credits, 44.1 kHz PCM output through the API, 192 kbps audio, 10 concurrent requests. |
| Scale | $299 | $249.17 | 1.8 million credits, 3 workspace seats, 3 professional voice clones. |
| Business | $990 | $825 | 6 million credits, 10 seats, 10 professional voice clones, low-latency speech from about 5 cents a minute. |
| Enterprise | custom | — | Custom terms, SSO, HIPAA agreements, higher concurrency. |
Free gives 10,000 credits a month (about 10 minutes of speech), 3 custom voice slots and no commercial license.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The polish on long, expressive narration that reviewers still treat as the yardstick, A library of licensed voices you can use commercially.
About $6 a month on the Starter plan, $72 a year (checked 2026-10-14).
The polish on long, expressive narration that reviewers still treat as the yardstick; A library of licensed voices you can use commercially; Dubbing that translates a video and re-voices it in other languages; Speech-to-text, sound effects, music and agent tooling under one account and API; Hosted speed: no GPU, no model downloads, the same result on any laptop. If any of those matter to you, keep paying.
Yes: Voicebox (open source), Kokoro-FastAPI (open source), TTS WebUI (open source).