Skip to main content
PromptQuorum
Home/Power Local LLM/Best Local TTS Engine for Raspberry Pi (2026)
Voice, Speech & Multimodal

Best Local TTS Engine for Raspberry Pi (2026)

Β·13 min readΒ·By Hans Kuepper Β· Founder of PromptQuorum, multi-model AI dispatch tool Β· PromptQuorum

Piper is the best local text-to-speech engine for a Raspberry Pi. It is an ONNX Runtime-based neural TTS engine created inside the Rhasspy offline voice-assistant project by Michael Hansen specifically for resource-constrained, embedded hardware, it needs no GPU, and it remains Home Assistant's default local voice for exactly that reason. Install it with pip install piper-tts. For higher voice quality at a real resource cost, see the Kokoro and Coqui TTS/XTTS v2 sections below β€” both are heavier and less proven on Pi-class CPUs.

Choosing a local text-to-speech engine for a Raspberry Pi means choosing for a CPU-only, memory-constrained ARM board β€” not a desktop GPU. Piper is the clear default recommendation for this exact hardware class: it was built inside the Rhasspy offline voice-assistant project specifically to run in real time on devices like a Raspberry Pi, and it remains the default local TTS engine in Home Assistant's voice pipeline today. This guide compares Piper against the realistic alternatives β€” Kokoro, the Coqui TTS toolkit and XTTS v2, and the older espeak-ng synthesizer β€” scored specifically on Pi-fitness: RAM footprint, CPU-only feasibility, install complexity, and voice-quality trade-off.

Best Local TTS Engine for Raspberry Pi (2026)

Key Takeaways

  • Piper: purpose-built for embedded/CPU-only hardware, no GPU needed, real-time on a Raspberry Pi 4.
  • Kokoro (82M parameters, Apache-2.0): more natural voice quality, no documented Pi real-time benchmark β€” more realistic on a Pi 5 than a Pi 4.
  • Coqui TTS / XTTS v2: adds voice cloning, assumes GPU acceleration, not a good CPU-only Pi fit.
  • espeak-ng: the lightest option, robotic-sounding, a fallback rather than a first choice.
  • Pi 5 (Cortex-A76, 2.4GHz) is a meaningfully faster CPU than Pi 4 (Cortex-A72, up to 1.8GHz) for any of these.
  • Piper install is one command: pip install piper-tts, then download a voice model.

πŸ“ In One Sentence

Piper is the best local TTS engine for a Raspberry Pi because it was built inside the Rhasspy offline voice-assistant project specifically for CPU-only, embedded hardware, needs no GPU, and is Home Assistant's default local voice for that reason; Kokoro sounds more natural but has no documented real-time Pi benchmark, and Coqui TTS/XTTS v2 assume GPU acceleration.

πŸ’¬ In Plain Terms

If you want your Raspberry Pi to speak out loud without an internet connection, Piper is the tool made for exactly that job β€” install it, download a voice, and it talks in real time on a $35-and-up board. The fancier options (Kokoro, XTTS v2) sound better but were not designed with a Raspberry Pi's limited CPU in mind.

πŸ“ŒNote: This guide covers CPU-only synthesis speed and Pi-fitness, not voice cloning. For voice cloning specifically, see PromptQuorum's dedicated review of XTTS v2, which explicitly is not recommended for Pi-class CPUs.

What Makes a TTS Engine Fit for a Raspberry Pi?

A Raspberry Pi-fit TTS engine needs to run without a GPU, fit its model and runtime in a few hundred megabytes of RAM, and generate audio faster than real time on a quad-core ARM CPU. A Raspberry Pi has no discrete GPU worth using for TTS inference β€” every engine here runs on the CPU, so the deciding factor is how efficiently each one was built for that constraint, not raw model quality in isolation.

  • No GPU dependency. A Raspberry Pi has no CUDA-capable GPU; an engine that assumes GPU acceleration for acceptable speed is disqualified for real-time use, even if it technically runs on CPU as a fallback.
  • RAM footprint. A Raspberry Pi 4 tops out at 8 GB total RAM shared with the OS and any other running services (Home Assistant, a wake-word detector); a TTS engine that needs multiple gigabytes just to load leaves little room for anything else.
  • Install complexity. A single pip install with prebuilt ARM wheels is a very different proposition from a toolkit that expects a GPU-oriented dependency chain (CUDA, cuDNN) that does not apply on a Pi.
  • Voice quality trade-off. Every engine on this list trades some quality for speed; the question is which trade-off is right for your use case β€” a smart-speaker announcement has different quality needs than a voice-cloning project.

