voice
February 27, 2026•481 words
Introducing Lumo Voice Preview
Tired to talk with Lumo?
Let Lumo talk with you
This guide explains how to send questions to a local Lumo Api V2 service and play the spoken response on a Home Assistant Voice Preview device using Piper TTS.
The Lumo server (lumo.js) is assumed to already be installed and running locally.
Please refer to the Lumo Api V2 installation
This tutorial focuses only on Home Assistant + Python script configuration.
All other software like whisper and piper is not covered by this tutorial you need to follow the installation instructions of that softwares for your machine.
Overview
You type a question using the script or HA button
The Python script sends the question to Lumo (
localhost:3333)Lumo returns a text response
Home Assistant speaks the response using Piper TTS
Audio is played on the Voice Preview device
You can set your desired voice. Refer to piper voices for this i dont cover that in this tutorial time is precious sorry.
No cloud services are required. Privacy Please!
Requirements
- Home Assistant Core or OS installed
- A working Voice Preview device
- Piper TTS already configured in Home Assistant
- Lumo Api V2 server running locally (
http://localhost:3333) - A Long-Lived Access Token from Home Assistant
Step 1 – Create a Home Assistant Access Token
- Go to Profile → Security
- Create a Long-Lived Access Token
- Copy it and store it securely
Add it to your secrets.yaml:
assist_button_token: YOUR_LONG_LIVED_TOKEN_HERE
Step 2
- Find Your Voice Preview Media Player Entity
Go to Developer Tools → States
Search for media_player
Look for something like:
mediaplayer.homeassistantvoicexxxxxxmediaplayer
Step 3 - Verify Your TTS Entity
Probably you will have Piper as:
tts.piper
To confirm:
Go to Developer Tools → Services
Search for tts.speak
Check the available TTS providers
If your TTS entity is different, note it.
Step 4 – Configure the Python Script
In the script, replace only these two values:
TTS_ENTITY = "tts.piper"
MEDIA_PLAYER = "media_player.YOUR_VOICE_PREVIEW_ENTITY"
Step 5 – How it Works
chmod +× lumo.py
./lumo.py "Why is the sky blue?"
The script will:
Send the question to http://localhost:3333
Receive Lumo’s text response
Clean UI noise automatically
Call Home Assistant’s tts.speak
Play audio on the Voice Preview device
With you desired voice.
Pros :
Can run in a device with limited resources like rpi 4 or 5
Everyting stays private its your hardware (voice preview)
Lumo itself is private no trainings no sell prompts.
Cons: does not works well do perform activities on the web its possible to enable the websearch but because the trash that Proton introduces on the response feed like "searched the web for' .... bla bla this makes the responses takes longer and spoken urls is also not what we want definitely.