Important
Readium Speech Server is a proof of concept exploring how TTS (Text to Speech) models can be either hosted or proxied through a single Web service.
This project is not currently production-ready and it's missing key features such as caching or long term storage options.
A remote text-to-speech HTTP service for the Readium ecosystem. Exposes a uniform API for listing voices and synthesizing speech, backed by open-source models and proxied commercial models.
Designed to pair with Readium Speech, Readium toolkits or any other application.
| API | GET /voices · POST /synthesize |
| Providers | PocketTTS · ElevenLabs (planned) |
| Languages | English · French · Italian · German · Spanish · Portuguese |
| Formats | MP3 · WAV · Opus |
| Word boundaries | Planned (ElevenLabs) |
| Deployment | Docker · CPU-only · Single named volume for model weights |
You need Docker — nothing else. No Python, no PyTorch, no model files on your machine.
make configure # interactive setup → writes .env
make build # build the image (~2 min)
make dev-docker # start server — downloads models on first runServer: http://localhost:8000 · Interactive docs: http://localhost:8000/docs · Demo: http://localhost:8000/demo
Live demo: speech-server.readium.org/demo
Quick test:
curl -s -X POST http://localhost:8000/synthesize \
-H 'Content-Type: application/json' \
-d '{"text":"Hello world","voice":"urn:readium:tts:pocket:en-alba"}' \
-o /tmp/speech.mp3 && open /tmp/speech.mp3First start downloads the selected language models (~240 MB each) into a persistent Docker volume. Every restart after that is instant — models are already cached.
- readium/speech — TypeScript read-aloud library this server is designed to pair with
- HadrienGardeur/web-speech-recommended-voices — voice catalog schema reference (CC0)
- pocket-tts — the underlying CPU TTS engine