Piper vs Kokoro vs Coqui TTS/XTTS v2 vs espeak-ng on Raspberry Pi Fitness

Piper scores best on every Pi-specific criterion except raw voice quality, where Kokoro and XTTS v2 lead. The table below scores each engine on the four criteria that actually matter for Raspberry Pi deployment, not general TTS benchmarks run on desktop or server hardware.

Engine
RAM footprint
CPU-only feasibility
Install complexity
Voice quality
PiperLow (model files typically well under 100 MB per voice)Designed for it; widely reported real-time on Pi 4One command: pip install piper-ttsGood, natural-enough neural voices; no cloning
KokoroModerate (82M-parameter model, ~327 MB weights)Runs on CPU; no documented Pi real-time benchmarkPython package + model download; more dependencies than PiperHigher β€” near the top of independent TTS-quality rankings
Coqui TTS / XTTS v2High; GPU VRAM assumed for documented latency figuresPoor; PromptQuorum's own XTTS v2 review flags CPU-only Pi use as impracticalToolkit install plus license acceptance (CPML for XTTS v2)Highest β€” including 6-second voice cloning across 17 languages
espeak-ngMinimal (a few megabytes)Trivial; runs on almost any hardware including microcontrollersAvailable via most Linux package managers directlyMechanical, formant-synthesis sound β€” not natural speech

Why Piper Is the Default Recommendation for a Raspberry Pi

Piper is the default recommendation because it was designed for this exact hardware class, not adapted to it after the fact. It originated inside Rhasspy, an open-source toolkit for building fully offline voice assistants β€” a project whose entire premise is running speech recognition and synthesis on local, often modest hardware, including Raspberry Pi boards, without a round trip to a cloud API.

  • Built for embedded and resource-constrained devices. Piper uses a neural, VITS-style architecture exported to ONNX Runtime for fast CPU inference β€” a deliberate choice for hardware that has no GPU to fall back on.
  • Still the default in Home Assistant. Piper is the default local text-to-speech engine in Home Assistant's voice pipeline, maintained by the Open Home Foundation, the same nonprofit that stewards Home Assistant β€” and a large share of Home Assistant installs run on a Raspberry Pi.
  • No GPU required, ever. Optional CUDA GPU acceleration exists for higher throughput on desktop hardware, but it is not required β€” Piper is designed to run in real time on CPU alone.
  • No voice cloning β€” a fixed voice catalog instead. Piper ships dozens of pre-trained voices across 20+ languages rather than cloning a voice from a sample; that is a real trade-off against XTTS v2, but it is also what keeps Piper's resource footprint small enough for a Raspberry Pi.

Kokoro: Higher Quality, Heavier Cost

Kokoro is an 82-million-parameter, Apache-2.0-licensed TTS model derived from StyleTTS2 that produces noticeably more natural speech than Piper, at a real resource cost that has not been documented specifically for Raspberry Pi hardware. Unlike Piper, Kokoro was not built with embedded ARM devices as a primary target β€” it was built to be small and fast relative to larger TTS models on general-purpose hardware, which is a different design goal than real-time performance on a Raspberry Pi's CPU specifically.

  • 82M parameters, ~327 MB of weights. That is small compared to a large voice-cloning model, but still meaningfully heavier than a single Piper voice, which typically runs well under 100 MB.
  • Apache-2.0 license. Permissive and commercial-friendly β€” no CPML-style non-commercial restriction, unlike XTTS v2.
  • No documented real-time Raspberry Pi benchmark. PromptQuorum could not find a published, sourced benchmark showing Kokoro running in real time specifically on Raspberry Pi 4 or Raspberry Pi 5 hardware. Treat any real-time claim for Kokoro on a Pi as unverified until you benchmark it yourself.
  • A Raspberry Pi 5 is the more realistic target. Its Cortex-A76 CPU at 2.4GHz delivers meaningfully more compute than a Raspberry Pi 4's Cortex-A72, which matters more for a heavier model like Kokoro than for the lighter Piper.

Coqui TTS and XTTS v2: When Voice Cloning Matters

Coqui TTS and its XTTS v2 model add voice cloning from as little as 6 seconds of reference audio, but both assume GPU acceleration and are not a realistic fit for CPU-only Raspberry Pi hardware. If your project genuinely needs to clone a specific voice rather than use a pre-trained one, this is the only option on this list that does it β€” but plan to run it elsewhere and stream the audio to the Pi, not run it on the Pi itself.

  • XTTS v2 clones a voice from 6 seconds of audio across 17 languages, per its official Hugging Face model card β€” see PromptQuorum's full XTTS v2 review for install commands and license details.
  • GPU is strongly recommended, and CPU-only use is not practical for real-time applications, per PromptQuorum's own XTTS v2 review β€” a Raspberry Pi has no discrete GPU, so real-time XTTS v2 inference on-device is not realistic.
  • XTTS v2's license, the Coqui Public Model License (CPML), is non-commercial β€” a separate consideration from the hardware fit. See the local TTS licensing guide for the full comparison.
  • A common pattern for Pi projects that need cloned voices: run XTTS v2 on a separate always-on server or desktop with a GPU, generate the audio there, and send the resulting audio file or stream to the Raspberry Pi for playback β€” rather than running inference on the Pi itself.

