# Home Assistant text to speech in English, Thai, and Mandarin

A Home Assistant household that speaks more than one language needs announcements and replies in each of them. Install the OpenAI TTS custom integration from HACS and point its Custom preset at Paxa with an endpoint and an API key. Assist and your announcements then speak English, Thai, and Mandarin in any Paxa TTS Flash v2 voice.

## One integration, pointed at Paxa

The provider steps and the TTS agent's fields are the setup guide's own. The Custom preset has no voice list for Paxa, and you type the voice id into the agent.

## From a key to a spoken announcement

The agent you add is a regular text-to-speech entity. Assist replies with it, and the tts.speak and openai_tts.say actions announce with it.

1. **Install OpenAI TTS**: In HACS, download the OpenAI TTS custom integration and restart Home Assistant.
2. **Connect Paxa**: Add an OpenAI TTS entry with the Custom / Self-hosted provider, set API Endpoint to https://api.paxalabs.com/v1/audio/speech, and paste your Paxa API key.
3. **Choose the agent in Assist**: Add a TTS agent with model paxa-tts-flash-v2 and a Paxa voice id, then choose it under Text-to-speech in Settings > Voice assistants.

Paxa TTS Flash v2 lists at $10 per 1M characters.

## Questions

### What is Home Assistant?

Home Assistant describes itself as open source home automation that puts local control and privacy first. Its text-to-speech integration lets it speak to you, and its voice assistant, Assist, uses text to speech when it replies.

### Which voices can Home Assistant use?

Home Assistant can use any of the 50 Paxa TTS Flash v2 voices, and each one speaks English, Thai, and Mandarin. Type a voice id from [GET /v1/voices](https://paxalabs.com/docs/api/voices) into the agent, or an OpenAI voice name such as `alloy`. [The voice library](https://paxalabs.com/voices) plays them.

### Why does a fast Speed setting fail?

The integration's Speed slider reaches past Paxa's range. Paxa accepts 0.5 to 1.5 and answers 400 outside it.

### Why does setup pass with a mistyped key?

Setup checks the entry with an empty text, which Paxa refuses before it reads the key. A mistyped key passes that check and fails at the first announcement. When speech fails, compare the key with [the dashboard](https://paxalabs.com/app/keys) first.

## Start with free credits

Sign in with Google, GitHub, or Hugging Face and spend 100 one-time free credits on your own text.
