How do you set up a fully local home voice assistant?
Updated November 3, 2026.
Home Assistant's documentation says its voice feature, Assist, can run entirely on your own hardware, and that your spoken commands never leave your home: a microphone hears you, a local speech-to-text engine turns your voice into text, Home Assistant works out what you want, and a local text-to-speech engine speaks the answer. This page follows that guide and adds the optional step of a local language model through the Ollama integration.
What you need
The guide lists the prerequisites. For listening and talking back you need a phone with the Home Assistant app or a voice activated device. For understanding you need speech-to-text and text-to-speech software integrated. For running everything together the guide says you need Home Assistant Operating System running. The guide also names an alternative if you would rather not run these parts yourself: the voices included with Home Assistant Cloud. That route is not the fully local one, so choose it deliberately.
Choosing a speech-to-text engine
There are currently two local speech-to-text options, Speech-to-Phrase and Whisper. Speech-to-Phrase is a close-ended model that transcribes what it knows. The guide describes it as extremely fast, under one second even on a Home Assistant Green or a Raspberry Pi 4, but it supports only a subset of Assist's voice commands, and open-ended items such as shopping lists, naming a timer and broadcasts are not usable out of the box. Whisper is an open-ended model that tries to transcribe everything, at the cost of speed: around 8 seconds per voice command on a Raspberry Pi 4, and under a second on an Intel NUC. The guide says Whisper is a good option when you have powerful hardware at home or plan to go beyond simple home control, for example by pairing the assistant with an agent built on a language model.
Choosing a text-to-speech engine
For speech output the guide points to Piper, which Home Assistant describes as a fast, local neural text-to-speech system optimized for the Raspberry Pi 4. On a Raspberry Pi with medium quality models it can generate 1.6 seconds of voice in a second. The guide also tells you to check how each option works in your language, because quality can change quite a bit. Our page on local text to speech covers the same job outside Home Assistant.
Putting the pipeline together
The guide's steps are short. Install the speech-to-text app you chose and the Piper app, then start them. Under Settings, then Devices and services, both should be discovered by the Wyoming integration, and you select Add for each. Next go to Settings, then Voice assistants, and select Add assistant. Enter a name and a language, set the conversation agent to Home Assistant, pick your speech-to-text engine, and pick Piper for text-to-speech. Finally expose your devices to Assist, because otherwise you cannot control them by voice.
Adding a local language model
Home Assistant's Ollama integration adds a conversation agent powered by a local Ollama server. It requires an external Ollama server, which is available for macOS, Linux and Windows, and the server must be configured to be reachable over the network. In the integration's options you give the server URL, such as http://localhost:11434, and a model name, and models are downloaded automatically during setup. Home Assistant defaults the context window to 8k, larger than the Ollama server default of 2k, and says smaller values may lower the server's memory use.
Letting the model control the home is marked experimental. The integration page recommends exposing fewer than 25 entities, warns that smaller models are more likely to make mistakes, and says only models that support tools may control Home Assistant. It suggests two Ollama entries on the same model, one for conversation and one with control enabled. Before choosing a model, see how much GPU memory a local AI model needs.
Frequently asked questions
Which parts of the pipeline have to be local?
All of them for a fully local assistant. The guide describes a local speech-to-text engine and a local text-to-speech engine, and the Home Assistant conversation agent works with them. If you add the Ollama integration, the server it points to should also be on your own network.
Should I use Speech-to-Phrase or Whisper?
Home Assistant describes Speech-to-Phrase as very fast but limited to a subset of voice commands, and Whisper as open-ended but slower. Whisper takes about 8 seconds on a Raspberry Pi 4 and under a second on an Intel NUC, per the guide.
Can a local assistant answer open-ended questions?
The Ollama integration adds a conversation agent powered by a local Ollama server. Control of devices through it is experimental, and the documentation says only models that support tools may control Home Assistant.
Does the Ollama server have to run on the same machine as Home Assistant?
No. The integration asks for the URL of an external Ollama server, such as http://localhost:11434, and the server needs to be reachable over the network.
Related
- Local text to speech on your own hardware
- Offline voice transcription on a home server
- How do you secure a home AI server?
Sources
- Home Assistant documentation, set up a fully local voice assistant
- Home Assistant documentation, Ollama integration
- Home Assistant documentation, Piper integration
Sources checked November 3, 2026. Figures that depend on your exact model, runtime or machine are estimates; check the source or test on your own hardware.
Adults only (18+). Private uncensored AI · Terms · Privacy · All guides