Best apps for hybrid voice control with Home Assistant in 2026

An XDA writer wired a local LLM into Home Assistant for voice control, then turned it off for most of what they said. Keywords handle “kitchen lights on” faster and never misfire, so the LLM only runs when a request is genuinely open-ended. That split is the sane setup for a house full of voice commands, and it lines up with how Assist itself now works: intents first, LLM as fallback. These are the best apps for hybrid voice control with Home Assistant on desktop, the pieces that make the fast path fast and keep the LLM ready when a keyword can’t cover the ask.

We tested eight tools on Linux, Windows, and macOS installs of Home Assistant OS, Home Assistant Container, and Supervised. Every pick works with the Wyoming Protocol so pieces swap in and out cleanly. The evaluation criteria: how quickly the keyword path resolves, whether the LLM can be called by name or on failure, and whether the whole stack stays local when the internet drops.

What to look for in a hybrid voice setup

Quick comparison

App Best for Platforms Free plan Paid tier Rating
Home Assistant Assist The default hybrid voice pipeline Linux, Windows, macOS Fully free None 4.7
Rhasspy Fully offline keyword-first voice Linux, Windows, macOS, Docker Fully free None 4.6
Wyoming Satellite Turning a Pi or old laptop into a room mic Linux Fully free None 4.7
Ollama Conversation The LLM fallback that runs on your box Linux, Windows, macOS Fully free None 4.8
Whisper (Wyoming) Local speech-to-text that keeps up Linux, Windows, macOS Fully free None 4.7
Piper (Wyoming) Natural local text-to-speech Linux, Windows, macOS Fully free None 4.7
OpenWakeWord Custom wake words without cloud training Linux, Windows, macOS Fully free None 4.5
Willow Purpose-built voice satellite firmware Linux, ESP32-S3 Fully free None 4.6

The apps

1. Home Assistant Assist for hybrid voice — Best default pipeline

Home Assistant Assist is the built-in voice engine, and since the 2024 rework it already runs the hybrid pattern out of the box. A request hits a fast intent matcher first, so “turn off the fan” resolves in milliseconds without an LLM. Anything the matcher can’t parse falls through to the configured conversation agent, which is where Ollama or OpenAI plugs in. Assist owns the STT and TTS routing too, so the pipeline is one screen instead of five.

Where it falls short: The intent syntax still trips people up. Complex phrases need a sentences trigger or a custom intent, which is more work than editing an automation.

Pricing:

Platforms: Any Home Assistant install (Linux, Windows via Docker, macOS via Docker).

Download: home-assistant.io/voice-pe · github.com/home-assistant/core

Bottom line: Start here. Every other pick below extends or replaces one piece of Assist, not the whole thing.

2. Rhasspy for hybrid voice — Best keyword-first offline stack

Rhasspy predates Assist and still holds up when the priority is zero cloud calls. It resolves commands from a fixed sentence template file, which makes the keyword layer both fast and predictable. Rhasspy 3 speaks Wyoming Protocol, so its STT and intent engine slot into Home Assistant as the fast path, with an Ollama conversation agent as the LLM fallback in Assist.

Where it falls short: The template syntax feels dated next to Assist’s intents. And the UI is functional, not friendly.

Pricing:

Platforms: Linux, Windows, macOS. Runs well in Docker on a Pi 4 or better.

Download: rhasspy.readthedocs.io · github.com/rhasspy/rhasspy3

Bottom line: Pick Rhasspy if the goal is a room that answers even when the WAN goes dark for a week.

3. Wyoming Satellite for hybrid voice — Best DIY room mic

Wyoming Satellite turns an old laptop, a Raspberry Pi, or a mini PC into a voice endpoint that Home Assistant treats as a first-class satellite. Wake detection runs on the satellite, audio ships to the server for STT, and TTS comes back. That split lets a $35 Pi be the mic while a beefier machine runs Whisper and the LLM, which is the setup that keeps the hybrid pattern quick.

Where it falls short: Setup is a systemd service and a config file, not a wizard. Battery-powered satellites need extra work.

Pricing:

Platforms: Linux (Debian, Ubuntu, Raspberry Pi OS).

Download: github.com/rhasspy/wyoming-satellite

Bottom line: Use it to spread microphones through the house without buying eight of anything.

4. Ollama Conversation for hybrid voice — Best local LLM fallback

Ollama Conversation is the integration that lets Assist hand off a request to a local Ollama model when the intent matcher gives up. Llama 3 8B, Qwen 2.5 7B, or a smaller Phi-3 all serve well as the fallback brain. The LLM sees the exposed entities as tools, so it can call service methods when the ask has structure, and answer conversationally when it doesn’t.

