AKHIL SINGH
1.5x

A Chrome extension that reads articles, selections and local PDFs aloud, highlighting each word on the page as it is spoken. Published on the Chrome Web Store.

The problem

After building tg-vaani I got used to listening to long writing. But Telegram is somewhere you have to send things to. If I was already in the browser reading a long post, copying it into a chat broke the flow. Screen readers exist, but they sound flat and give no visual sense of where you are.

What I built

Click the icon or hit a shortcut. Whisperian pulls the article body out of the page, drops navbars, ads and code blocks, splits it into paragraphs and starts reading. The current paragraph and the current word light up on the actual page as the audio plays.

Click any paragraph to jump there. Right-click a selection to hear only that passage. Drop a local PDF into a built-in reader view and get the same playback and highlighting. Speed goes up to 2.5x with pitch preserved.

How it works

Manifest V3 splits an extension into isolated contexts, so the work is spread across them. A content script extracts blocks and draws highlights using the CSS Custom Highlight API, with a fallback. The player widget lives in a Shadow DOM so the host site's CSS can't break it. The service worker proxies TTS requests to get around page CSP and CORS, and an offscreen document owns audio playback.

The TTS API returns word-level timestamps along with the audio. Those timestamps drive the highlight, and a DOM range mapping ties each word back to the text node it came from. Auto-scroll follows the active word and backs off when you scroll yourself.

Outcome

Published on the Chrome Web Store with a privacy policy and landing page. It runs on the same TTS backend as tg-vaani.

Need something like this built? contact@akhilsingh.in

Next
Voxora →