Since OpenAI released their new GPT-4o Mini TTS model, I’ve been working on a custom integration to bring it into Home Assistant as a speech provider.
This allows you to use high-quality, human-like text-to-speech inside Home Assistant’s Voice Assistants, like Assist, with support for custom voices and speech styles.
Features
Uses GPT-4o Mini TTS – OpenAI’s latest, most natural-sounding TTS model 11 voices (alloy, nova, shimmer, etc.) Customisable speech – affect, tone, pronunciation, pauses, and emotion No YAML required – full setup via UI Works inside Home Assistant’s voice assistant
How to Install
It’s available as a HACS custom repository: GitHub Repo
Add it to HACS → Integrations → Custom Repositories Search for OpenAI GPT-4o Mini TTS and install Go to Settings → Voice Assistants Select GPT-4o Mini TTS as the text-to-speech engine Choose the same voice you initially set it up with and set custom speech instructions
I’d love feedback from the community on how well it works for you and any feature requests you have!
I must do something wrong. I used HACS to get the repo, configure the integration with a valid API Key and got a positive feedback. But the entity is not available or unknown. Unfortuneatly there is no log entry, at the voice menu 4o mini tts is grey and not selectable.
Are there any prerequisits to fulfil? Maybe Tier-3 or Home Assistant Cloud active or sth. like that?
Indeed. When the public Willow server shut down I had just ordered a graphics card, so I’ve still got it running. The code on GitHub still works. Expensive though, even on Ebay.
Have you checked in with the Willow group on Discord? They have been exploring alternatives.
We shouldn’t have to ask you to elaborate on how you did set up Google as an STT endpoint? TTS with Google is no problem, but I never found a free Google URI for STT.
In the first column you can see the limits for free use.
If you exceed them, sure it will generate costs. I have really lot of announcements every day and never reached the limits for the free tier.
To avoid supprises you can configure a budget limit for example with max 1 $ in the Google Cloud console.
You could also activate the 90 day trial period and just test it.