Yahoo
Skip to main content
Advertisement
Advertisement
Advertisement
Advertisement

Stop using generic TTS voices in Home Assistant—this local setup sounds like my real family

An Echo Show 5 on a kitchen windowsill.
Adam Davidson / How-To Geek

I was using a generic Text-to-Speech (TTS) voice for spoken announcements in my smart home for ages. It allowed me to generate audio without having to use the default Alexa voice, but it's still fairly bland. Now my Echo announcements use far more interesting voices—those of my family and me.

I use a lot of voice announcements

My daily briefing is one of my favorite automations

The Echo Show 10 smart display.

Amazon

I use voice announcements a lot. While I rarely use my Echo devices to give voice commands, they're very useful for making audible announcements in the home. One of my favorite automations is my morning daily briefing. When we first enter the kitchen in the morning, it plays a spoken announcement that pulls data from my calendar and tells us what we have on that day, such as after-school activities, school lunches, appointments, sports fixtures, and more.

Another announcement fires whenever someone enters the kitchen after it has been empty for more than 10 minutes. The voice announcement suggests that while the person is in the kitchen, they should tidy something away.

Advertisement
Advertisement

All of these announcements use a generic TTS voice. While it's a nicer voice than the default Alexa voices, it's still not particularly interesting.

Why Qwen3-TTS is a game changer

Clone a voice with a few seconds of audio

I've used the ElevenLabs speech synthesis software in the past to clone my own voice and use my voice for announcements instead of Alexa's. It works well, but there are a couple of major issues. The first is that you need a paid ElevenLabs subscription, and the second is that I have to upload my voice in order to clone it.

I wasn't keen on the idea of uploading my wife's voice to a third-party cloud service, so I'd never cloned her voice. When I read about the release of Qwen3-TTS, I thought it might be just what I needed.

Qwen3-TTS is an open-source speech generation model that can not only generate speech from text but can also clone voices using as little as three seconds of audio. It's lightweight enough that I was able to run the smallest 0.6B variant on an M2 MacBook Air with 8GB of RAM. With just 10 seconds of audio of my voice, and a transcript of what I'd said, the model generated a custom voice model in about 20 seconds.

Advertisement
Advertisement

You can enter any text you want and, using your cloned voice model, have it generate an audio file of that text spoken in the cloned voice. The results are impressive. While they're not always completely perfect, it's amazing how accurate the voice clones can be with so little audio to work with.

There are legal and ethical implications when cloning people's voices. The safest and most responsible approach is to only clone a voice with that person's express consent, and to use it only for private, local purposes. Depending on your jurisdiction, there may also be legal considerations around voice cloning.

Running Qwen3-TTS locally

Everything happens on my mini PC

A Beelink mini PC on top of a Terramaster NAS.

Andrew Heinzman / How-To Geek

Once I'd proven it could work on my MacBook, I wanted a way to be able to use the cloned voices in Home Assistant. Generating the voices on my MacBook wasn't going to work, as it's not always on. Since I run Home Assistant in Proxmox on a mini PC , the best plan was to run Qwen3-TTS in a small Linux container so that it would always be accessible.

I created a new Debian LXC with a few CPU cores and enough RAM to run Qwen3-TTS. I installed Python, FFmpeg, and the Qwen3-TTS package, and added my cloned voice files. I wrapped everything in a FastAPI app so that I could send a request from Home Assistant to my mini PC with the text and cloned voice model that I wanted to use, and Qwen3-TTS would generate the audio on the mini PC.

Advertisement
Advertisement

The crucial part for my purposes was then converting the audio into a suitable format for my Echo speakers. If the audio is the wrong format, the smart speakers may not play it, so I had to convert it to a 24kHz, 48kbps CBR MP3 using FFmpeg . A shell command in Home Assistant downloads this file into an internal folder and exposes it via a URL using Home Assistant Cloud to provide remote access. The Echo is then able to access this audio file and play it.

The process isn't instant; it can take quite a while to generate the audio for a long announcement such as my morning briefing. To work around this, I set up an automation that generates the audio for the announcement in the morning before we get up. By the time we come down to the kitchen and trigger the announcement, the audio has already been generated, so it plays straight away.

Each day, the automation randomly selects either my voice or my wife's. It means we never know who is going to be reading the morning briefing for that day.

Local processing means better privacy

Audio data doesn't always have to leave your home

Amazon Alexa Echo dot with a skull emoji.

Studio Romantic / Shutterstock | Tim Brookes / How-To Geek

The beauty of using Qwen3-TTS is that the voice cloning and text-to-speech processing all happen locally. I didn't need to upload a recording to the cloud in order to clone a voice like I would have done with ElevenLabs.

Advertisement
Advertisement

In my current setup, the audio is still exposed outside my home, as the Echo speakers require an external URL to play the audio from. This means I need to be careful that I don't include any sensitive information in the audio announcements. If I were to use different speakers that could play local media directly, none of the audio would ever need to leave my home, making it completely local.


Local models are becoming ever more powerful

When I first tried cloning my voice with ElevenLabs, I wondered about trying to do it locally, but it wasn't possible on my limited hardware. Qwen3-TTS is lightweight enough that I can run it on my mini PC, and when I ditch my Echo smart speakers for something more private, I'll be able to do everything completely locally, making it significantly more private.

Advertisement
Advertisement
Mobilize your Website
View Site in Mobile | Classic
Share by: