Skip to content

Commit 819b9fe

Browse files
Updated
1 parent f2238c8 commit 819b9fe

1 file changed

Lines changed: 121 additions & 82 deletions

File tree

README.md

Lines changed: 121 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,154 @@
11
<div align="center">
22

33
# 🎧 PDF Text-to-Speech Reader
4+
### The Privacy-First, Zero-Cost PDF Reader
45

5-
### Listen to Any PDF — Free, Private, and Accessible
6+
**Transform any document into natural, human-like speech. Runs 100% locally in your browser.**
7+
**No uploads. No sign-ups. No data collection. Just code.**
68

7-
**The only PDF reader that reads your documents aloud with real-time word-by-word highlighting.**
8-
**Runs 100% in your browser. No uploads. No accounts. No data collection.**
9+
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](LICENSE)
10+
[![Made with React](https://img.shields.io/badge/React-19-61dafb.svg?style=flat-square&logo=react&logoColor=black)](https://react.dev)
11+
[![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6.svg?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org)
12+
[![Vite](https://img.shields.io/badge/Vite-6-646CFF.svg?style=flat-square&logo=vite&logoColor=white)](https://vite.dev)
13+
[![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-v4-06B6D4.svg?style=flat-square&logo=tailwindcss&logoColor=white)](https://tailwindcss.com)
914

10-
[![MIT License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
11-
[![Made with React](https://img.shields.io/badge/Made%20with-React-61dafb.svg)](https://reactjs.org)
12-
[![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](https://typescriptlang.org)
13-
[![Vite](https://img.shields.io/badge/Vite-646CFF?logo=vite&logoColor=white)](https://vitejs.dev)
14-
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
15-
16-
[Features](#-features) · [Quick Start](#-quick-start) · [Screenshots](#-screenshots) · [FAQ](#-faq) · [Contributing](#-contributing)
15+
[Live Demo](#) · [Report Bug](https://github.com/analystsandeep/pdf-text-to-speech-reader/issues) · [Request Feature](https://github.com/analystsandeep/pdf-text-to-speech-reader/issues)
1716

1817
</div>
1918

2019
---
2120

22-
## 💡 Why PDF TTS Reader?
21+
## 💡 Why This Exists
22+
23+
Most "free" PDF readers are data traps. They require account creation, upload your private documents to cloud servers, or lock essential accessibility features behind paywalls.
2324

24-
Most PDF readers don't have text-to-speech. The ones that do require cloud uploads, subscriptions, or accounts. This tool does **none of that.**
25+
**PDF TTS Reader** is different. It is an **offline-first, privacy-guaranteed application** built for students, researchers, and developers who need to digest complex documents efficiently without compromising their data.
2526

26-
| Feature | PDF TTS Reader | Adobe Acrobat | Online TTS Tools |
27-
|---------|:-------------:|:-------------:|:----------------:|
28-
| Free forever || ❌ (paid) | ⚠️ (limited) |
29-
| No file uploads ||||
30-
| No account needed ||||
31-
| Word-by-word highlight ||||
32-
| 50+ voice options ||| ⚠️ |
33-
| Works offline ||||
34-
| Open source ||||
27+
### Core Value Proposition
3528

36-
**Your PDF never leaves your computer.** Period.
29+
| Feature | PDF TTS Reader | Standard PDF Readers |
30+
| :--- | :---: | :---: |
31+
| **Privacy** | 🔒 **100% Local Processing** | ☁️ Cloud Uploads (Risk) |
32+
| **Cost** | 💸 **Free Forever (Open Source)** | 💰 Subscriptions / Paid |
33+
| **Accessibility** | 🧠 **Dyslexia-Friendly / Focus Mode** | ❌ Basic Zoom Only |
34+
| **Voices** | 🗣️ **50+ System Voices (Uncapped)** | ⚠️ Limited / Premium Only |
35+
| **Tracking** | 🛡️ **Zero Analytics / Cookies** | 📈 User Tracking |
3736

3837
---
3938

40-
## 🎯 Who Is This For?
39+
## ✨ Key Features
40+
41+
### 🎧 Immersive Audio Experience
42+
* **Smart Text-to-Speech (TTS)**: Utilizes the Web Speech API to access all native OS voices (Google, Microsoft, Apple) without API keys.
43+
* **Real-Time Synchronization**: Highlights words exactly as they are spoken, aiding comprehension and retention.
44+
* **Variable Speed Playback**: Adjustable granular speed control from **0.5x (Study Mode)** to **3.0x (Skim Mode)**.
45+
* **Sentence Mode**: Toggle between word-level highlighting for precision or sentence-level for flow.
46+
47+
### 👁️ Visual Intelligence & Focus
48+
* **Spotlight Cursor**: A premium, "Onlook-style" glow effect that tracks your mouse, reducing eye strain and improving reading focus.
49+
* **Focus Mode**: Instantly blurs the surrounding UI, dimming distractions so you can focus solely on the text.
50+
* **Smart Theming**: seamless toggle between **Light**, **Dark** (OLED optimized), and **Sepia** (Paper-like) modes to suit any lighting condition.
4151

42-
- 📚 **Students** — Listen to textbooks and papers while studying or multitasking
43-
- 🔬 **Researchers** — Process long academic papers by ear
44-
-**People with reading difficulties** — Dyslexia, visual impairments, or reading fatigue
45-
- 💼 **Professionals** — Listen to reports and documents hands-free
46-
- 🌍 **Language learners** — Hear correct pronunciation while reading
47-
- 👨‍💻 **Developers** — Read documentation without eye strain
52+
### ⚡ Performance & Engineering
53+
* **Custom Virtualization**: Why load 500 pages when you only read one? A custom virtualization engine renders only visible pages, ensuring 60FPS scrolling even on large textbooks.
54+
* **Responsive Design**: A unified UI that adapts from desktop monitors to mobile screens, featuring a touch-friendly drawer and controls.
55+
* **Anchor Scrolling**: Intelligent scroll position maintenance during zoom operations—no more losing your place when resizing.
4856

4957
---
5058

51-
## ✨ Features
52-
53-
### 🔊 Text-to-Speech Engine
54-
- **Word-by-word reading** with precise highlighting
55-
- **Human-sounding pauses** — natural breaks at commas, periods, paragraphs, and headings
56-
- **Sentence highlighting mode** — highlights the full sentence being read
57-
- **50+ voices** — choose from all voices available on your system
58-
- **Speed control** — 0.5× (slow) to 3× (fast) with instant switching
59-
- **Voice preview** — listen to any voice before selecting it
60-
61-
### 📄 PDF Viewer
62-
- **Drag-and-drop upload** — or click to browse
63-
- **Click any word to start** — reading begins from exactly where you click
64-
- **Zoom controls** — keyboard, buttons, scroll wheel, and fit-to-width
65-
- **Page navigation** — jump to any page instantly
66-
- **Virtualized rendering** — handles 300+ page PDFs without lag
67-
- **Auto-scroll** — follows the current word as you read
68-
69-
### 🔍 Smart Features
70-
- **Dictionary lookup** — right-click any word for instant definitions
71-
- **Heading detection** — automatically emphasizes titles and headings
72-
- **Punctuation-aware pauses** — commas get short pauses, periods get longer ones
73-
- **Speed-scaled pauses** — pauses adjust automatically at different speeds
74-
75-
### 🎨 User Experience
76-
- **Three themes** — Light, Dark, and Sepia
77-
- **Keyboard shortcuts** — Space (pause/resume), Escape (stop), ? (help)
78-
- **Toast notifications** — instant feedback for all actions
79-
- **Welcome guide** — interactive tutorial for first-time users
80-
- **"Go to Current Word"** — jump back to your reading position after scrolling
81-
82-
### 🔒 Privacy & Security
83-
- **100% local** — your PDF never leaves your computer
84-
- **No uploads** — zero network requests (except optional dictionary)
85-
- **No accounts** — no login, signup, or registration
86-
- **No tracking** — no analytics, cookies, or fingerprinting
87-
- **No data storage** — only localStorage for your theme preference
88-
- **Open source** — inspect every line of code yourself
59+
## 🛠️ Technical Stack
60+
61+
Built with the bleeding edge of modern web development:
62+
63+
* **Runtime**: [React 19](https://react.dev) (Leveraging new hooks and concurrent features)
64+
* **Build Tool**: [Vite 6](https://vitejs.dev) (Instant HMR and optimized production builds)
65+
* **Language**: [TypeScript 5](https://www.typescriptlang.org) (Strict type safety for reliability)
66+
* **Styling**: [Tailwind CSS v4](https://tailwindcss.com) (Utility-first, zero-runtime CSS)
67+
* **PDF Core**: [PDF.js](https://mozilla.github.io/pdf.js/) (Standard-compliant PDF parsing)
68+
* **Icons**: [Lucide React](https://lucide.dev) (Clean, consistent iconography)
8969

9070
---
9171

9272
## 🚀 Quick Start
9373

74+
Get up and running in less than 2 minutes.
75+
9476
### Prerequisites
95-
- [Node.js](https://nodejs.org/) (version 18 or higher)
96-
- A modern browser (Chrome or Edge recommended for best voice selection)
77+
78+
* **Node.js**: v18 or higher recommended.
79+
* **Browser**: Chrome, Edge, Safari, or Firefox (Chromium browsers recommended for best voice variety).
9780

9881
### Installation
9982

100-
```bash
101-
# Clone the repository
102-
git clone https://github.com/analystsandeep/pdf-text-to-speech-reader.git
83+
1. **Clone the repository**
84+
```bash
85+
git clone https://github.com/analystsandeep/pdf-text-to-speech-reader.git
86+
cd pdf-text-to-speech-reader
87+
```
88+
89+
2. **Install dependencies**
90+
```bash
91+
npm install
92+
# or
93+
pnpm install
94+
# or
95+
yarn install
96+
```
97+
98+
3. **Start the development server**
99+
```bash
100+
npm run dev
101+
```
102+
103+
4. Open `http://localhost:5173` to view the app.
104+
105+
---
106+
107+
## 🎮 Usage Guide
108+
109+
### Keyboard Shortcuts
110+
Power users can navigate without touching the mouse:
103111

104-
# Navigate to project folder
105-
cd pdf-text-to-speech-reader
112+
| Key | Action |
113+
| :--- | :--- |
114+
| <kbd>Space</kbd> | Play / Pause reading |
115+
| <kbd>Esc</kbd> | Stop reading / Close active modal |
116+
| <kbd>/</kbd> | Search / Open help |
117+
| <kbd>?</kbd> | Toggle Keyboard Shortcuts list |
118+
| <kbd>Ctrl</kbd> + <kbd>+</kbd> | Zoom In |
119+
| <kbd>Ctrl</kbd> + <kbd>-</kbd> | Zoom Out |
120+
| <kbd>Ctrl</kbd> + <kbd>0</kbd> | Reset Zoom to Fit Width |
106121

107-
# Install dependencies
108-
npm install
122+
### Gestures & Mouse
123+
* **Click Word**: Start reading from that specific word.
124+
* **Double Click**: Pause playback.
125+
* **Right Click Word**: Define word (Dictionary lookup).
126+
* **Scroll Wheel**: Navigate document.
127+
* **Ctrl + Scroll**: Zoom in/out.
109128

110-
# Start the app
111-
<<<<<<< HEAD
112-
npm run dev
113-
=======
114-
npm run dev
115-
>>>>>>> ecc14c2591baff4b9aa0ad5fcbd1bb5fd626daaa
129+
---
130+
131+
## 🤝 Contributing
132+
133+
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
134+
135+
1. Fork the Project
136+
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
137+
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
138+
4. Push to the Branch (`git push origin feature/AmazingFeature`)
139+
5. Open a Pull Request
140+
141+
---
142+
143+
## 📄 License
144+
145+
Distributed under the MIT License. See `LICENSE` for more information.
146+
147+
---
148+
149+
<div align="center">
150+
151+
**Developed for the Open Source Community**
152+
[Analyst Sandeep](https://github.com/analystsandeep)
153+
154+
</div>

0 commit comments

Comments
 (0)