--- title: TTS Providers --- import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; OpenReader WebUI supports OpenAI-compatible TTS providers through a common API shape. :::tip If you are running a self-hosted TTS server (Kokoro/Orpheus/etc.), use **Custom OpenAI-Like** in Settings. ::: ## Quick Setup by Provider 1. In Settings, choose provider: `OpenAI`. 2. Keep the default `API_BASE` (auto-filled). 3. Set `API_KEY` to your OpenAI key. 4. Choose model/voice. 1. In Settings, choose provider: `Deepinfra`. 2. Keep the default `API_BASE` (auto-filled). 3. Set `API_KEY` to your DeepInfra key. 4. Choose model/voice. 1. In Settings, choose provider: `Custom OpenAI-Like`. 2. Set `API_BASE` to your endpoint (example: `http://host.docker.internal:8880/v1`). 3. Set `API_KEY` if your provider requires one. 4. Choose model/voice. ## Provider Dropdown Behavior In Settings, provider options include: - `OpenAI` - `Deepinfra` - `Custom OpenAI-Like` (Kokoro, Orpheus, and other OpenAI-compatible endpoints) `API_BASE` guidance: - `OpenAI` and `Deepinfra` auto-fill default endpoints. - `Custom OpenAI-Like` requires setting `API_BASE` manually. :::info OpenAI-Compatible API Shape Custom providers should expose: - `GET /v1/audio/voices` - `POST /v1/audio/speech` ::: :::warning Server-Reachable API Base TTS requests are sent from the Next.js server, not directly from the browser. `API_BASE` must be reachable from the server runtime. ::: ## Provider Guides - [Kokoro-FastAPI](./tts-provider-guides/kokoro-fastapi) - [Orpheus-FastAPI](./tts-provider-guides/orpheus-fastapi) - [DeepInfra](./tts-provider-guides/deepinfra) - [OpenAI](./tts-provider-guides/openai) - [Custom OpenAI-Like](./tts-provider-guides/custom-openai) ## Related Configuration - [TTS Environment Variables](../reference/environment-variables#tts-provider-and-request-behavior) - [TTS Rate Limiting](./tts-rate-limiting) - [Auth](./auth)