OpenReader WebUI is a web-based PDF reader with integrated Text-to-Speech capabilities. It provides a clean interface for reading PDF documents while offering synchronized text-to-speech playback using OpenAI's TTS API.
Screen.Recording.2025-01-20.at.7.18.12.PM.mov
-
PDF Document Management
- Local document storage using IndexedDB
- PDF text extraction and rendering
-
Text-to-Speech Integration
- Real-time text-to-speech using OpenAI's TTS API, Kokoro TTS API, or anything else that follows the OpenAI API format
- Synchronized text highlighting
- Configurable playback speed
- Multiple voice options
- Click-to-read functionality
-
User Interface
- Light/Dark/System theme support
- Responsive design
- Configurable API settings
- Interactive PDF text selection
- Framework: Next.js with React
- Storage: IndexedDB for document storage
- PDF Processing:
- react-pdf for rendering
- pdf.js for text extraction
- compromise for text analysis
- UI Components:
- Headless UI for modals and dropdowns
- Tailwind CSS for styling
- TTS Integration: OpenAI TTS API
You will need
node
andnpm
installed on your machine. If you don't have it, I recommend installing it using nvm.
- Clone the repository:
git clone https://github.com/richardr1126/OpenReader-WebUI.git
cd OpenReader-WebUI
- Install dependencies:
npm install
- Set up environment variables:
cp .env.template .env
Edit the
.env
file with your configuration settings.
- Start the development server:
npm run dev
The application will be available at http://localhost:3000.
npm run dev
- Start development server with Turbopacknpm run build
- Create production buildnpm run start
- Start production servernpm run lint
- Run ESLint for code quality
src/
├── app/ # Next.js app router
├── components/ # UI components
├── contexts/ # Contexts for state management
└── services/ # Utility functions
The application requires modern browser features:
- IndexedDB for document storage
- PDF.js for document rendering
MIT License
- react-pdf for the PDF rendering library.
- Kokoro-82M text-to-speech model
- Kokoro-FastAPI for the text-to-speech api wrapper.
Thank you ❤️