DEV Community

Nucleus OS
Nucleus OS

Posted on

How to Run Text-to-Speech Locally on a Mac Without Cloud APIs

We built Sovereign Voice because we were tired of paying per character for cloud TTS. Here's how to run text-to-speech entirely on your Mac, with zero cloud dependency.

Why local TTS?

Cloud TTS services (ElevenLabs, PlayHT, Murf) are great — until you see the bill. A 10-minute voiceover costs $2-5 in API credits. A YouTube channel producing daily content burns through $100-300/month just in TTS fees.

Local TTS used to mean robotic, low-quality voices. Not anymore. With Apple Silicon (M1+) and the MLX framework, you can run production-quality TTS on your laptop.

The stack: Qwen3-TTS + MLX

Qwen3-TTS is a 0.6B parameter text-to-speech model from Alibaba, licensed under Apache-2.0. The 8-bit quantized version runs through Apple's MLX framework on the Metal GPU.

What you need:

  • Any Apple Silicon Mac (M1, M2, M3, M4)
  • Python 3.11
  • ~2GB disk space for the model
  • The mlx-audio package

Setting it up

# Create a venv
python3.11 -m venv mlx-tts-env
source mlx-tts-env/bin/activate

# Install mlx-audio
pip install mlx-audio

# Generate speech
python -c "
from mlx_audio.tts.generate import load_model

model = load_model('mlx-community/Qwen3-TTS-12Hz-0.6B-Base-8bit', lazy=False)
model.generate_to_file(
    text='Hello world, this is local text to speech running on Apple Silicon.',
    file_path='output.wav',
    ref_audio='reference.wav',  # 10-30s of your voice
    ref_text='This is the text that was spoken in the reference audio.'
)
"
Enter fullscreen mode Exit fullscreen mode

The first run downloads ~1.9GB from HuggingFace. After that, everything runs locally — no internet needed.

Voice cloning with zero-shot

The magic is in the ref_audio + ref_text pair. You provide:

  1. A 10-30 second recording of someone speaking
  2. The exact transcript of what they said

The model uses this as a conditioning signal — it "understands" what the voice sounds like and generates new speech in that voice. No fine-tuning, no training, no GPU cluster. Just one forward pass on your Mac.

Quality: We measured Whisper WER (Word Error Rate) at 0.038 p50 on a held-out set — that's 96.2% accuracy, comparable to cloud services for English.

Identity: We measured ECAPA-TDNN cosine similarity at 0.699 mean — inside the same-person baseline (0.748 mean). The cloned voice is biometrically indistinguishable from another recording of the same speaker.

Latency: what to expect

On an M4 Mac:

  • First audio chunk: 0.95s
  • Full 12-word sentence: 5.9s
  • Generation speed factor: 0.775x (faster than real-time for streaming)

On an M1 (base, 8GB):

  • Expect 2-3x slower than M4
  • Still usable for non-real-time use cases (voiceovers, audiobooks)

The cost math

Approach Cost per 10-min voiceover Monthly cost (daily content)
ElevenLabs $2-5 $60-150
PlayHT $1-3 $30-90
Google Cloud TTS $0.80 $24
Local Qwen3-TTS $0 $0 (after one-time model download)

The tradeoff: you need an Apple Silicon Mac, and the quality isn't quite ElevenLabs-level for every voice. But for most use cases — voiceovers, narration, accessibility tools — it's more than good enough.

Privacy: the real advantage

Every cloud TTS call sends your text to a server. That server logs it, may train on it, and stores it. For sensitive content (internal company videos, personal messages, healthcare narration), this is a dealbreaker.

Local TTS means:

  • Your text never leaves your machine
  • No API keys to manage or leak
  • No rate limits
  • No usage tracking
  • Works offline (on a plane, in a cabin, during an outage)

Beyond the CLI: wrapping it in an app

We wrapped this exact stack in Sovereign Voice, a Mac app that:

  • Bundles the model in the DMG (no first-launch download)
  • Provides a GUI for voice cloning (record 30s, type text, get audio)
  • Includes Studio mode with Whisper WER grading
  • Supports long-form synthesis (chunk + stitch)
  • Works fully offline after install

It's $19 one-time (no subscription). Free to try with 25 generations.

But the underlying stack — Qwen3-TTS + MLX — is open source and free. If you're a developer, you can build your own wrapper in an afternoon.

What's next for local TTS

The 0.6B model is just the start. Larger models (1.7B, 7B) are already available in MLX format. As Apple Silicon gets faster and models get more efficient, the gap between local and cloud TTS will close entirely.

The question isn't "will local TTS match cloud quality" — it's "when will cloud TTS justify its cost over a free local alternative."


We build Sovereign Voice and Nucleus OS at Eidetic Works. Sovereign Voice is a $19 local-first TTS Mac app. Nucleus OS is an open-source agent control plane.

Top comments (0)