espeak-ng: The Lightweight Fallback

espeak-ng is a formant-synthesis TTS engine that runs on almost any hardware, including microcontrollers, but sounds mechanical rather than natural. It predates the neural TTS engines on this list by over a decade and is not a genuine competitor on voice quality β€” it is included because it is the floor: the option with essentially no resource requirements at all.

  • Runs on essentially anything. espeak-ng needs only a few megabytes of memory and no neural network runtime, making it viable even on hardware far below a Raspberry Pi's specs.
  • Sounds robotic. Its formant-synthesis approach β€” generating speech from acoustic rules rather than a trained neural model β€” produces intelligible but clearly synthetic-sounding speech, a poor fit for a voice assistant or announcement system meant to sound natural.
  • Still useful as a phonemizer. Piper itself uses espeak-ng internally for text-to-phoneme conversion, even though Piper's own audio output comes from its neural model, not from espeak-ng directly.
  • Choose it only when RAM or CPU is so constrained that even Piper is not viable β€” for example, a microcontroller-class device rather than a Raspberry Pi.

How to Install Piper on a Raspberry Pi

Installing Piper on a Raspberry Pi is a single pip install followed by downloading one voice model β€” no GPU drivers, no CUDA, no compilation step. These are the same commands documented in PromptQuorum's dedicated Piper TTS review, applied specifically to a Raspberry Pi running Raspberry Pi OS (or another Debian-based ARM Linux distribution).

  1. 1
    Update the system and install Python 3
    Why it matters: Raspberry Pi OS ships with Python 3 preinstalled on recent images, but run `sudo apt update && sudo apt upgrade` first to make sure pip and system packages are current before installing anything new.
  2. 2
    Install Piper with pip
    Why it matters: Run `pip install piper-tts` (or `pip3 install piper-tts` depending on your image). This installs the `piper` package along with its ONNX Runtime dependency β€” prebuilt ARM wheels mean no compilation step on a Raspberry Pi.
  3. 3
    Download a voice model
    Why it matters: Run `piper --download-dir voices --update-voices --voice en_US-lessac-medium` (substitute any voice from the Piper voices catalog on Hugging Face). A medium-quality voice is the right default for a Raspberry Pi β€” it is faster than a high-quality voice with a difference in output that is negligible over a typical speaker.
  4. 4
    Generate speech from text
    Why it matters: Pipe text into Piper from the command line, for example `echo "Hello from the Raspberry Pi." | piper --model voices/en_US-lessac-medium.onnx --output_file output.wav`, then play the resulting WAV file with `aplay output.wav`.
  5. 5
    Wire it into a project
    Why it matters: For a full voice-assistant pipeline (wake word, speech recognition, an LLM, and Piper for the response), see PromptQuorum's [step-by-step offline voice assistant build guide](/power-local-llm/build-local-voice-assistant-2026); for Home Assistant specifically, Piper is already the default TTS engine in the voice pipeline settings.

Raspberry Pi 4 vs Raspberry Pi 5 for Text-to-Speech

A Raspberry Pi 5 has a meaningfully faster CPU than a Raspberry Pi 4, which matters more for heavier engines like Kokoro than for the already lightweight Piper. Both boards run Piper in real time, but the CPU gap widens the realistic option set once you consider anything heavier.

  • Raspberry Pi 4: a quad-core Arm Cortex-A72 CPU running at up to 1.8GHz, with RAM configurations up to 8 GB. Sufficient for real-time Piper synthesis; not a realistic target for Kokoro or XTTS v2 in real time.
  • Raspberry Pi 5: a quad-core Arm Cortex-A76 CPU (BCM2712) running at 2.4GHz, with RAM configurations up to 16 GB β€” a documented 2–3x CPU performance increase over the Raspberry Pi 4. This is the board to use if you want to experiment with Kokoro instead of Piper.
  • Neither board changes the GPU-acceleration story. Both lack a discrete, CUDA-capable GPU, so Coqui TTS and XTTS v2 remain impractical for real-time on-device inference on either generation.
  • RAM matters beyond the TTS engine itself. If the same board also runs Home Assistant, a wake-word detector, or a local LLM for a full voice-assistant pipeline, the lightweight engines (Piper, then espeak-ng) leave more headroom for those other processes than Kokoro or Coqui TTS would.

