Skip to content
Home Assistant TestFlight
Media & entertainment

OpenAI TTS

sfortis/openai_tts · vv3.11

HACSCloud polling

Text-to-speech for Home Assistant from OpenAI, Mistral, Groq, Lemonfox, Kokoro, Chatterbox or any server that implements the OpenAI speech API, with announcements that restore your volume and music.

In Apple Home through HomeKit Bridge

What HomeKit Bridge makes of each kind of entity this integration creates, read from its source code. A device only gets the ones that apply to it.

EntityShows up asNote
sensorSensor (temperature, humidity, air quality…)

What people report

Text-to-speech engine with announcement handling for speakers; Sonos and Music Assistant players behave differently on volume and announcements.

  • Partly works2
DeviceIn Home AssistantIn Apple HomeWhat they saidSource
Music Assistant playersPartly worksAnnouncement volume clamped to per-player range, 15 to 75 percent default
Saved copy
Limitations: Music Assistant keeps announcement volume within a range set for each player, 15 to 75 percent by default, and changes a requested level outside that range. The integration logs a warning when the requested level is outside the default range. It cannot see a range changed in Music Assistant. Music Assistant ignores the requested level on a player whose announcement volume strategy is set to none, and the announcement plays at the player's current volume. A Sonos speaker without AudioClip support, which is older S1 hardware, falls back to ordinary playback. A volume override is …

Excerpt saved from the README on 2026-10-23.

README
Sonos speaker (S1, no AudioClip)Partly worksOlder S1 hardware falls back to ordinary playback; volume override ignored
Saved copy
… ignores the requested level on a player whose announcement volume strategy is set to none, and the announcement plays at the player's current volume. A Sonos speaker without AudioClip support, which is older S1 hardware, falls back to ordinary playback. A volume override is then ignored on that speaker, and its music does not come back. Home Assistant's Sonos integration also supports announcements only in mp3 and wav. The announce field changes nothing on speakers that announce on their own: Sonos, Music Assistant and any player that reports the announcement feature. On other speakers it …

Excerpt saved from the README on 2026-10-23.

README

Gathered from GitHub issues, pull requests, discussions and docs, and from r/homeassistant. These are individual reports, so check the linked thread and the date before you buy.

How it connects

Cloud polling

Goes through the maker’s cloud, asking it for updates every so often. Needs the internet and an account.

Details

Installs (analytics)1,025 (0.14%)
GitHub stars221
Latest versionv3.11 (2026-10-11)
Set up in the UIYes
Maintainers@sfortis
LicenseGPL-3.0

Limitations from the README

  • Music Assistant keeps announcement volume within a range set for each player, 15 to 75 percent by default, and changes a requested level outside that range. The integration logs a warning when the requested level is outside the default range. It cannot see a range changed in Music Assistant.
  • Music Assistant ignores the requested level on a player whose announcement volume strategy is set to none, and the announcement plays at the player's current volume.
  • A Sonos speaker without AudioClip support, which is older S1 hardware, falls back to ordinary playback. A volume override is then ignored on that speaker, and its music does not come back. Home Assistant's Sonos integration also supports announcements only in mp3 and wav.
  • The announce field changes nothing on speakers that announce on their own: Sonos, Music Assistant and any player that reports the announcement feature. On other speakers it decides whether they are paused and resumed, but only when the call sets no volume, because a volume override always pauses them.
  • A chime turns streaming off for every request it is added to, including every voice assistant reply of a profile that has the chime switched on.
  • With normalisation on, the audio is already close to full scale, so the limiter takes back most of a positive gain. In a measurement, +6 dB raised the loudness by about 4 dB and +12 dB by about 5 dB, while a cut was applied in full. For a large boost, turn normalisation off, and the gain is then applied as set.
  • All the speakers that the integration pauses and restores in one call share one playback request. When it fails on one of them, the announcement counts as failed for all of them, their volumes and music are restored straight away, and the action reports an error.
  • Groq accepts only wav, so a Groq profile never streams. A wav or flac profile never streams on any provider.
  • Audio that the integration processes, for a chime, loudness normalisation or gain, is written as 24 kHz mono, which is what every supported provider produces.
  • The language of a call is not sent to the provider. The provider speaks the language the message is written in.

Notable forks

Forks with stars, or with code pushed at least 90 days after the original’s last push. Useful when the original goes quiet.

ForkStarsLast pushDescription
shiipou/openai_stt★ 102024-01-25OpenAI STT custom component for HA

In ReReHome

Whatever HomeKit Bridge shares reaches Apple Home as normal HomeKit accessories behind your Home Assistant bridge, so ReReHome shows and controls them like any other.

Bridges get their own settings page listing the accessories behind them.