- Is my PDF actually uploaded anywhere?
- No. Everything happens inside your browser tab. The file is read by the browser's built-in FileReader API, and the text is passed directly to the Web Speech API — both are local APIs that require no network access. You can confirm this by putting your device in airplane mode: the tool still works perfectly.
- Which browsers and voices are supported?
- The Web Speech API is supported in Chrome, Edge, Safari 14+, and most modern browsers. Available voices depend on your operating system — Chrome on Windows typically has 20+ voices including many natural-sounding ones, and macOS provides high-quality neural voices such as Samantha and Alex. Firefox has limited speech synthesis support on some platforms; if no voices appear, try Chrome or Edge. The voice list is populated from whatever your OS provides.
- Why does word highlighting sometimes lag or jump?
- Word boundary events (
onboundary) are fired by the browser's speech engine. Some voices (especially cloud-backed voices in Chrome) may fire these events with slight timing variations, causing the highlight to occasionally appear a word early or late. Switching to a local/offline voice (usually labelled without a cloud icon) gives the most accurate real-time highlighting. Reducing the speed (to 0.75× or 1×) also improves tracking accuracy.
- Can I read scanned PDFs (images of text)?
- Scanned PDFs contain rasterized images rather than embedded text, so pdf.js cannot extract words from them directly — this is a limitation of the PDF format itself, not this tool. For scanned documents you would first need to run OCR (optical character recognition) to produce a searchable PDF or a text file, then open that result here. Most desktop PDF applications and online OCR services can produce searchable PDFs.
- What is the maximum file size I can use?
- There is no hard limit set by this tool — the constraint is your browser's available memory. In practice, PDFs up to 50–100 MB work fine in modern browsers. Very large documents (hundreds of pages) may take a few seconds longer to extract because pdf.js processes each page sequentially, but reading starts as soon as extraction completes. Plain .txt files load almost instantly regardless of size.
- How does the Skip Sentence button work?
- The extracted text is split into individual sentences before reading begins. Each sentence is loaded into the speech engine as a separate utterance. Pressing Skip Sentence cancels the current utterance and advances the queue to the next sentence, so you can jump past a section that is irrelevant without having to stop and restart from scratch.