Skip to main content

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, DeepInfra, and custom OpenAI-compatible endpoints such as Kokoro-FastAPI and Orpheus-FastAPI.

✨ Highlights

  • 🎯 Multi-Provider TTS Support
    • Kokoro-FastAPI: supports multi-voice combinations (for example af_heart+af_bella)
    • Orpheus-FastAPI
    • Custom OpenAI-compatible: any TTS API with /v1/audio/voices and /v1/audio/speech endpoints
    • Cloud TTS providers:
      • DeepInfra: Kokoro-82M and other hosted models
      • OpenAI API: tts-1, tts-1-hd, and gpt-4o-mini-tts
  • 🛜 Server-side Document Storage
    • Documents are persisted in server blob/object storage for consistent access
  • 📚 External Library Import
    • Import documents from server-mounted folders
  • 🎧 Server-side Audiobook Export in m4b/mp3 with resumable chapter generation
  • 📖 Read Along Experience
    • Real-time highlighting for PDF/EPUB, with optional word-level whisper.cpp timestamps
  • 🔐 Auth Optional by Design
    • Run no-auth for local use, or enable auth with user isolation and claim flow
  • 🗂️ Flexible Storage and Database Modes with embedded defaults or external S3/Postgres
  • 🚀 Production-ready Server Behavior with TTS caching/retries/rate limits and startup migrations
  • 🎨 Customizable Experience
    • Theme, TTS, and document handling controls

🧭 Key Docs

Source Repository