Local speech recognition & synthesis

A Home Assistant voice satellite that listens and answers without leaving the house

A command-only model finishes under a second; a model that transcribes everything can take 8 s depending on the box.

An Assist round trip has four stages: wake word, transcription, processing and synthesis. The choice of transcription engine changes perceived latency the most, and Piper handles synthesis. This guide covers satellite placement and the conditions that keep latency down.

Requirements and key details
  • The Assist pipeline runs wake word, transcription, processing, then synthesis.
  • Speech-to-Phrase finishes under a second even on a Green or Pi 4, but only understands a closed set of commands.
  • Whisper takes about 8 s on a Pi 4 and under a second on an Intel NUC.

The satellite only exchanges audio

A voice satellite is a device with a microphone and a speaker. It detects the wake word itself, opens a connection to Home Assistant and streams your speech. Home Assistant does the reasoning and the storage; the satellite only moves audio.

That is why several satellites can share one pipeline1. Put a satellite in each room and point them at the same transcription and synthesis services, and you speak the same way wherever you are.

An audio waveform displayed on a laptop beside a microphone
The satellite sends audio only; turning it into text happens on a server inside the house.

Choosing the transcription engine

Home Assistant offers two local transcription options: Speech-to-Phrase, which only understands commands, and Whisper, which transcribes everything. They trade speed against range in opposite directions.

For home control alone, Speech-to-Phrase wins: it cannot handle sentences outside its list, but it finishes under a second even on a Green or Pi 4. If you want the transcript for something else, you need Whisper, and a faster host with it.

Scroll sideways to compare all columns.

The two transcription engines
EngineLatencyRangeGood host
Speech-to-PhraseUnder 1 s (Green, Pi 4)Home-control commands; open sentences such as lists or timer names are limitedGreen, Pi 4
WhisperAbout 8 s on a Pi 4, under 1 s on a NUCOpen-ended transcription, passing text to other appsIntel NUC, mini PC, Mac

Piper makes the voice

Piper handles synthesis. It is a local neural text-to-speech2 system that generates 1.6 s of speech per second even on a Pi 4. Short answers synthesize quickly, so this stage is rarely the bottleneck.

Voice quality varies a lot by language and model. For Korean, pick a Korean voice model and listen to the same sentence a few times to check pronunciation and pace.

The install order

1) Install the Whisper and Piper apps on Home Assistant. 2) The Wyoming3 integration discovers the services; if it does not, enter the host and port yourself. 3) In Voice assistants, create a pipeline and choose the wake word, transcription, synthesis and conversation agent.

4) Add the satellite and assign that pipeline. 5) Turn on one light by voice and note the response time and any misheard sentence. If you installed the apps on another machine, add that machine's address in the Wyoming integration.

An open book, a small computer, and a speaker sit on a desk by a window.
One satellite per speaker location lets every room share the same pipeline.

Conditions that cut latency

The transcription host is the biggest variable: an 8 s transcription on a Pi 4 drops under a second on an Intel NUC. Wire the satellite and Home Assistant, and put the transcription server on the same switch to cut network waits.

Add a conversation model and its response time joins the total. Instruct it to answer briefly, and run it on the same host as transcription to remove one network hop.

Limits and checks

Speech-to-Phrase cannot understand words outside its list. Adding items to a shopping list or naming a timer needs Whisper. Whisper alone, on a slow host, means waiting 8 s.

Korean quality differs by model, so say the same sentence three times and switch models if it mishears often. Running cloud speech for a while to compare is also reasonable.

A microphone, headphones, and a monitor showing an audio waveform.
Splitting transcription from synthesis lets you move only the slow part to another machine.

Terminology notes

  1. Pipeline — A sequence of processing stages from input to output. Different models or tools may be used at each stage.

    Back to the text
  2. Text-to-Speech — Technology that converts text into spoken audio with pronunciation and prosody.

    Back to the text
  3. Wyoming — The protocol Home Assistant and voice services use to exchange audio and text. It has no authentication or encryption, so it is used on trusted networks only.

    Back to the text

Frequently asked questions

What should you check first in this article?
An Assist round trip has four stages: wake word, transcription, processing and synthesis. The choice of transcription engine changes perceived latency the most, and Piper handles synthesis. This guide covers satellite placement and the conditions that keep latency down.