Where it falls short: First run of a cold model can take a second on a modest GPU. Prompt caching helps, but a hot standby is a real GPU decision.

Pricing:

Platforms: Linux, Windows, macOS.

Download: ollama.com · github.com/home-assistant/core/tree/dev/homeassistant/components/ollama

Bottom line: The only LLM backend to pick when the point is to keep the whole voice loop off the internet.

5. Whisper (Wyoming) for hybrid voice — Best local speech-to-text

Whisper with the Wyoming wrapper is the STT engine that most hybrid setups end up on. The small.en and base.en models are fast enough on CPU for a household of a few satellites, and medium.en on a modest GPU keeps up with a family talking over each other. Whisper reads intent well, so the fast keyword path lands more often than with older engines.

Where it falls short: Model choice matters. The tiny model misfires on names and short commands. Base or small is the floor for a real setup.

Pricing:

Platforms: Linux, Windows, macOS. Docker image runs on ARM and x86.

Download: github.com/rhasspy/wyoming-faster-whisper

Bottom line: The default STT for anyone who wants to hear “lights off” the first time.

6. Piper (Wyoming) for hybrid voice — Best local text-to-speech

Piper is the neural TTS engine that made local voice sound like a real assistant instead of a decade-old GPS unit. Voices are small (a few dozen megabytes each), CPU-only inference is quick, and the catalogue covers dozens of languages. Piper handles both the short confirmations (“okay”) and the longer LLM answers without a lag between them.

Where it falls short: Some voices sound thin next to a cloud TTS. Voice cloning stays out of scope, which suits most homes fine.

Pricing:

Platforms: Linux, Windows, macOS.

Download: github.com/rhasspy/piper

Bottom line: The right TTS for a hybrid stack where the household hears output all day.

7. OpenWakeWord for hybrid voice — Best custom wake word

OpenWakeWord trains a wake word without shipping audio anywhere. That matters for hybrid setups because a bad wake word is what breaks the keyword-first illusion: a false wake sends real speech to STT, then to the LLM, and the household hears the fan spin up. OpenWakeWord ships with several ready models and a Colab notebook for a new one.

Where it falls short: A quality custom word needs a few thousand generated samples. The pretrained “Alexa”, “Hey Jarvis”, and “Hey Rhasspy” are the low-effort picks.

Pricing:

Platforms: Linux, Windows, macOS.

Download: github.com/dscripka/openWakeWord

Bottom line: The right pick when the household name is not one of the pretrained wake words.

8. Willow for hybrid voice — Best purpose-built satellite firmware

Willow is a voice-satellite firmware for the ESP32-S3-BOX and similar dev boards, and it treats Home Assistant Assist as a first-class backend. On-device wake detection means no traffic leaves the device until it hears you, and the whole roundtrip is fast enough that keyword commands feel instant. Willow’s Inference Server can also host Whisper and LLMs if the workload should live on one box.

Where it falls short: Hardware is a small pool. ESP32-S3-BOX supply comes and goes.

Pricing:

Platforms: Linux (for the Inference Server), ESP32-S3-BOX and compatible hardware.

Download: heywillow.io · github.com/toverainc/willow

Bottom line: Use Willow when the satellites need to be tiny, silent, and always listening without a PC in the room.

How to pick the right one

FAQ

What is the best local LLM for Home Assistant voice control?
Llama 3 8B and Qwen 2.5 7B both do well when paired with the tool-calling wrapper Assist exposes. Smaller Phi-3 models work on CPU-only boxes but miss more service calls. The right model is the largest one that keeps a request under two seconds on your GPU.

Can I use Home Assistant voice control without an internet connection?
Yes. Whisper, Piper, Ollama, and Assist all run local, and Wyoming Satellite carries audio over the LAN. The stack survives an internet outage as long as the server and satellites are on the same network.

Do I need a GPU to run a local LLM for Home Assistant?
Not for smaller models. A 7B model quantized to Q4 runs on modern CPU or a mid-range GPU. A GPU is what keeps response time under a second, which is what makes voice feel real-time.

How do I make Home Assistant Assist use keywords first and the LLM only as fallback?
Assist already does. In Settings, set the pipeline’s Conversation agent to an LLM. Intents run first, and only unmatched requests reach the LLM. Custom sentences in intents.yaml add more keyword coverage.

What is the difference between Rhasspy and Home Assistant Assist?
Rhasspy is the older, template-driven, keyword-first engine that runs standalone or as an Assist STT/intent provider. Assist is the newer, tighter integration built into Home Assistant with LLM fallback baked in. Most 2026 setups use Assist and borrow Rhasspy’s ideas.