DEV Community

Cover image for I finally found an always-on voice setup that my family wouldn’t abandon after 2 days
Lars Winstand
Lars Winstand

Posted on • Originally published at standardcompute.com

I finally found an always-on voice setup that my family wouldn’t abandon after 2 days

I’ve become deeply suspicious of voice demos.

You’ve seen the pattern: someone talks to an agent, there’s a weird pause, the model answers in a haunted helpdesk voice, and everyone politely acts like this is the future.

Then nobody uses it again.

That’s why I mostly stopped paying attention to home voice-agent projects. They usually fail in one of three ways:

  • slow
  • creepy
  • brittle

Sometimes all three.

Then I ran into a build on r/openclaw that made a much stronger claim than usual: the author had turned Home Assistant Voice Preview Edition into a real voice interface for OpenClaw, and their family actually used it all day.

That’s the sentence that matters.

Not “it works.” Not “it’s low latency.” Not “it uses the latest model.”

My family uses it all day.

After digging through the hardware, repo notes, and architecture, I think this setup gets something right that most voice projects miss:

voice is only useful when it behaves like infrastructure, not a demo.

The real problem with voice agents

I don’t think home voice fails because GPT-5, Claude, Qwen, or Llama are too dumb.

They’re already good enough for a lot of household intent.

The actual failure mode is interaction design.

Voice breaks the second it feels like you’re opening a support ticket out loud.

That’s why the stack here is interesting:

  • Home Assistant Voice Preview Edition for dedicated room hardware
  • OpenAI Realtime for low-latency speech-to-speech interaction
  • OpenClaw for memory, tool use, and long-running tasks

That division of labor is the whole story.

Why dedicated hardware beats a phone app

Nobody reaches for a phone to say:

set a pasta timer for 9 minutes

That sounds trivial, but it’s the entire product test.

The useful automations are tiny and situational:

  • timers n- lights
  • reminders
  • “what’s Grandma’s number?”
  • “did Alex already leave?”

A phone adds friction.
A generic smart speaker adds trust issues.
A dev-board prototype adds chaos.

The Home Assistant Voice Preview Edition is one of the few devices aimed at the right shape of problem.

It has:

  • dual microphones
  • an XMOS audio processor for far-field pickup
  • a physical mute switch that cuts mic power
  • tactile controls
  • LED feedback
  • 3.5 mm audio out

And it’s cheap enough to treat like room hardware instead of a science project:

Component Notes
Home Assistant Voice Preview Edition Dedicated voice puck, launched Dec 2024, around $69 / €59
OpenAI Realtime Speech-to-speech interaction with interruption and low first-audio latency
OpenClaw Memory, tools, messaging, phone actions, long-running agent tasks

That setup makes more sense to me than “just use your phone” ever did.

The best design choice: don’t run the full agent unless you need to

This is the part I wish more builders copied.

The setup reportedly does a fast local lookup before escalating to a full OpenClaw run.

So instead of sending every utterance through a giant agent loop, it first checks household memory like:

  • MEMORY.md
  • daily notes
  • person files

If the answer is already there, it responds immediately.

If not, then OpenClaw takes over.

That means a question like:

what’s Grandma’s number?

can come back in about a second from local memory.

And a question like:

research flight prices to London for October

can be acknowledged immediately, then handed off to a slower background task.

That’s not just a latency optimization. That’s good product design.

Fast path vs full agent path

Here’s the architectural split in practical terms:

Path What happens
Fast path Local retrieval answers from household memory without a full agent run
Full agent path OpenClaw does browsing, reasoning, messaging, phone actions, and writes results back to memory
Classic chained pipeline Separate STT -> LLM -> TTS stages, easier to inspect but usually worse for interruption and latency

This is the first voice architecture I’ve seen where the split actually feels intentional instead of accidental.

Why OpenAI Realtime matters here

A lot of voice stacks still feel bolted together.

You can tell when the system is doing:

  1. speech-to-text
  2. text prompt assembly
  3. model response generation
  4. text-to-speech

That pipeline works, but it feels like a pipeline.

OpenAI Realtime is much better suited to room interaction because it’s built for:

  • low first-audio latency
  • barge-in / interruption
  • natural turn-taking
  • realtime tool use

That matters way more in a kitchen than benchmark scores do.

If someone is cooking and says “stop” in the middle of a response, the assistant has to stop.
If someone asks for a light, timer, or reminder, the response has to feel immediate.

That’s the difference between a room appliance and a novelty.

The async handoff pattern is the real win

The strongest example here isn’t lights or timers.

It’s long-running work.

Bad voice agents block the room while they think.

