Introduction
OpenReader is an open source text-to-speech document reader built with Next.js. It provides a read-along experience with narration for EPUB, PDF, TXT, MD, and DOCX documents.
Previously named OpenReader-WebUI.
It supports multiple TTS providers including OpenAI, Replicate, DeepInfra, and custom OpenAI-compatible endpoints such as Kokoro-FastAPI, KittenTTS-FastAPI, and Orpheus-FastAPI.
✨ Highlights
- 🧱 Layout-aware PDF Parsing
- PP-DocLayoutV3 (ONNX) detects structured blocks with cross-page stitching and geometry-based highlighting for precise read-along sync and clean TTS segmentation
- ⏱️ Word-by-word Highlighting via ONNX Whisper alignment
- Powered by the external compute worker control plane (NATS JetStream-backed)
- ⚡ Segment-based TTS Playback
- Sentence-aware generation with cached audio segments, background preloading, and resumable playback across EPUB, PDF, TXT, MD, and DOCX
- 🎯 Multi-Provider TTS Support
- Self-hosted: Kokoro-FastAPI (multi-voice combinations), KittenTTS-FastAPI, Orpheus-FastAPI, or any custom OpenAI-compatible endpoint
- Cloud: OpenAI (
tts-1,tts-1-hd,gpt-4o-mini-tts), Replicate (built-in catalog + any model ID), DeepInfra (Kokoro-82M and others)
- 🎧 Audiobook Export in
m4b/mp3with resumable chapter generation - 🗂️ Flexible Backend — embedded SeaweedFS or S3-compatible storage, SQLite or Postgres, server library import, and device sync
- 🔐 Auth and User Isolation — auth is required in v4+, with optional anonymous auth sessions for guest flows
- 🎨 Customizable — 13 built-in themes (light and dark palettes), per-user TTS settings, and document handling controls
🧭 Key Docs
- Docker Quick Start
- Local Development
- Vercel Deployment
- Environment Variables
- Auth
- Database
- Object / Blob Storage
- Migrations
- Server Library Import
- TTS Providers
Source Repository
- GitHub: richardr1126/openreader