voice

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

  1. You type a question using the script or HA button

  2. The Python script sends the question to Lumo (localhost:3333)

  3. Lumo returns a text response

  4. Home Assistant speaks the response using Piper TTS

  5. Audio is played on the Voice Preview device

  6. 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

  1. Go to Profile → Security
  2. Create a Long-Lived Access Token
  3. 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.


You'll only receive email when they publish something new.

More from Carlostkd ✅
All posts