Frequently Asked Questions

What is the best local TTS engine for a Raspberry Pi?

Piper is the best local TTS engine for a Raspberry Pi for most use cases. It was built inside the Rhasspy offline voice-assistant project specifically for CPU-only, embedded hardware, needs no GPU, and remains Home Assistant's default local TTS engine for that reason. It is widely reported to run in real time on a Raspberry Pi 4.

Does Piper need a GPU to run on a Raspberry Pi?

No. Piper is designed to run in real time on CPU-only hardware, including a Raspberry Pi. Optional CUDA GPU acceleration exists for higher throughput on desktop hardware, but it is not required and a Raspberry Pi has no discrete GPU to use for it anyway.

Can Kokoro run in real time on a Raspberry Pi?

PromptQuorum could not find a documented, sourced real-time benchmark for Kokoro specifically on Raspberry Pi hardware. Kokoro is an 82-million-parameter model that runs on CPU in general, but it was not purpose-built for embedded ARM devices the way Piper was. It is more realistic to test on a Raspberry Pi 5, with its faster Cortex-A76 CPU, than on a Raspberry Pi 4 β€” benchmark it yourself before relying on it for a live, interactive use case.

Why not use XTTS v2 for voice cloning on a Raspberry Pi?

XTTS v2 assumes GPU acceleration for its documented low-latency performance, and PromptQuorum's own review of XTTS v2 states that CPU-only use is not practical for real-time applications. A Raspberry Pi has no discrete GPU, so real-time XTTS v2 inference on-device is not realistic. A common workaround is running XTTS v2 on a separate GPU-equipped server and streaming the resulting audio to the Raspberry Pi.

Is Piper free to use commercially?

The actively maintained Piper repository, OHF-Voice/piper1-gpl, is licensed under GPL-3.0-or-later, a change from the MIT license of the original, now-archived rhasspy/piper repository. GPL-3.0 permits commercial use of Piper as a tool, but requires releasing modifications to Piper's own source code under the same license if you distribute them. See PromptQuorum's full Piper TTS review for the complete licensing history β€” this is not legal advice.

What is the difference between a Raspberry Pi 4 and a Raspberry Pi 5 for text-to-speech?

A Raspberry Pi 5 uses a quad-core Arm Cortex-A76 CPU (BCM2712) at 2.4GHz with RAM configurations up to 16 GB, a documented 2–3x CPU performance increase over the Raspberry Pi 4's quad-core Cortex-A72 at up to 1.8GHz with RAM up to 8 GB. Both run Piper in real time; the Pi 5's extra headroom matters more if you want to experiment with a heavier engine like Kokoro.

Does Piper support languages other than English?

Yes. Piper ships pre-trained voices across 20+ languages, though it does not clone a specific person's voice β€” it uses fixed, pre-trained voices per language rather than cloning from a sample the way XTTS v2 does.

What is espeak-ng and when should I use it instead of Piper?

espeak-ng is a formant-synthesis TTS engine that runs on almost any hardware, including devices below a Raspberry Pi's specs, but sounds mechanical rather than natural. Use it only when RAM or CPU is so constrained that even Piper is not viable β€” for most Raspberry Pi projects, Piper is the better default. Piper itself uses espeak-ng internally for text-to-phoneme conversion.

How much RAM does Piper need on a Raspberry Pi?

Piper's per-voice model files are typically well under 100 MB, and the engine does not require multiple gigabytes of RAM to run, which is a meaningful advantage on a Raspberry Pi 4 with as little as 2 GB of total RAM shared with the operating system and any other running services.

Verdict

Piper is the right default choice for local text-to-speech on a Raspberry Pi, and this is not a close call: it was designed inside the Rhasspy offline voice-assistant project specifically for CPU-only, embedded hardware, needs no GPU, installs with one command, and remains Home Assistant's default local voice for exactly those reasons. Use Kokoro instead if voice quality matters more than a guaranteed real-time response, and only after benchmarking it yourself on your specific Raspberry Pi model β€” its documented real-time performance is on general hardware, not Pi-class ARM boards specifically. Use Coqui TTS or XTTS v2 only if you genuinely need voice cloning, and plan to run inference on a separate GPU-equipped machine rather than on the Pi itself. Reach for espeak-ng only as a last resort on hardware too constrained even for Piper. If unsure, start with Piper β€” it is the tool this hardware class was built to run.

Sources

← Back to Power Local LLM