About
OpenAI TTS is a text-to-speech integration that works with OpenAI and any server implementing the OpenAI speech API. Presets for OpenAI, Mistral, Groq, Lemonfox, Kokoro and Chatterbox fill in the endpoint, models and voices, and a custom preset covers other servers, in the cloud or self-hosted. One entry can hold several TTS agents, each with its own model, voice, speed, audio format and audio processing, with streaming playback and loudness normalisation. Announcements can play a chime first, restore speaker volumes afterward, and duck or pause current media. A speak action targets media players, and another action stores a new API key for providers that issue short-lived keys. Repairs notices appear when a voice is removed upstream, when OpenAI retires a model, or when an announcement targets a speaker that Music Assistant also plays to.
Automatic summary of the README and code of sfortis/openai_tts. Something wrong, or are you the maintainer and want your own text here? Get in touch
Supports
Uses the vendor's cloud Needs an internet connection and an account with the vendor.
From the Marketplace Installed through the Marketplace, formerly HACS.
Actively maintained Its author released or pushed a change in the last six months.
Provides
- Sensors
Setting it up
Install it from the Marketplace and restart Home Assistant, then add it under Settings, Devices and services.
Add TTS Service (Step 1 of 2)
- Provider
Add TTS Service (Step 2 of 2)
- Account name (optional, e.g. Personal / Work)
- API Key
- API Endpoint
Also asked when changing the connection.
Re-authenticate OpenAI TTS
- API Key
After setup
- Enable chime sound prior speech (useful for announcements)
- Chime sound
- Speed (0.25 to 4.0)
- Model
- Voice
- Enable custom instructions
- Instructions (leave empty to disable)
- Enable loudness for generated audio (uses more CPU)
- Restore speaker volumes after TTS playback
- Announcement mode (speakers duck or pause instead of replacing what is playing)
- Always pause current media before speaking
Texts from the code of sfortis/openai_tts.
Entities
- SensorsStatus
Actions
- OpenAI TTS SpeakSpeaks a message on media players with one of this integration's TTS agents, with optional chime, normalisation and volume control.Fields: TTS entity, Message, Voice, Speed, Instructions, Extra payload, Language, Play chime, Chime sound, Normalise audio
- Set API keyStores a new API key on an OpenAI TTS entry and reloads it. Meant for providers that issue short-lived keys, so an automation can refresh the key without anyone opening the settings. The key is written to Home Assistant's own storage, not to an entity, but note that automation traces keep the data a service was called with.Fields: Entry, TTS entity, API key, Check the key first
Troubleshooting
- DiagnosticsDownloads a diagnostics file to attach to a bug report.
- Repair noticesNotices it can show in Settings, Repairs:TTS voice was deleted upstream, OpenAI is retiring the model of a TTS agent, Announcements target a speaker that Music Assistant also plays to
From the README
Text-to-speech for Home Assistant from OpenAI, Mistral, Groq, Lemonfox, Kokoro, Chatterbox or any server that implements the OpenAI speech API.
OpenAI TTS is a text-to-speech integration for Home Assistant that works with any service implementing the OpenAI speech API, in the cloud or self-hosted. Presets for the common providers fill in the endpoint, the models and the voices.
- Several TTS agents under one entry, each with its own model, voice, speed, audio format and audio processing.
- Audio in mp3, opus, aac, flac, wav or pcm, chosen per profile. Some providers accept fewer formats, and the selector then offers only those: Groq accepts wav, Chatterbox accepts mp3, opus and wav,…
- Streaming playback, so audio plays as it arrives instead of after the whole clip is written. Streaming works with mp3, opus, aac and pcm. A wav or flac file states its length in a header before any…
- Sentence streaming for the voice assistant, off by default and set per profile. When the conversation agent streams its reply, speech starts on the first finished sentence rather than on the…
- Loudness normalisation, on by default. It runs on the stream for mp3, opus, aac and pcm. For wav and flac, and whenever a chime is added, it runs on the finished clip instead.
- A gain per profile, from -12 to +12 dB in steps of 0.5 dB, with a limiter so a boost cannot clip. With normalisation on, a boost raises the level much less than it says, see Known Limitations.
Shows in Vulpo
Chart card, Apple Watch.Information
- Installs
- 1k sharing analytics
- GitHub stars
- 221
- Connection
- Uses the vendor's cloud
- Upkeep
- Updated in the last 6 months
- Version
- v3.11,
- Category
- AI and voice, AI models
- Kind
- Marketplace integration
- Brand
- OpenAI
- Needs
- Needs the Marketplace (HACS on 2026.10 and older)
- Domain
openai_tts- Issues
- Report an issue













