Narrate is a Chrome Extension that reads aloud the entire readable content of a webpage (such as a Medium article) using ElevenLabs' AI-generated voice. As the voice progresses, Narrate highlights each sentence on the page in real-time, creating a synchronized read-along experience.
- Extracts readable article content from any webpage using a simplified version of Mozilla Readability
- Splits content into sentences with intelligent handling of edge cases
- Uses ElevenLabs' Text-to-Speech API to generate natural-sounding audio (with browser TTS fallback)
- Highlights each sentence in the DOM as it's being spoken
- Provides a floating control panel with Play/Pause/Stop buttons
manifest.json
: Chrome extension manifest (V3)content-script.js
: Extracts content and injects highlights into the DOMoverlay.html
+overlay.js
: Floating UI controlstts/elevenlabs.js
: Handles API calls to ElevenLabs TTSaudio/audio-queue.js
: Queues and plays audio clipsutils/readability.js
: Simplified version of Mozilla Readabilityutils/tokenizer.js
: Splits text into sentencesstyles/highlight.css
: CSS for active sentence highlighting
- Clone this repository
- Open Chrome and navigate to
chrome://extensions/
- Enable "Developer mode" in the top right
- Click "Load unpacked" and select the
narrate
directory - The extension will appear in your Chrome toolbar
- Navigate to any article or text-heavy webpage
- Click the Narrate icon in your Chrome toolbar
- A floating control panel will appear in the bottom right of the page
- Click the Play button to start reading the content
- Each sentence will be highlighted as it's read aloud
- Use the Pause/Stop buttons to control playback
To use ElevenLabs TTS instead of the browser's built-in TTS:
- Sign up for an ElevenLabs account
- Get your API key from the ElevenLabs dashboard
- Add your API key in the extension options (future feature)
This is an MVP version focusing on core functionality. Future improvements could include:
- User authentication
- Local storage for preferences
- Multiple voice options
- Enhanced text extraction
- Speed controls
- More sophisticated sentence tokenization
MIT