A real-time, camera-powered text reader with multilingual OCR and voice playback. Bring text on paper or screens to life using your webcam! Supports English 🇬🇧, Bengali 🇧🇩, Hindi 🇮🇳, and Tamil 🇮🇳.
- 🎥 Live Camera Preview with enhanced GUI overlay
- 👁️🗨️ Instant OCR from a smart capture area
- 🔊 Text-to-Speech for extracted text
- 🌐 Multiple Languages: English, Bengali, Hindi, Tamil (press 1–4)
- ⌨️ Hotkey Controls:
1️⃣ 2️⃣ 3️⃣ 4️⃣ — Change language
⬜ SPACE — Capture & Read Text
🔁 R — Repeat Last Text
❌ Q — Quit Application - 🪞 Mirror Mode for easy point-and-capture interface
- Python 3.7+
- Tesseract OCR installed and added to your system PATH
-git clone https://github.com/rivu-intel45/luna-reader.git -pip install -r requirements.txt
- 🪟 Windows: Download installer and complete setup
- 🐧 Linux: sudo apt-get install tesseract-ocr tesseract-ocr-ben tesseract-ocr-hin tesseract-ocr-tam
- 🍏 macOS: brew install tesseract
For full language support, make sure
ben.traineddata,hin.traineddata, andtam.traineddataare present in yourtessdatafolder.
Update the Tesseract path in your code if needed: pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"
Then start the notebook or script and point your camera at the text inside the green capture box.
| Key | Action | Emoji |
|---|---|---|
| 1 | Switch to English | 🇬🇧 |
| 2 | Switch to Bengali | 🇧🇩 |
| 3 | Switch to Hindi | 🇮🇳 |
| 4 | Switch to Tamil | 🇮🇳 |
| SPACE | Capture & Read Text | ⬜️ |
| R | Repeat Last Text | 🔁 |
| Q | Quit Application | ❌ |
- opencv-python
- pytesseract
- pillow
- gtts
- pygame
- numpy
⚠️ Tesseract not found? Check thetesseract_cmdpath and PATH configuration.- 🔇 No audio? Verify system volume, default output device, and
pygameinstallation. - 📋 No text detected? Improve lighting, adjust focus, and keep text fully inside the capture box.
Pull requests are welcome!
For major changes, please open an issue first to discuss what you would like to improve or add.