best

Whisper and Piper: how Home Assistant's local voice pipeline fits together

Whisper (speech-to-text) and Piper (text-to-speech) are complementary parts of the Home Assistant Assist pipeline. Here is how they work together locally.

On this page
  1. The Home Assistant Assist pipeline
  2. Whisper: the speech-to-text stage
  3. Piper: the text-to-speech stage
  4. Putting it together
  5. Quick verdict

If you have been searching for “Piper vs Whisper,” you have probably seen them framed as rival voice assistants. They are not. Whisper and Piper do two different jobs, and in a fully local Home Assistant voice setup you typically run both, alongside a wake-word engine. This article explains what each piece actually does so you can build a working local voice assistant instead of trying to pick a winner that does not exist.

The Home Assistant Assist pipeline

Home Assistant’s voice feature is called Assist, and it is built as a pipeline of stages. A spoken command flows through these stages in order:

  1. Wake word detection listens for a trigger phrase so the system isn’t transcribing everything you say. Two engines cover this stage, and the difference is where the listening happens: openWakeWord runs as an add-on on your Home Assistant server, which lets even a bare ESP32 satellite simply stream audio to it; microWakeWord runs on the satellite itself on ESP32-S3 hardware like the Home Assistant Voice Preview Edition, which keeps the load and the network traffic off your server. “Okay Nabu” is a wake word model that both engines offer, not an engine of its own.
  2. Speech-to-text (STT) converts your recorded speech into text. This is where Whisper lives.
  3. Intent recognition matches that text to a Home Assistant action (turn on a light, report a temperature, etc.). For fully local setups this is Home Assistant’s built-in conversation agent, or optionally an LLM.
  4. Text-to-speech (TTS) turns Home Assistant’s text response back into audio. This is where Piper lives.

Each stage is swappable, and many run as add-ons that install in one click from the Home Assistant add-on store. Whisper and Piper communicate with Home Assistant over the Wyoming protocol, which is the glue that lets these voice services plug into Assist.

Whisper: the speech-to-text stage

Whisper is OpenAI’s open-source speech-recognition model. In Home Assistant it runs locally (commonly via the faster-whisper Wyoming add-on) and its only job is transcription: audio in, text out.

A few accurate points worth knowing:

  • Whisper comes in several model sizes (tiny, base, small, medium, and larger). Smaller models run faster on modest hardware like a Raspberry Pi; larger models are more accurate but want more CPU or a GPU.
  • Whisper does not understand commands, manage multiple users, or have “voice profiles.” It transcribes. Understanding the transcribed text is a separate stage (intent recognition). Any claim that Whisper offers natural-language understanding or multi-user profiles is incorrect.
  • If you only need a handful of fixed commands and want something lighter than Whisper, Home Assistant also offers Speech-to-Phrase, a constrained STT option that is faster on weak hardware but limited to predefined sentences.

Piper: the text-to-speech stage

Piper is a fast, local neural text-to-speech engine. It takes Home Assistant’s text response and synthesizes spoken audio. It is the voice you hear, not the ear that listens.

Accurate background:

  • Piper comes from the Rhasspy open-source voice project (created by Michael Hansen / “synesthesiam”) and is now maintained under the Open Home Foundation. It is not a Mozilla project.
  • Piper is optimized to run well on a Raspberry Pi 4 and ships pre-trained voices in many languages. You choose from those pre-trained voices rather than cloning any arbitrary voice. For help choosing one, see local TTS options that actually sound good.
  • Piper is also used behind the scenes to generate training audio for the openWakeWord wake-word system, which is a nice illustration of how these pieces interlock rather than compete.

Putting it together

A common fully local pipeline looks like this:

  • Wake word: openWakeWord on the server, or microWakeWord on an ESP32-S3 satellite (both offer “Okay Nabu”)
  • STT: Whisper (faster-whisper add-on) or Speech-to-Phrase
  • Intent: Home Assistant’s built-in conversation agent
  • TTS: Piper

You install the Whisper, Piper, and wake-word add-ons, then create an Assist pipeline in Settings → Voice assistants and select each component. Point a voice satellite (such as a Home Assistant Voice device or an ESPHome-based satellite) at that pipeline and you have voice control without Amazon or Google that never leaves your network.

Hardware reality check: a Home Assistant Green or a Raspberry Pi 4 can run this, though larger Whisper models and snappier responses benefit from a more powerful mini PC. None of this requires a cloud account.

Quick verdict

There is no “Piper vs Whisper.” Whisper turns your speech into text; Piper turns Home Assistant’s text into speech. Run both (plus a wake-word engine) and you have a complete, private, local voice assistant in Home Assistant. The only real choices are which Whisper model size fits your hardware and which Piper voice you like.

Next steps

Compare this category side by side

If you want fewer opinions and more matrix-style tradeoffs, the comparison pages are the next stop.

See comparisons →

Inspect all products

The full product database keeps the caveats, setup notes, and compatibility details attached to each device.

Browse products →

Back up and read the explainers

If a buying guide feels too specific too fast, the guides section covers the broader local-first logic behind it.

Read guides →

Related articles

Best local-first smart home hubs

The best smart home hubs and controllers for people who care about local control, Home Assistant compatibility, and fewer long-term regrets.

Read article →

Best smart plugs with local control and energy monitoring

The best local smart plugs with energy monitoring for Home Assistant: real local control over Zigbee, Z-Wave, or Wi-Fi plus accurate power data, no cloud.

Read article →

Best local security cameras for Home Assistant

The best Home Assistant-friendly local camera options for buyers who care about RTSP, ONVIF, NVR compatibility, and lower cloud dependence.

Read article →
New guides and product notes, no inbox required. Follow via RSS →