btpod/openreader

An open-source read-along document reader server with high-quality TTS options, synchronized highlighting, and audiobook export for EPUB, PDF, DOCX, TXT, and MD.

โ˜… 0Forks 0GitHub โ†—Compare

Project website โ†—

README

GitHub Release License Docs Playwright Tests Docs Check

GitHub Stars GitHub Forks Discussions

๐Ÿ“„๐Ÿ”Š OpenReader

OpenReader is an open-source, self-host-friendly text-to-speech document reader built with Next.js for EPUB, PDF, TXT, MD, and DOCX with multilingual, synchronized read-along playback.

Previously named OpenReader-WebUI.

Get started in the docs.

โœจ Highlights

  • ๐Ÿงฑ Layout-aware PDF parsing with PP-DocLayoutV3 (ONNX) โ€” structured block detection, cross-page stitching, and geometry-based highlighting for precise read-along sync.
  • โฑ๏ธ Word-by-word highlighting via ONNX Whisper alignment through the compute worker control plane (NATS JetStream-backed).
  • โšก Segment-based read-along for EPUB, PDF, TXT, MD, and DOCX โ€” sentence-aware TTS with cached audio segments, background preloading, and resumable playback.
  • ๐ŸŽฏ Multi-provider TTS โ€” self-hosted OpenAI-compatible servers (Kokoro-FastAPI, KittenTTS-FastAPI, Orpheus-FastAPI) or cloud APIs (OpenAI, Replicate, DeepInfra).
  • ๐ŸŒ Multilingual support โ€” choose a document language for language-aware narration and highlighting. Available languages depend on the configured TTS provider and voice.
  • ๐ŸŽง Audiobook export in m4b/mp3 with resumable chapter processing.
  • ๐Ÿ—‚๏ธ Flexible backend โ€” embedded SeaweedFS or S3-compatible storage, SQLite or Postgres, server library import, and device sync.
  • ๐Ÿณ Self-host friendly โ€” Docker (amd64/arm64), built-in auth/session support, and automatic startup migrations.

๐Ÿš€ Start Here

Goal Link
Run with Docker Docker Quick Start
Deploy on Vercel Vercel Deployment
Deploy external compute worker Compute Worker (NATS JetStream)
Develop locally Local Development
Configure auth Auth
Configure SQL database Database and Migrations
Configure object storage Object / Blob Storage
Configure TTS providers TTS Providers
Run Kokoro locally Kokoro-FastAPI
Run KittenTTS locally KittenTTS-FastAPI
Get support or contribute Support and Contributing

๐Ÿงญ Community

๐Ÿ“œ License

MIT. See LICENSE.

Contributors

richardr1126github-actions[bot]RobbyV2thepycoderothrayteAlexErrant

Issues