Hobby projects → A trilingual voice assistant
Tour · running daily in our house, September 2026

A voice assistant that speaks the whole family’s languages

Our house answers to English, Thai and Mandarin — lights, air conditioning, music, the TV, even the shopping list — and none of it leaves the building. No cloud account, no subscription, no company listening in. This is a tour of how it fits together and the handful of ideas that made it feel instant instead of frustrating.

Why build it local

The obvious reason is privacy: microphones in a family home should not stream to anyone’s data centre. But the practical reasons turned out to matter just as much. A local assistant keeps working when the internet doesn’t — pull the cable mid-sentence and the lights still come on. It answers in the language you spoke, not the language of your account settings. And because everything runs on hardware in a cupboard, you can fix the thing that annoys you instead of waiting for a company to care.

The whole stack runs on one small AI machine — the same class of box as our AI Hub — plus a smart-speaker-sized microphone in each room.

The moving parts, in plain language

The ideas that made it feel good

Fast paths for the boring stuff. “Turn off the lights” does not need intelligence, it needs speed. Fixed sentence matching decides in 142 milliseconds and the lights are changing in about a second and a half; the AI model handles the long tail — “play something like Crazy P”, “what’s the temperature in every room” — where a couple of extra seconds buys real understanding.

Keep the model warm. A language model answers fastest when it has already read most of the conversation. Every fifteen minutes the appliance silently re-reads each room’s standing context on that room’s behalf, so when someone actually speaks the model only has to read the new sentence: the first words of a reply arrive in about 0.7 seconds, and a typical answer — hearing, thinking, acting, speaking — lands in three to four.

One wake word, any language. Nobody chooses a language before speaking. The house decides from the sound of the sentence, acts, and answers in the language it heard — Thai, Mandarin or English, in the same room, in the same minute, from the same grandmother and grandchild.

The room is part of the sentence. Every microphone knows its own room, so “turn on the lights” means this room’s lights, and “play some jazz” plays it on this room’s speaker. Nobody should have to say “in the bedroom” while standing in the bedroom.

Teach the system its own mishearings. Speech recognition of short commands is imperfect in any language. Instead of fighting it, we watched the logs and added the common mishearings as extra trigger sentences. If the transcriber writes down something odd but predictable, the odd-but-predictable version simply becomes another way to say it.

Verify, then speak. Early on, the assistant would cheerfully announce “Playing your playlist” while nothing came out of the speakers. Now the music path checks that playback actually started before it claims success — and says plainly when a streaming service is having a bad day. An assistant that admits failure is far less maddening than one that pretends.

Take instructions for later. “Turn the aircon off in twenty minutes.” “Open the curtains at six.” The assistant schedules it — any of lights, aircon or curtains, any room, in any of the three languages — and answers with the verified time it actually set, not a hopeful guess. You can ask what’s scheduled, cancel by voice, and every schedule cleans itself up after firing. It even copes with the ways people really talk: “don’t open the curtains at six after all” is understood as a cancellation, not a fresh command.

What it controls today: lights, air conditioning, the motorised curtains, music (with “artist radio” that queues similar songs), the televisions and the film library, Siri hand-offs to the Apple TV, the shopping list, scheduled actions for later, finding a family member’s phone, room temperatures and who’s-home questions — in three languages, from any room. The wider set of things the house does without being asked has its own tour.

Lived in, daily

Everything above has survived the only test that matters: months of daily use by a real, three-generation family who never read a manual — commands shouted from the sofa, whispered at midnight, and delivered in whichever language came out first. The fast paths keep everyday commands instant and utterly predictable; the AI layer keeps the long tail delightful; and the verify-before-claiming rule keeps every answer trustworthy.

This is the system our AI Hub productises — the house is the proving ground, and every idea on this page earned its place there first.

Go deeper. The pieces with their own write-ups: instructions for later (the scheduling scripts, with YAML) and voice to Moonfin (verified playback on the right TV).