Other
Use any OpenAI-compatible TTS service with OpenReader, including self-hosted servers not covered by a dedicated guide.
Requirements
Your service must expose these endpoints:
GET /v1/audio/voicesPOST /v1/audio/speech
Known compatible implementations: Kokoro-FastAPI, KittenTTS-FastAPI, Orpheus-FastAPI.
Setup
Environment variables (recommended for deployment):
API_BASE=http://your-tts-server/v1
API_KEY=optional-key-if-required
Or in-app via Settings → TTS Provider:
- Set provider to
Custom OpenAI-Like. - Set
API_BASEto your service's base URL (typically ending in/v1). - Set
API_KEYif your service requires authentication. - Choose a model and voice supported by your backend.
Settings modal values override env vars. See TTS Providers for how the two layers interact.
TTS requests are server-side
API_BASE must be reachable from the Next.js server, not just the browser. In Docker, use container names or host.docker.internal.
Troubleshooting
If voices don't load, check that /v1/audio/voices is reachable from the server and returns a valid response shape.