Better pattern:

  1. acknowledge immediately
  2. hand the task to an agent
  3. return results in the right place later

That’s exactly how this stack is described to work.

For example:

research flight prices to London for October

The voice layer confirms the request right away.
OpenClaw does the slower browsing and reasoning.
Then the result can be announced back in the room where the request started, or sent via text if the user has moved on.

If you build agent workflows in n8n, Make, Zapier, or custom Node/Python services, this pattern should look very familiar.

Voice is just the front door.
The real system is the handoff.

Practical implementation shape

If I were building this kind of system myself, I’d think in terms of three layers:

1. Room interface

  • wake word
  • far-field audio
  • mute switch
  • speaker output
  • interruption handling

2. Fast local response layer

  • contact lookup
  • timers
  • home state
  • household memory
  • speaker-aware permissions

3. Agent execution layer

  • browsing
  • messaging
  • phone actions
  • long-running research
  • memory write-back

That architecture is much more robust than “send every utterance to the biggest model and hope.”

Example: minimal OpenAI Realtime session

If you’re experimenting with the Realtime side, the shape is straightforward:

import { RealtimeAgent, RealtimeSession } from "@openai/agents/realtime";

const agent = new RealtimeAgent({
  name: "Assistant",
  instructions: "You are a helpful voice assistant."
});

const session = new RealtimeSession(agent, {
  model: "gpt-realtime-2.1"
});

await session.connect({
  apiKey: "ek_...(ephemeral key from your server)"
});
Enter fullscreen mode Exit fullscreen mode

That’s obviously not the whole system, but it shows the right boundary: realtime conversation is one layer, not the entire product.

Example: OpenClaw onboarding

If you want the agent side, the docs currently point you toward modern Node versions.

openclaw onboard
Enter fullscreen mode Exit fullscreen mode

That’s not “plug it in and forget it.”

And that’s worth saying plainly.

The catch: this setup is better because it’s not one thing

This stack is compelling because it combines:

  • Home Assistant
  • custom Voice PE Realtime firmware/backend work
  • OpenAI Realtime
  • OpenClaw

That gives you speed, memory, room awareness, identity, and async handoff.

It also gives you more failure points.

If you want a dead-simple appliance, this isn’t it.
If you want maximum debuggability, a classic STT -> LLM -> TTS chain is still easier to inspect.

You can log each stage separately.
You can replay text prompts.
You can isolate TTS issues from reasoning issues.

The tradeoff is UX.

And for voice, UX matters more than elegance in the architecture diagram.

The part that sold me: household identity

The timer example is better than the flight-search example.

A flow like this is much more meaningful than it looks:

  • “Set a pasta timer for 9 minutes.”
  • later: “Alex, your pasta timer is done.”

That implies the system knows:

  • who asked
  • what they asked for
  • where the response should go
  • who is allowed to dismiss or modify it

That’s the first version of home voice I’ve seen that feels like household infrastructure instead of a chatbot in a speaker.

And it points to a useful design rule for anyone building always-on voice systems:

Three questions to answer before you pick a model

Before you argue about GPT vs Claude vs anything else, answer these:

  1. What deserves the fast path?
  2. What requires a full agent?
  3. Which permissions vary by person?

If you get those three right, voice gets much better.
If you get them wrong, no model upgrade is going to save it.

Cost is the next obvious problem

Once you build voice the right way, usage goes up.

That’s good for adoption and bad for per-token pricing.

Because now you’re not paying for one chat request. You’re paying for a system that can generate:

  • constant voice turns
  • memory lookups
  • follow-up agent tasks
  • retries
  • notifications
  • background research

That’s exactly where token-based billing starts to feel broken.

If you’re running always-on agents, automations, or voice-triggered workflows, predictable pricing matters more than shaving pennies off a single request.

That’s why I think the infrastructure side matters just as much as the voice UX side.

Standard Compute is interesting here because it gives you an OpenAI-compatible API with flat monthly pricing instead of per-token billing. If you’re building agent-heavy systems in n8n, Make, Zapier, OpenClaw, or custom code, that model fits the actual usage pattern a lot better than metering every voice turn like a taxi meter.

My takeaway

I still don’t believe most voice demos.

But this is one of the first architectures I’ve seen that makes me think always-on voice might finally be practical.

Not because it talks.

Because it knows when to:

  • answer instantly
  • hand off work
  • remember the result
  • respect who’s asking

That’s the bar.

If you’re building something similar, I’d start with fast-path design and permission boundaries before I spent another hour comparing model benchmarks.

That’s where the real product decisions are.

Top comments (0)