Everything in this house runs on a used HP EliteDesk 800 G4 in a cupboard. Zigbee, Thread, the recorder, the automations, a small language model that I let loose on the place in August — all of it local, all of it still working the night my fibre line went down for four hours in July.
The most interesting voice improvement Home Assistant has shipped this year does not run on that box. It runs in a data centre, it needs a subscription, and after two weeks of thinking about it I turned it on anyway. This is me showing my work on that decision, because I do not think the honest version of local-first is the one where you never make this trade.
What 2026.9 actually changed
Buried in the 2026.9 release notes is a request for testers. Nabu Casa is trialling a new speech-to-text engine for Home Assistant Cloud, switching the provider from Microsoft Azure to Soniox. The stated target is the three places voice recognition falls over in real homes: accents, background noise, and languages that are not English.
The mechanics are straightforward. You need 2026.9 or later and a Cloud subscription — there is a 31-day trial if you do not have one — and you flip it on under Settings > System > Labs. The privacy commitment is unchanged: no logging, no storing, no training on your audio. Frenck’s own framing in the release post is that his household’s main language is not English, and he wanted to see how it handles his accent.
Two words in that announcement deserve more weight than they usually get: Labs, and testing. Home Assistant says plainly this may not be a permanent addition and asks for feedback. That is not a product launch. That is a company being upfront that they might take it away, which is more than most of this industry manages.

The local options, honestly compared
Home Assistant gives you two serious ways to do speech-to-text on your own hardware, and they are not competing for the same job.
Whisper is open-ended. It will attempt to transcribe anything you say, which is exactly what you want for a shopping list and exactly what costs you compute. Community measurements put it at roughly eight seconds per command on a Raspberry Pi 4 and comfortably under a second on NUC-class x86 hardware, chewing through several cores and a couple of gigabytes of RAM while it works. My EliteDesk sits on the good side of that line — an i5-8500T with 16 GB is not fast, but it is not a Pi either.
Speech-to-Phrase is closed-ended, and that constraint is the whole point. It is trained on the names of your actual entities and the shape of Assist’s commands, so it is only ever choosing between things it already knows about. The result is sub-second transcription on hardware as modest as a Home Assistant Green. The trade is that anything genuinely open-ended — dictating a shopping list item, naming a timer, broadcasting a message — is not there out of the box.
Here is the part nobody puts in the comparison table. The constraint on my box was never latency. Whisper returns fast enough on an eight-year-old office desktop. The constraint is accuracy on the specific speech my house produces: a non-native English accent, a kitchen with an extractor fan running, and a household that switches languages mid-sentence. That is precisely the failure profile the Cloud engine claims to fix, and it is the one I cannot fix by throwing more of my own silicon at it.
What I run, and where I drew the line
Speech-to-Phrase handles the overwhelming majority of what anyone in this house says out loud: lights, blinds, the kettle plug, “how warm is it in the bedroom.” Those are closed-ended commands against entities the model has been trained on, they never leave the cupboard, and they work when the WAN does not. That has not changed and will not.
The Cloud engine is now doing the awkward 10 percent — the open-ended sentences where Speech-to-Phrase was never going to help and local Whisper kept turning “add Rüebli to the shopping list” into something I had to go and fix by hand. I gave it the Labs toggle, I filled in the feedback form, and I will happily turn it off again if they decide to keep it.
The line I drew is this, and I think it is the only version of local-first that survives contact with a real household: voice is an interface, not a control path. The question is not whether any given feature phones home. The question is whether the house still works when the internet does not.
Every light in here has a physical switch that works with the server unplugged. Every automation that matters — heating, the bathroom fan, the “everything off” at night — runs on the local box with no cloud dependency anywhere in the chain. The dashboard works on the LAN. If Nabu Casa vanished tomorrow, I would lose a convenience and gain an annoyance, and nothing in this flat would stop functioning. That is a very different exposure from a cloud-dependent hub where losing the vendor means losing the ability to turn on a lamp.
Worth noting too that wake-word detection is a separate question from transcription, and it is the part that stays local either way. On Voice Preview Edition hardware, “Okay Nabu” is caught on the device itself — nothing goes anywhere until you have actually addressed it. The microphone is not streaming your kitchen to a server while you cook. That distinction is the reason I am relaxed about this at all.
If you are deciding this week
If you speak English in a quiet room and have anything x86-shaped running Home Assistant, try the fully local pipeline first. It is genuinely good now, it costs nothing, and you may never need to have this argument with yourself. Start with Speech-to-Phrase rather than Whisper — the speed difference on modest hardware is not subtle, and most voice commands in a smart home are closed-ended anyway.
If you are in a multilingual household, or you have an accent that local models keep mangling, or your main voice satellite lives somewhere with a fridge compressor in earshot — take the trial, turn on the Labs toggle, and actually submit the feedback. This is a feature whose survival depends on whether enough of the people it was built for say it helped.
And whichever way you go, do the unplug test. Pull the WAN cable, walk around the flat, and see what stops working. That five-minute exercise tells you more about how local your setup really is than any amount of arguing about which features touch a server.
Mine passed. The lights came on, the heating held, and the only thing I lost was the ability to add vegetables to a shopping list by shouting at a speaker. I can live with that trade — but I want to be the one who chose it, which is why I am writing it down instead of quietly flipping the switch.

Leave a Reply