Skip to content

Instantly share code, notes, and snippets.

@YoraiLevi
Last active August 9, 2026 16:25
Show Gist options
  • Select an option

  • Save YoraiLevi/cfc6320766905504d23e7100d01e4c7d to your computer and use it in GitHub Desktop.

Select an option

Save YoraiLevi/cfc6320766905504d23e7100d01e4c7d to your computer and use it in GitHub Desktop.
Reading the Screen Aloud — a catalogue of screen & selection TTS (Aug 2026): 1,553 entries banded by what they actually do, tagged by platform / acquisition mechanism / clipboard cost / model supply, with 1,016 first-hand community reports and a direct link on every item discussed. No ranking, no verdict, nothing discarded.

Reading the Screen Aloud — a catalogue of screen and selection text-to-speech

1,553 catalogued entries. No recommendation, no ranking, no verdict.

What this is

A capability catalogue of software that turns what is on your screen — a selection, a region, a window, a focused control — into speech. It profiles mechanisms: how each tool gets text off the screen, how a human triggers it, what synthesises the audio, where the voices come from, and what each of those choices costs.

It is deliberately not a ranking. Bands and tags describe scope, not quality. A tool banded ADJACENT may be better software than one banded CORE; it simply does a different job. Where a comparison appears it carries a number, not an ordinal.

Nothing found was discarded. Items that turned out to be dormant, withdrawn, proprietary, mis-named or entirely off-target are catalogued with a band and a reason rather than deleted — a silent exclusion is indistinguishable from an oversight.

Data date: 2026-08-09. Every star count, licence, install count and price was read on that date or is labelled otherwise. Every claim carries an evidence tier:

Tier Meaning Rows
[measured] The source, API or code was read for this specific capability 885
[vendor] The maker's own claim, not independently checked 319
[lead] It exists; the capability was not read 316
[derived] An inference from measured facts 21
[community] A user report, always quoted and deep-linked

Nothing was executed. No tool was installed, run or timed. Every capability claim is documentation-reading, source-reading or a community report. This is the single largest limit on everything below, and it is stated first rather than buried.

The one idea that makes the catalogue readable

A screen reader is a pipeline, not a product, and the popular projects occupy one slice of it:

L1 ACQUIRE  ── how text gets off the screen
               selection via accessibility API · selection via simulated copy · clipboard watch
               OCR of a region · OCR full-screen · accessibility-tree follow-focus · browser DOM
L2 TRIGGER  ── how a human invokes it on what is on screen right now
               global hotkey · tray daemon · floating button · browser toolbar · follow-focus mode
L3 SYNTH    ── text to audio: local neural model · OS-native engine · cloud API
L4 MODELS   ── where voices come from: HuggingFace · bundled · ONNX · OS voices · cloud account
L5 OUTPUT   ── playback: pause/resume/skip · speed · word highlighting · sentence streaming

Piper, Kokoro, XTTS, F5-TTS, Chatterbox and GPT-SoVITS own L3 and L4 only. Hand them a string, get audio back. They have no way to get text off a screen and no human trigger. Sort this domain by stars and they fill the top of the table while being unable to do the thing the catalogue is about. The tools that own L1 and L2 mostly carry two to three orders of magnitude fewer stars.

That is why every table below leads with acquisition, not popularity.

The catalogue at a glance

Basis for every figure in this section: FINAL.json, rows where band = CORE, n = 448.

Band Entries What it means
CORE 448 Owns acquisition and a human trigger — it can read what is on your screen
ADJACENT 730 Brokers, OCR-to-clipboard, voice supply, document-scoped readers, protocols, harnesses
ENGINE-only 279 Synthesis; no acquisition, no human trigger
OUT-OF-BAND 96 Found in the sweep, does not serve this use case — kept, not discarded

How the 448 get text off the screen:

Acquisition n Reaches Does not reach
browser-DOM 82 Page content in its own tab Anything outside the browser
clipboard-watch 73 Whatever you copy, from anywhere Requires you to copy first
selection via accessibility API 68 The live selection, without touching your clipboard Apps that do not publish it
accessibility-tree follow-focus 61 Whatever has focus, continuously Content not exposed to the tree
OCR screen-region 53 Any pixels, including remote sessions Costs an OCR pass; no semantics
selection via simulated copy 51 Any window that answers Ctrl/Cmd+C Destroys your clipboard
unknown 44 Mechanism not documented anywhere reachable
OCR full-screen 13 The whole display Same costs, wider
document-parse 3 Files opened inside the tool The rest of the screen

The two costs that decide daily usability, and are usually undocumented:

Does it clobber your clipboard? n Does it survive in Electron apps and terminals? n
no 261 yes 118
unknown 105 partial 49
yes 60 no 48
n/a 9 unknown 145
not recorded 13 n/a / not recorded 88

Platform, runtime, status (CORE band; platforms multi-count):

Platform n Runtime n Status n
Windows 198 local-only 253 active 169
macOS 134 hybrid 75 dormant 66
browser-extension 95 cloud-API 56 commercial-live 48
Linux (unspecified) 48 os-native 39 discontinued 13
Linux-X11 40 unknown 25 archived 6
Linux-Wayland 28
Android 28
iOS 16
headless-server 3

253 of 448 run entirely locally — no account, no key, no third party in the loop at runtime.

Of the 68 accessibility-API selection readers: 44 are clipboard-safe, 39 run on macOS, and 19 are both on macOS and clipboard-safe.

Contents

File What is in it
01-anatomy.md The five layers in full, the six acquisition mechanisms compared, band definitions, and the star-count evidence for the burial problem
02-platform-mechanics.md Why the same tool behaves differently per OS, at API level: macOS AX and TCC, Windows UIA and SAPI, X11 PRIMARY vs Wayland's privileged operations, browsers, and remote desktop
03-community-reception.md What 1,016 first-hand reports across six venues actually say — including the contradiction this document refuses to resolve
04-voice-and-model-supply.md Where voices come from, what they cost, real install weight vs advertised size, the espeak-ng licensing question, and the commercial AT voice market
05-method-coverage-and-gaps.md How this was built, what it could not establish, what does not exist, and the exact commands to re-run the sweep
06-appendix-S-stack-notes.md A strippable annotation layer for one specific setup. Delete it and every fact above still stands
catalogue-core.md 448 rows — tool, platforms, acquisition, clipboard cost, trigger chord, runtime, status, stars, licence, evidence tier
catalogue-engines.md 279 rows — synthesis engines
catalogue-adjacent.md 730 rows — the adjacent tier
catalogue-outofband.md 96 rows — found and kept, out of scope

Three findings worth reading before the tables

1. The axis is latency, not modernity. Blind screen-reader users repeatedly report preferring formant synthesis (ETI-Eloquence, eSpeak NG, DECtalk) over neural models — for key-press-to-speech latency, for predictability at 600–1200 wpm, and for accuracy. Dyslexic readers report the opposite in places, and the dyslexia population is itself split. Cutting across both: a blind NVDA user who actively wants neural synthesis and is blocked only by latency, with measured figures — 500 ms FP32 and 1100 ms INT8 for Kokoro against 5–10 ms for eSpeak (kokoro#291). The evidence is laid out in 03-community-reception.md and not resolved — which population a reader belongs to changes the answer, and that is the reader's call.

2. Four failure classes belong to the domain, not to any project. Neural word-skipping and garbling (also present in OS-native and commercial stacks, so not a neural-only defect); advertised model size versus real install weight; the espeak-ng phonemizer sitting under Piper, Kokoro and KittenTTS so its defects propagate downstream; and missing SSML in the newer open models. Two more surfaced beyond the first four: the Wayland wall, and PDF/maths/citation syntax defeating every reader tested.

3. Remote desktop inverts the usual preference order. Natively, an accessibility-API reader is the well-behaved non-destructive choice and a clipboard-simulating one is crude. Inside an RDP window on a macOS client the accessibility route returns nothing — the session is one opaque surface — while clipboard redirection is bidirectional and unqualified in Microsoft's own client table. The crude route is the one that works. Full mechanics in 02-platform-mechanics.md.

What this document deliberately does not do

  • No recommendation and no ranking. Not a hedge — a design constraint. Superlatives appear only inside attributed quotations, never in the author's voice.
  • No resolution of the latency-versus-quality question. The evidence is presented from both sides with its provenance, because the answer depends on facts about the reader.
  • No claim to have run anything. See the evidence tiers above.
  • No silent exclusions. Every item found is in one of the four catalogue files.

Reproducing and disputing this

05-method-coverage-and-gaps.md carries the query vocabulary and the exact gh and API commands, so the sweep can be re-run and the numbers refreshed rather than trusted. Free-text values that had escaped their enums were normalised into coded values with the originals preserved in acquisition_method_raw and platforms_raw, so any mapping judgement can be disputed at the row.

Known internal inconsistency, disclosed rather than papered over: 57 of the 279 ENGINE-only rows still carry an L1 or L2 layer tag, and 2 of the 448 CORE rows lack one. Verification covered the CORE band only, so those tags were never re-checked.


Method, in one paragraph

Two blind discovery rounds (8 angles, then 10 more chosen by a critic that proved — by counting the first round's 639 logged queries — that all of them had hit essentially four surfaces). A second critic verified its claims against a 3,530-key name index and killed two of its own hypotheses rather than report false gaps. Then verification: 378 CORE rows re-read against primary sources, producing 594 factual corrections and 36 re-bandings; of 226 rows claiming measured in the registry and forge sweeps, 33 kept that label — 193 became vendor, 67 lead. A relationship crawl over forks and derivatives added 111 rows that keyword search structurally could not reach. Community reception across six venues produced 1,016 records. Finally an adversarial pass briefed to refute rather than confirm charged 4 WRONG and 8 MISLEADING defects — including a quotation cut that had reversed a witness's position — all of which were repaired and independently re-checked.

Catalogue compiled 2026-08-09.

Functional anatomy — how to read every table below

A tool that reads your screen aloud is not one product. It is five separable functions that happen to ship together. A tool can own four of them and silently miss one, and the missing one is what you feel. This section names the five, gives the failure mode of each missing piece, and defines the vocabulary the rest of the document uses.

A screen-reading stack — five separable functions
|
+-- 1. L1 ACQUIRE  (how text gets OFF the screen and into a string)
|      - selection via accessibility API   - selection via simulated copy
|      - clipboard watch                   - accessibility-tree follow-focus
|      - OCR of a screen region            - OCR of the full screen
|      - browser DOM                       - document parse (file, not screen)
|      WHY it matters: this is the layer that decides WHAT you are able to point at.
|      Missing: the tool can only speak text you have already typed or pasted into its own
|      window — which means you are transcribing by hand, the exact labour you wanted removed.
|
+-- 2. L2 TRIGGER  (a human causing it to happen, on what is on screen right now)
|      - global hotkey        - context-menu item      - toolbar button
|      - tray/menubar action  - always-on watcher (clipboard, focus)
|      WHY it matters: it converts a capability into a reflex. A command-line entry point is NOT
|      a trigger under this model — a CLI requires you to leave the thing you were reading,
|      find a terminal, and re-supply the text.
|      Missing: you own an engine, not a reader. 279 of the 1,553 catalogued entries are banded
|      ENGINE-only on exactly that ground, and the star table below shows which projects those are.
|
+-- 3. L3 SYNTH  (turning a string into audio — the runtime)
|      - OS speech service (SAPI5, AVSpeechSynthesizer, speech-dispatcher)
|      - local neural runtime (ONNX, GGML, PyTorch)
|      - cloud HTTP API
|      WHY it matters: it sets latency, offline behaviour, and per-word cost.
|      Missing: nothing is audible. Tools with L1+L2 but no L3 (OCR capture tools, clipboard
|      managers) are catalogued as ADJACENT — they hand a string to something else.
|
+-- 4. L4 MODELS  (the voices themselves, and who supplies them)
|      - bundled with the tool   - downloaded from a model hub   - OS voice inventory
|      - vendor-hosted, account-bound
|      WHY it matters: voice quality and voice AVAILABILITY are separate questions from
|      whether the tool works. A tool can own L1-L3 and still sound like 1998 because its L4
|      is whatever eSpeak the OS shipped.
|      Missing / thin: the reading works, and you stop using it after a week.
|
+-- 5. L5 OUTPUT  (what happens to the audio)
       - immediate playback     - pause / resume / rewind-a-sentence
       - speed control          - device routing     - save to file
       WHY it matters: for continuous reading, "stop and re-hear that sentence" is the control
       you will reach for constantly.
       Missing: the tool speaks a paragraph at you and cannot be interrupted or rewound, which
       for a long document is functionally unusable.

Read as: the layer model is a checklist for reading a row, not a scoring system. A row that owns L1 through L5 is not thereby better than one that owns L1+L2 — it is merely self-contained. Several entries here deliberately own two layers and delegate the rest, and that is a design, not a deficiency.


How the band and the layer tags relate — and where they disagree

Two separate annotations are attached to every catalogue row, and they were produced by two different operations.

  • The band (fit_band) is a judgement made by reading what the project actually does: can it get text off a screen, and can a human fire it at what is on screen now.
  • The layer tags (layers, L1-ACQUIREL5-OUTPUT) are a raw per-row annotation of which functions the project's own documentation describes.

The verification pass — which re-read primary sources and corrected fields — covered the CORE band only. The layer tags on the other three bands were never re-checked against their sources. The two annotations therefore disagree on 59 rows [measured, own count over FINAL.json]:

Read as: where the two disagree, the band is the considered judgement and the layer list is the unreviewed raw annotation. This is stated rather than repaired, because repairing it silently would hide the fact that a reader who filters the catalogue by layers gets a different answer from one who filters by fit_band. If you filter, filter on fit_band. It is not true that the 279 ENGINE-only rows have neither L1 nor L2 in their data — an earlier draft of this section said so, and the layer column contradicts it.


Where the attention is, and where the acquisition is

The catalogue holds 1,553 entries — CORE 448, ADJACENT 730, ENGINE-only 279, OUT-OF-BAND 96 [measured, own count over FINAL.json]. 279 are banded ENGINE-only: they own L3 and L4, and a caller supplies the string. There is no route by which they obtain text from a screen and no human trigger.

This is not an inference about obscure projects. It is what their own repositories say. GPT-SoVITS is described by its own README as a voice cloning and training studio driven from a Gradio WebUI [measured, https://github.com/RVC-Boss/GPT-SoVITS]. Coqui TTS is a toolkit and model zoo whose input is a caller-supplied string [lead, https://github.com/coqui-ai/TTS]. Kokoro exposes a Python KPipeline class and the README shows library use rather than a CLI [measured, https://github.com/hexgrad/kokoro]. F5-TTS ships f5-tts_infer-cli and a Gradio app [measured, https://github.com/SWivid/F5-TTS]. Chatterbox is a model plus inference code, with HTTP surfaces supplied by third-party wrappers [measured, https://github.com/resemble-ai/chatterbox].

Now the star counts, side by side. Every figure below is a GitHub stargazer count read through gh api on 2026-08-09 [measured].

Entry Band Layers owned Stars
GPT-SoVITS ENGINE-only L2†, L3, L4 60,613
Coqui TTS ENGINE-only L3, L4 45,868
Chatterbox ENGINE-only L3, L4 25,920
F5-TTS ENGINE-only L2†, L3, L4 15,089
Piper — archived repo ENGINE-only L3, L4 11,276
Kokoro ENGINE-only L3, L4 8,341
Piper — current upstream ENGINE-only L3, L4 5,074
Pot CORE L1, L2, L3, L5 19,216
Easydict CORE L1, L2, L3, L5 14,168
Text Grab CORE L1, L2, L3, L5 4,852
NVDA CORE L1, L2, L3, L4, L5 2,616
Speech Note CORE L1, L2, L3, L4, L5 1,558
TextGO CORE L1, L2 327
Dictater CORE L1, L2, L5 227
Talkie CORE L1, L2, L3, L4, L5 78

Every Layers owned cell above is read directly from the catalogue's layers field on 2026-08-09, so the table and the data agree row for row [measured].

GPT-SoVITS and F5-TTS carry an L2-TRIGGER tag that this section does not endorse. Both are banded ENGINE-only on capability, and neither ships a way for a human to invoke it on the current selection. They are two of the 57 ENGINE-only rows disclosed above whose layer tags were never re-checked, because the verification pass covered the CORE band only. The tag is shown rather than silently corrected so the disagreement stays visible and disputable.

The distribution behind that sample, computed over every catalogue entry hosted on GitHub with a readable star count [measured, own count over FINAL.json]:

Population n Median stars At or above 10,000 Below 500
ENGINE-only, GitHub-hosted 141 1,700 29 49
CORE (banded L1+L2), GitHub-hosted 267 1 3 252

The median CORE entry on GitHub has one stargazer. 252 of 267 sit below 500. The two populations are the same size to within a factor of two and differ by three orders of magnitude in median attention.

One further data point on what a stars-first search surfaces: MoneyPrinterTurbo carries 102,264 stars [measured, gh api 2026-08-09], which a stars-descending sort of this catalogue places above every one of the 448 CORE entries. It generates short-form marketing videos. It has no acquisition layer and no trigger, and it is catalogued OUT-OF-BAND for that reason.

Read as: sorting this problem space by stars sorts it by engine, because engines are what a general developer audience stars. The projects that solve the acquisition problem — the ones banded CORE — carry a median of one star and would sit below the fold under any stars-first ordering. That is the reason this document is not sorted by stars, and the reason the tables below lead with acquisition method.

Declared limit on the star figures. A stargazer count measures GitHub-account attention, not installs, not users, and not quality. NVDA's repository shows 2,616 stars; its Windows installed base is not derivable from GitHub and was not established here. Several CORE entries are not on GitHub at all — Chrome Web Store and Firefox Add-ons entries report user counts, App Store entries report ratings, and closed-source Windows tools report neither. Those figures are recorded in their own rows in their native unit and are deliberately excluded from the two tables above, because mixing installs with stars would produce a comparison that means nothing.


The acquisition mechanisms

L1 is where the real choice lives. Nine mechanisms account for the whole CORE band, and each one buys a different reach at a different cost. The two costs that recur in the evidence are: does it destroy what is on your clipboard, and does it still work inside Electron applications and terminal emulators — the places a solo engineer actually reads text.

Basis for every number in this table. All 448 rows banded CORE in FINAL.json, reading the acquisition_method, clipboard_destructive and works_in_electron_or_terminal fields [measured, own count 2026-08-09]. Values that had escaped the enum as free text were normalised into it (459 acquisition values and 647 platform lists across the catalogue); the original strings are preserved in the *_raw fields, so any normalisation decision can be re-read and disputed. Blank fields are reported as not-recorded, separately from an explicit unknown.

Mechanism n Can reach Cannot reach Clipboard clobbered Electron / terminal
browser-DOM 82 page text and the browser's own selection object, inside the tab every pixel outside the browser — no PDF viewer, no editor, no terminal 76 "no", 2 "unknown", 2 "n/a" — it reads text nodes, not the clipboard 45 explicit "no", 30 "n/a" — out of scope by construction
clipboard-watch 73 anything you can copy, in any application anything you cannot or did not copy; no selection awareness of its own 62 "no", 4 "yes", 7 "unknown" — it reads the clipboard, it does not write it 46 "yes", 6 "partial", 14 "unknown" — the app only has to support Ctrl+C
selection-via-accessibility-API 68 live selection in applications that implement AX / UIA / AT-SPI text patterns applications that expose no accessible text tree; canvas-drawn UIs 44 "no", 10 "yes" (those keep a copy fallback), 13 "unknown" 9 "yes", 19 "partial", 34 "unknown"
accessibility-tree-follow-focus 61 whatever has keyboard focus, continuously, without you selecting anything anything the app does not report to the accessibility tree 37 "no", 21 "unknown" 4 "yes", 6 "partial", 32 "unknown", 14 "n/a"
OCR-screen-region 53 any pixels you can drag a box around, including images and video anything off-screen or scrolled away; accuracy varies with font and contrast 23 "no", 7 "yes", 15 "unknown" — depends on whether capture routes via clipboard 30 "yes", 8 "n/a", 8 "unknown" — pixels do not care what toolkit drew them
selection-via-simulated-copy 51 any selection in any application that responds to a synthetic Ctrl+C / Cmd+C selections in apps that block synthetic key events 39 "yes", 8 "no", 4 "unknown" — the defining cost of the mechanism 22 "yes", 16 "partial", 13 "unknown" — no row recorded "no"
unknown 44 — the project does not state how it acquires text 41 "unknown" 37 "unknown"
OCR-full-screen 13 the entire visible screen without you selecting a region same off-screen limit, plus far more text than you asked for 9 "no", 2 "n/a" 3 "yes", 5 "n/a", 3 "unknown"
document-parse 3 a file you open — not the screen at all anything on screen that is not in that file 1 "no", 1 "n/a", 1 "unknown" 2 "yes"

Three tallies circulated during drafting; this is the one that supersedes them. Earlier sections were written against counts computed over different subsets at different times — the 378 raw verified CORE rows, and a 370-row deduplication of them (which returned, for example, clipboard-watch 62 and AX-selection 57). The table above is computed over the full 448-row CORE band in FINAL.json after enum normalisation, and is the basis used throughout this document. The earlier figures are not retracted as errors of arithmetic — they are counts of smaller populations — but they should not be quoted alongside these.

Read as — the trade in one line each. Simulated-copy asks nothing of the application beyond responding to Ctrl+C / Cmd+C, which is why no row recorded "no" for Electron and terminals — and it overwrites your clipboard in 39 of its 51 rows. The accessibility API leaves the clipboard alone in 44 of 68 rows, but its behaviour inside Electron and terminals was recorded as "unknown" for 34 of 68, which is itself the finding: the projects do not state it, and it is the first thing to test on your own machine. OCR reaches text that no API will hand over — video, images, remote desktop sessions, DRM-locked readers — and 30 of 53 region-OCR entries were recorded as working in Electron and terminals, because it never asks the application anything. Clipboard-watch also asks nothing of the application, at the price of you pressing Ctrl+C yourself every time. Browser-DOM pays no clipboard cost in 76 of 82 rows and reaches nothing outside the tab.

A subset worth isolating, because it is the one with no clipboard cost and no OCR error rate. Of the 68 CORE rows acquiring the selection through an accessibility API, 44 record the clipboard as undisturbed, 39 run on macOS, and 19 are both on macOS and clipboard-safe [measured, own count over FINAL.json]. That 19 is the population a macOS user filtering on "does not touch my clipboard" is choosing from.


The bands, and why ADJACENT is not a demotion

Four bands sort the 1,553 entries. Every entry carries exactly one.

Band Definition Count
CORE-screen-or-selection-reader Judged to own L1 and L2 — it can get text off the screen and a human can invoke it on what is on screen now 448
ENGINE-only Judged to own L3/L4 with no screen acquisition and no human trigger — a caller supplies the string 279
ADJACENT Owns some layers but not the L1+L2 pair; useful as a component, a back end, or a piece of the assembly 730
OUT-OF-BAND Surfaced by the searches, does not address reading screen text at all 96

The bands describe scope, not quality. Nothing in the band label is a judgement about how well a tool does what it does. And, as set out above, the ENGINE-only definition is a statement about the banding judgement — 57 of those 279 rows still carry an acquisition or trigger tag in their raw layers field.

Three worked examples of software that is substantial and still lands ADJACENT:

  • Umi-OCR, 46,472 stars [measured, gh api 2026-08-09], performs screenshot OCR and exposes an HTTP API — and does not speak. It owns L1 and L2 but not L3, so it is a recognition back end for a reader rather than a reader.
  • Tesseract, 75,823 stars [measured, gh api 2026-08-09], is the recognition engine named in 21 of the 448 CORE rows [measured, own count over FINAL.json]. It has no capture UI, no trigger, and no speech.
  • Hammerspoon, 15,901 stars [measured, gh api 2026-08-09], owns L2 and L3 on macOS and no acquisition of its own — which makes it the assembly kit that connects an extract-only OCR CLI to audible speech.

Read as: an ADJACENT entry is frequently the right thing to install alongside a CORE entry, or the thing a CORE entry already depends on. Piper appears inside the CORE tools ClipSpeak, Speech Note, Pied and sonata-nvda as their synthesis layer [measured, per the OHF-Voice/piper1-gpl row]. The band tells you which slot an entry fills. It does not tell you whether to use it.

Nothing found was discarded. Every entry surfaced across the four research phases is present in this catalogue, including the 96 OUT-OF-BAND rows that address a different problem entirely, the duplicates that were merged with their merge history recorded, and the entries whose evidence never rose above [lead]. Items that do not fit are labelled as not fitting and kept, so that a later reader can see what was considered and rejected rather than re-running the same searches to rediscover it.

What this section could not establish

  • Whether a given tool survives inside Electron and terminal emulators is not stated by the projects themselves for 163 of the 448 CORE rows — 145 explicitly recorded as "unknown" plus 18 with the field blank [measured, own count over FINAL.json]. That is a gap in the upstream documentation, not a gap that further reading would close; it is a per-machine test.
  • Clipboard behaviour is undetermined for 118 of the 448 CORE rows (105 "unknown", 13 blank) — typically closed-source or store-distributed tools with no source to read.
  • The acquisition mechanism itself is undetermined for 44 of the 448 CORE rows: the project documents that it reads your selection and does not document how.
  • The layer tags outside the CORE band were never re-verified against primary sources. The 57 ENGINE-only rows carrying an L1 or L2 tag are declared above rather than corrected, because correcting them would mean asserting a re-reading that was not performed.
  • Star counts, install counts and rating counts are three different units and are not made comparable anywhere in this document.
  • The layer assignments come from READMEs, documentation and store listings, not from running the software. A README that claims a global hotkey has been recorded as owning L2 without that hotkey being pressed.

Platform mechanics — why the same tool behaves differently on each OS

The catalogue's acquisition column names what a tool does to get text. This section is the why underneath it. Every entry reaches text by one of three physical routes, and each OS permits, restricts or forbids those routes differently. A tool that works on Windows and does nothing on macOS is usually not broken — it is a tool whose route the other platform does not offer.

Route What it actually does Costs the clipboard? Sees non-text pixels?
Accessibility-tree read Asks the focused app, through an OS API, "what text is selected?" No No
Clipboard (watch, or simulated copy) Reads a shared OS buffer, or forces the app to fill it by sending Ctrl+C / Cmd+C Watch: no. Simulated copy: yes No
OCR of pixels Screenshots a region and recognises glyphs No Yes

Counting basis for every catalogue figure in this section. All counts below are taken from FINAL.json, restricted to rows whose fit_band is CORE-screen-or-selection-reader, n = 448. Free-text values that had escaped the field enums were normalised before counting (459 acquisition values, 647 platform lists), with the raw strings preserved in *_raw fields. Blank fields are folded into unknown. Earlier drafts of this document circulated two other tallies, computed over different subsets at different moments; those are superseded and should not be used.

Acquisition method across the 448 CORE rows: browser-DOM 82, clipboard-watch 73, selection-via-accessibility-API 68, accessibility-tree-follow-focus 61, OCR-screen-region 53, selection-via-simulated-copy 51, unknown 44, OCR-full-screen 13, document-parse 3 [measured, own count over FINAL.json 2026-08-09]. Grouping those into the three physical routes: clipboard routes 124, accessibility-tree routes 129, OCR routes 66, browser-DOM 82, document-parse 3, unknown 44. On the cost side, 60 CORE rows destroy the existing clipboard against 261 that do not (unknown 105, not-recorded 13, n/a 9) [measured, same basis].

For orientation, the catalogue as a whole is 1,553 unique entries: CORE 448, ADJACENT 730, ENGINE-only 279, OUT-OF-BAND 96 [measured].


macOS

The AX route. The non-destructive path is AXUIElementCopyAttributeValue asking a focused element for kAXSelectedTextAttribute, documented in Apple's AXUIElement.h reference [measured — API existence]. The call returns whatever the application chose to publish into its accessibility tree. Nothing forces an application to publish anything.

How much of the catalogue rests on this route: 68 CORE rows use selection-via-accessibility-API; 44 of those record the clipboard as undisturbed; 39 of the 68 list macOS as a platform; 19 rows are both macOS and clipboard-safe [measured, FINAL.json CORE band].

Why it returns nothing in Chrome and in Electron applications. For these two — and only these two — there is a documented cause, and it is not a macOS defect. It is an explicit performance gate in Chromium, whose accessibility documentation states: "For performance reasons Chromium waits until it detects the presence of assistive technology before enabling full support for accessibility APIs," with the Mac trigger being "whether it sees a client, such as VoiceOver, has set the AXEnhancedUserInterface attribute on the main application window" (chromium.org accessibility design doc) [measured]. The same page names two overrides: --force-renderer-accessibility, or chrome://accessibility [measured].

Electron is a Chromium-family process, inherits that gate, and adds a second key that third-party code can set from outside: "third-party assistive technology can toggle accessibility features inside Electron applications by setting the AXManualAccessibility attribute programmatically" — AXUIElementSetAttributeValue(axApp, "AXManualAccessibility", true) — alongside the in-app app.setAccessibilitySupportEnabled(enabled) API, with the caveat that "the user's system assistive utilities have priority over this setting and will override it" (electronjs.org accessibility tutorial) [measured]. Those are the two opt-ins: AXManualAccessibility set on the target process by the reader, or AXEnhancedUserInterface set the way VoiceOver sets it.

Terminal emulators are a separate case, and the cause was NOT established. Terminal.app, iTerm2 and Ghostty are not Chromium processes, so the gate above does not explain them, and this pass found no primary source — from Apple or from any of those three projects — stating what a terminal emulator publishes as selected text over the accessibility API, or why a reader gets an empty string from one. Do not carry the Chromium explanation across; it does not apply. The one source-level data point found is about Ghostty specifically and comes from a third-party reader's code comment, not from Ghostty: the Yapper project's Yapper/Sources/Yapper/TextSelection.swift carries, at line 6, "Terminals with copy-on-select (Ghostty) put a finished selection on the pasteboard immediately, but TUI apps that redraw constantly (Claude Code) clear the visible selection before our Cmd+C lands" (ACNoonan/yapper, MIT, Swift, 0 stars, created 2026-05-14) [community — one developer's assertion, quoted verbatim from the source file]. Read as: for Ghostty, at least one implementer concluded the clipboard rather than the accessibility tree is where the selection lands, and built a 20-second pasteboard window around it. That is a lead about one emulator, not a rule about terminals, and it was not tested here.

Read as (Chromium family only): a macOS selection reader that queries kAXSelectedText and gets an empty string from an Electron app has not failed — it has failed to announce itself. Whether any catalogued tool performs that announcement is a per-tool question, recorded under works_in_electron_or_terminal, which across the 448 CORE rows reads: unknown 145, yes 118, n/a 70, partial 49, no 48, not-recorded 18 [measured].

The TCC permission model. Any process making AX calls against another process needs a grant. On the machine this research ran on (macOS 26.5, build 25F71), the system database /Library/Application Support/com.apple.TCC/TCC.db carries 24 rows for kTCCServiceAccessibility, 15 for kTCCServiceScreenCapture, 4 for kTCCServiceListenEvent and 3 for kTCCServicePostEvent, each with an auth_value of 2 (granted) or 0 (denied) [measured, sqlite3 read 2026-08-09]. Practically: a selection reader needs Accessibility; an OCR reader needs Screen Recording (kTCCServiceScreenCapture); a tool that simulates Cmd+C also needs the event-posting grant. Three separate toggles, granted per-binary.

The Services route, which is not the AX route. macOS ships a selection reader in /System/Library/Services. Measured on this machine: SpeechService.service exists, and pbs -dump contains two entries under com.apple.speech.SpeechServiceSpeech/Start Speaking Text with NSMessage doSpeakSelectedText, and Speech/Stop Speaking with doStopSpeaking; both carry NSSendTypes (NSStringPboardType) and an empty NSKeyEquivalent, so there is no default chord and one must be assigned under Keyboard Shortcuts > Services (Apple: Use services in apps) [measured]. Reproducibility note: pbs is not on PATH; it lives at /System/Library/CoreServices/pbs, and a bare pbs -dump fails. The mechanism matters: a Service receives the selection over a per-service pasteboard handed to it by the OS, not the general pasteboard, so it does not clobber what the user copied. The Automator route (Automator User Guide) uses the same plumbing — a Quick Action set to "receive selected text in any application," running the Speak Text action or a say script [derived — Apple does not document this workflow end to end].

Spoken Content. Apple's Have your Mac speak text out loud: "You can have your Mac speak the text you select on the screen whenever you press a keyboard shortcut. If no text is selected, available text items in the current window are spoken," with Option-Esc as the default [measured]. Its configuration lives in com.apple.speech.synthesis.general.prefs, which on this machine holds exactly two keys — SpokenUIUseSpeakingHotKeyFlag = 1 and SpokenUIUseSpeakingHotKeyCombo = 617 [measured, defaults read 2026-08-09]. The combo is an opaque integer, not a readable chord string, which is why scripting a change to this shortcut is awkward. A second domain, com.apple.universalaccess, holds the surrounding switches (speakSelectionEnabled, speakSelectionHighlightOptions, speakItemUnderMouseEnabled) [measured].

The universalaccessd caching question — NOT ESTABLISHED. The daemon is real and running (/usr/sbin/universalaccessd, pid observed 2026-08-09) [measured]. The claim that it caches its hotkey binding, so a defaults write does not apply until the daemon restarts, is not confirmed by any source found in this pass. The only related evidence found is a BetterTouchTool community post suggesting kill $(pgrep universalaccessd) to make a different accessibility setting apply (community.folivora.ai thread 39245) [community — about hover-typing, not speech]; lsof on the daemon showed no open handle on the speech preference plist, which is weak evidence either way since cfprefsd mediates preference reads [measured, one observation]. Treat the restart step as folklore that may work, not documented behaviour.

Synthesis and voices. /usr/bin/say takes text on argv, from -f file, or on stdin — no screen-acquisition layer at all, which is why the catalogue bands it ENGINE-only rather than CORE. (Band and raw layer annotation disagree on this row: say is one of 57 of the 279 ENGINE-only rows that still carry an L1-ACQUIRE or L2-TRIGGER tag in their layers field, generally because they read a file or a caller-supplied argument. The band is the considered judgement; the layer list is the raw annotation. That mismatch was never re-checked, because the verification pass covered the CORE band only — 2 of the 448 CORE rows are likewise missing one of L1/L2. [measured, own count over FINAL.json; declared defect, not silently corrected].) On this machine say -v '?' lists 184 voices, and both download trees are present: /System/Library/AssetsV2/com_apple_MobileAsset_VoiceServices_CombinedVocalizerVoices for Enhanced and Premium voices, ..._VoiceServices_CustomVoice for Personal Voice [measured]. The programmatic equivalent is AVSpeechSynthesizer, which adds the per-utterance callback willSpeakRangeOfSpeechString — the word ranges a highlighting reader needs — and gates Personal Voice behind requestPersonalVoiceAuthorization on macOS 14 or later [measured — API existence]. Personal Voice is reported not to appear in say -v '?', so the CLI and the framework may not expose the same voice set [lead — not re-verified this pass].


Windows

The non-destructive route is IUIAutomationTextPattern::GetSelection, which Microsoft describes as retrieving "a collection of text ranges that represents the currently selected text in a text-based control," with the Remarks warning that "If the control does not contain a text insertion point or does not support text selection, ranges is set to NULL" (Microsoft Learn) [measured]. Beneath it sits MSAA/IAccessible, with IAccessible2 as the third-party extension; the stack's entry point is Microsoft's UI Automation overview. Windows is named as a platform by 198 of the 448 CORE rows, against macOS 134, browser-extension 95, Linux-unspecified 48, Linux-X11 40, Android 28, Linux-Wayland 28, iOS 16, web 4, headless-server 3, unknown-legacy 2 (a row may name several) [measured].

Chromium gates accessibility on Windows too, by a different mechanism: it "calls NotifyWinEvent with EVENT_SYSTEM_ALERT and the custom object id of 1. If it subsequently receives a WM_GETOBJECT call for that custom object id, it assumes that assistive technology is running" [measured, chromium.org]. That same page's API table lists MSAA and IAccessible2 as complete but "IAccessibleEx and UI Automation (very limited)". That table is stale on the UIA point: Chromium ships a documented runtime bridge letting an IA2 client convert to a UIA element via IUIAutomationItemContainerPattern::FindItemByProperty, and back via IUIAutomationLegacyIAccessiblePattern::GetIAccessible (chromium/docs/accessibility/browser/ia2_to_uia.md) [measured]. Read as: on Windows, Chrome is reachable by a tree-reading client once accessibility is switched on; on macOS the same browser requires an attribute to be set on it first. That asymmetry, not the tool, is why a cross-platform selection reader has a good Windows day and a bad macOS day.

Why simulated Ctrl+C persists anyway. The AutoHotkey pattern circulating on forums is four lines: ^w:: send ^c / clipwait,0 / v := ComObjCreate("SAPI.SpVoice") / v.Speak(clipboard) [measured, verbatim repost at r/AutoHotkey]. There is no save-and-restore step, so the prior clipboard is destroyed; and because Ctrl+C is interrupt in Windows console hosts rather than copy, the same script behaves differently in a terminal than in an Electron window [measured]. The non-clipboard alternative, ControlGet, Selected, works only when the focused control's class matches Edit\d+ — which is why the answer documenting it ships a clipboard-backup fallback for everything else (Stack Overflow 36067563) [measured; stackoverflow.com returns 403 to scripted fetches, so this was verified against the on-disk corpus — a reader following the link in a browser will reach it, a script will not]. Read as: simulated copy survives on Windows because it is the one route with no per-application prerequisite — it works against any window that responds to Ctrl+C, at the price of the user's clipboard.

Two synthesis stacks, not one. SAPI 5 registers voices under one registry hive; Windows.Media.SpeechSynthesis.SpeechSynthesizer exposes the OneCore set (Speech_OneCore key) and returns an audio stream the caller plays itself [measured]. Voices visible in Settings > Time & language > Speech can therefore be absent from a SAPI-only application. Narrator's natural voices are a third, download-on-demand tier: Microsoft's guide gives the flow as Ctrl+Windows+N to reach Narrator settings, then the Add button under "Add natural voices" — "You can install all voices, but you must install each one independently" (Narrator Appendix A) [measured].

Narrator's own architecture is a follow-focus UIA client: Win+Ctrl+Enter starts and stops it, and "Both the Caps lock key and the Insert key serve as your Narrator key by default" (Complete guide to Narrator) [measured]. Its read-the-selection command is Narrator+Shift+Down arrow (Appendix B, revision 2026-06-24) [measured]. Refutation stated explicitly: a Super User answer (id 1215938, score 3, not accepted) lists Ctrl+Shift+Space and Ctrl+Alt+Space as Narrator selection commands. Appendix B contains no Spacebar command at all, and an archived Microsoft shortcuts page (Wayback capture 2018-10-12) shows Ctrl+Alt+Spacebar three times, every one under Magnifier [measured] — that answer appears to have mixed Magnifier keys into a Narrator list.

How third-party code reaches speech without starting a second voice. NVDA ships a DLL, the NVDA Controller Client, letting any process push a string into a running NVDA's speech queue at the user's configured rate. Its readme records the versioning: v2.0 (NVDA 2024.1) added nvdaController_getProcessId and nvdaController_speakSsml; v3.0 (NVDA 2026.3) added nvdaController_isSpeaking; older builds return RPC_S_UNKNOWN_IF (1717) for newer calls [measured]. Java, Dart and Node.js bindings appear in the catalogue as separate rows.


Linux — the split that decides everything

X11. The selection is already public before anyone copies anything. The freedesktop clipboard specification quotes the ICCCM for the definitions of the three selections — PRIMARY, SECONDARY, CLIPBOARD — and then gives, in its own voice under "Application authors should follow the following guidelines to get correct behavior," the rule "selecting but with no explicit copy should only set PRIMARY, never CLIPBOARD"; the same page describes the division as "CLIPBOARD works just like the clipboard on Mac or Windows; it only changes on explicit cut/copy. PRIMARY is an 'easter egg' for expert users" [measured]. The guideline is a freedesktop convention, not a protocol-level requirement: the same page complains that "many apps don't follow the conventional behavior" [measured]. Read as: on X11 a reader can call xsel -p (or xclip -o -selection primary) and get the current selection with no accessibility permission, no simulated keystroke, and no damage to the user's copied text — the only route in this section that needs none of those three prerequisites, and a property of X11's design rather than of any tool. It usually holds rather than always holds, because the applications, not the protocol, decide. 37 catalogue rows mention xsel, 22 mention xclip [measured].

Wayland removes it. An unfocused Wayland client cannot read a selection through ordinary protocol. Two privileged extensions restore the capability, both opening with the same sentence: "This protocol allows a privileged client to control data devices. In particular, the client will be able to manage the current selection and take the role of a clipboard manager" (ext-data-control-v1) [measured]. The older wlr-data-control-unstable-v1 now carries its own note: "This protocol is deprecated and not intended for production use. For clipboard management, use the ext-data-control-v1 protocol" [measured].

Compositor status, read from the source trees on 2026-08-09. Every file path and line number below is given so a reader can re-check it against the same repositories:

Compositor Background selection read Evidence [all measured, read from source 2026-08-09]
wlroots (Sway, and derivatives) Both protocols The tree ships both types/wlr_data_control_v1.c and types/wlr_ext_data_control_v1.c (wlroots)
KWin (KDE Plasma) ext-data-control src/wayland/datacontrol{device,devicemanager,offer,source}_v1.cpp, built against staging/ext-data-control/ext-data-control-v1.xml, which is named at line 52 of src/wayland/CMakeLists.txt
Hyprland Both protocols protocolnew("protocols" "wlr-data-control-unstable-v1") at line 565 and protocolnew("staging/ext-data-control" "ext-data-control-v1") at line 612 of CMakeLists.txt
Mutter (GNOME) Neither The wayland_protocols list at line 1025 of mutter src/meson.build contains no data-control entry of either kind; it does contain ['primary-selection', 'unstable', 1, ] at line 1043, which serves focused clients only

GNOME's only remaining route is private D-Bus: org.gnome.Mutter.Clipboard offers Enable, Disable, SetSelection, SelectionRead, SelectionWrite, SelectionWriteDone, SelectionTransfer and a SelectionOwnerChanged signal (mutter dbus-interfaces) [measured]. A KDE-specific workaround also circulates — reading Klipper over qdbus org.kde.klipper /klipper getClipboardContents [lead, Russian-language forum thread]. 28 CORE rows name Wayland as a platform [measured].

The hotkey is a second, separate privileged operation. A Wayland application cannot grab a global key by itself. The sanctioned route is the GlobalShortcuts portal, documented at version 2, whose shortcuts fire "regardless of the focused state of the application window," and whose BindShortcuts call "will typically result the portal presenting a dialog showing the shortcuts and allowing users to configure the shortcuts" [measured]. Backends implementing it [measured]: src/globalshortcuts.c in xdg-desktop-portal-gnome, src/globalshortcuts.cpp in xdg-desktop-portal-kde, src/portals/GlobalShortcuts.cpp in xdg-desktop-portal-hyprland. The src/ directory of xdg-desktop-portal-wlr — the backend a plain Sway install uses — contains exactly core, screencast and screenshot, with no shortcuts backend [measured]. Read as: on Sway the hotkey comes from the compositor config (bindsym), which invokes a command directly; that works, but a tool assuming the portal finds nothing to talk to. Screen-OCR readers hit the same fragmentation one layer over, via the Screenshot and ScreenCast portals.

The tree route. AT-SPI2 is the D-Bus accessibility bus; its org.a11y.atspi.Text interface exposes GetNSelections and GetSelection alongside the text and caret accessors (xml/Text.xml) [measured]. Anything on Linux asking "what is selected in the focused app" ends here — or gets nothing, because a toolkit that does not expose AT-SPI is invisible to it. Orca's README states it "works with applications and toolkits that support the assistive technology service provider interface (AT-SPI)" [measured, Orca v51.rc].

The broker layer. Linux readers rarely talk to a synthesiser directly; they talk to Speech Dispatcher, which multiplexes clients onto pluggable modules. Its src/modules directory carries 26 module source files — among them espeak.c, festival.c, flite.c, pico.c, ibmtts.c, ivona.c, kali.cpp, openjtalk.c, cxxpiper.cpp, and generic.c, which wraps any command-line synthesiser (brailcom/speechd) [measured]. 52 catalogue rows reference speech-dispatcher [measured]. Read as: on Linux, "which voice do I get" is a speech-dispatcher configuration question, not usually a property of the reader.

The KDE stack has a gap its own maintainers described. KTTSD's successor Jovie has been dormant since 2017 [measured]. Jeremy Whiting's 2021 statement of what replaced it: notifications go through QtSpeech per-application; "Want to read a document out loud? Use Okular's QtSpeech actions in it's menu. It sends either the selected text or the current page to be spoken to Speech-Dispatcher"; type-and-say goes to spd-say, espeak/festival, or KMouth (kde-accessibility list, October 2021) [measured]. In the same thread a vision-impaired user names the residual gap — he used Jovie "periodically to read out error messages, text boxes etc ... for which I don't have an adequate substitute" [community]. All three supported paths are document-scoped, notification-scoped or type-and-say; an arbitrary on-screen selection has no KDE-native reader. Okular's Speak Text also does nothing until qtspeech5-speechd-plugin (Qt5) or qt6-speech-speechd-plugin (Qt6) is installed [measured] — a silent failure worth knowing before concluding the feature is broken. QTextToSpeech is the abstraction above all of it, mapping onto SAPI/WinRT, AVSpeechSynthesizer, and speech-dispatcher or Flite by platform.


Browsers

The Web Speech API's SpeechSynthesis interface provides getVoices, speak, pause, resume, cancel, and the SpeechSynthesisUtterance boundary events that browser readers use to drive word-level highlighting [measured]. What getVoices() returns is a host property, not a browser one: it surfaces whatever voices the OS and browser expose, and on Chrome some entries are Google network voices rather than local ones — so identical extension code can be offline-capable in one browser and network-dependent in another [measured]. In the catalogue, 95 of the 448 CORE rows name browser-extension as a platform, and 82 acquire via browser-DOM [measured, FINAL.json CORE band].

Why an extension cannot read outside its own tab is a consequence of the match-pattern system, not a policy choice per extension. A match pattern's scheme "Must be one of the following: http, https, a wildcard * which matches only http or https, or file"; <all_urls> "Matches any URL that starts with a permitted scheme"; and file:/// "requires the user to manually grant access" (Chrome for Developers, match patterns) [measured]. The addressable universe is URLs; no pattern names a native window, a PDF viewer outside the browser, a terminal, or an IDE. Read as: every browser-extension row in the catalogue is scope-limited to the browser by construction — a structural ceiling, not a maturity gap.


Remote desktop

Every claim in this part is spec-reading. No tool in this catalogue was tested against a live RDP or Citrix session in this research. That caveat applies to all four points below.

(a) The AX/UIA route does not cross the link, and the plugin route is closed from a macOS client. RDP carries a framebuffer plus virtual channels and defines no accessibility channel. A local accessibility client querying the RDP client window therefore receives the window, not the remote document: kAXSelectedText on a macOS client returns nothing for text inside the session [derived]. The supporting measurement is structural. In Microsoft's Compare the features of the Remote Desktop clients, the row "Third-party virtual channel plugins" is marked supported (✅) for the Windows MSI and MSTSC clients only, and unsupported (❌) for the Windows Store client, macOS, iOS/iPadOS, Android/ChromeOS and Web — in all three client tables on the page [measured, table read 2026-08-09]. NVDA's rdAccess and the JAWS remote-speech add-ons are exactly third-party virtual channel plugins, so that single row rules both of them out from a macOS client. A second, independent reason closes the same door: rdAccess's own readme requires "RDAccess on both a client and server copy of NVDA", plus Windows registry changes to load it into mstsc or Citrix Workspace (rdAccess readme) [measured] — and NVDA does not run on macOS. Read as: of the three ways to get remote text spoken locally, this one — a plugin carrying accessibility data over its own virtual channel — is shut for a macOS client. The clipboard route (b) and the audio route (d) remain open.

(b) The clipboard route DOES cross the link, by default, on macOS — and this refutes two rows in this catalogue's own earlier passes. The same Microsoft table has two separate clipboard rows, and which footnote sits on which row changes the reading. Reading the table structure directly [measured, 2026-08-09]:

  • The row labelled "Clipboard - unidirectional³" carries superscript 3. Footnote 3 reads "macOS support is native in the Remote Desktop client. All other platforms require remote session configuration," and its "For more information" link goes to Configure the clipboard transfer direction — that footnote is about the unidirectional configuration, not the bidirectional row.
  • The row labelled "Clipboard - bidirectional" carries no footnote on its macOS cell at all — a bare ✅. In the same row, iOS/iPadOS carries footnote 1, "Text and images only," and Android/ChromeOS and Web carry footnote 2, "Text only."
"Clipboard - bidirectional" row macOS iOS/iPadOS Android/ChromeOS Web
Cell contents as printed ✅, no footnote ✅¹ "Text and images only." ✅² "Text only." ✅² "Text only."

Read as: macOS is the only non-Windows client whose bidirectional clipboard cell carries no format restriction — the qualifications that narrow iOS, Android and the web client to text, or to text and images, are absent there. The feature itself is defined on the same page as "Redirect the clipboard on the local device is to the remote session and from the remote session to the local device" [measured]. The wire mechanism is MS-RDPECLIP: on copy, a Format List PDU crosses from the endpoint whose clipboard changed and "Virtual Channel Endpoint B updates System Clipboard B" before any paste happens, the bytes delay-rendered until requested [measured]. Refutation stated explicitly: two catalogue rows from an earlier pass assert that "the remote content is a bitmap, so only OCR reaches it" (the Windows UIA/SAPI platform row) and "OCR is the only local acquisition route into a remote session" (the FreeRDP row). Both are wrong as stated. Copying inside the session puts the text on the macOS pasteboard, where any of the 73 CORE rows whose acquisition method is clipboard-watch can read it. OCR is the fallback for text that cannot be selected inside the session — an image, a rendered PDF, a legacy control — not the only route into it. The cost the spec implies is latency: the client learns the format is available promptly, then pays a server round trip for the bytes [measured].

(c) A managed Citrix estate is a different situation and must not be conflated with personal RDP. Citrix's policy documentation gives bidirectional clipboard as the default ("Client clipboard redirection: Enabled (Default)") plus two unidirectional modes. The one that breaks a clipboard-watching reader is Restrict client clipboard write: with it enabled, "clipboard data is permitted to flow exclusively from the user's endpoint device (client) to the remote Citrix session... but they cannot copy data from the Citrix session and paste it back to their local machine" (Citrix clipboard redirection configuration) [vendor]. The complementary setting, Restrict session clipboard write, allows session-to-client and blocks the reverse — under that one a reader on the client still works. A separate Clipboard Format policy can restrict permitted formats to text-based data only [vendor]. Correction to an earlier catalogue row: it attributed the session-to-client block to "Restrict session clipboard write"; per the page above it is "Restrict client clipboard write" that removes that direction. The names are near-mirror images and easy to swap. Read as: on a personal RDP box the user controls this; in a managed estate an administrator does, and OCR then genuinely becomes the remaining local route.

(d) The third configuration: put the reader inside the session. MS-RDPEA is the "Remote Desktop Protocol: Audio Output Virtual Channel Extension, which transfers audio data from the server to the client" [measured], and the client comparison table marks "Speakers" supported on every client platform including macOS [measured]. A TTS engine running on the remote machine, reading the remote selection with the remote OS's own accessibility API, is therefore audible locally over a documented, default-on channel — no accessibility problem to solve, because acquisition and synthesis both happen where the text lives. This is the route that stays open when (a) is closed by the plugin row and (c) is closed by an administrator.


Declared gaps

  • The cause of accessibility silence in terminal emulators was not established. The Chromium performance gate explains Chromium-family processes (Chrome, Electron) and nothing else; Terminal.app, iTerm2 and Ghostty are not Chromium. No primary source from Apple or from those projects was found describing what a terminal publishes as selected text over the accessibility API. The single Ghostty data point above is a third-party developer's code comment, not a project statement, and was not tested.
  • Nothing here was tested against a live remote session. Points (a) through (d) are read from Microsoft and Citrix documentation and protocol specs. Behaviour of any specific catalogued tool over RDP or Citrix is unverified.
  • The universalaccessd hotkey-caching claim is unconfirmed. No Apple or third-party technical source was found stating the daemon caches the binding.
  • works_in_electron_or_terminal is unknown or not-recorded for 163 of the 448 CORE rows (unknown 145, not-recorded 18; against yes 118, n/a 70, partial 49, no 48). The Chromium and Electron opt-in mechanisms explain why the answer varies per application; they do not give the answer for any given application without testing it. Blank fields are folded into unknown in every count in this section.
  • Acquisition method is unknown for 44 of the 448 CORE rows, and clipboard cost is unknown or not-recorded for 118. Route totals in the opening tally are therefore lower bounds, not complete partitions.
  • Band and layer annotations disagree for 57 of the 279 ENGINE-only rows and 2 of the 448 CORE rows. The verification pass covered the CORE band only, so ENGINE-only layer tags were never re-checked. Disclosed above rather than silently corrected.
  • macOS Spoken Content's own app coverage was not tested. Apple's page does not name the underlying API and does not say which applications expose selectable text to it.
  • SpokenUIUseSpeakingHotKeyCombo = 617 was recorded verbatim, not decoded.
  • Compositor support was read from source trees on 2026-08-09. Distribution packages may lag those trees. wayland.app's per-compositor tables are rendered client-side and were unreadable by the scraper, so the table above rests on the implementations themselves, not a third-party index.
  • Firefox's Linux voice supply was not verified. It is understood to route through speech-dispatcher; no primary source was read to confirm it.

Community reception

What people who run these tools say about them: 1,016 records across six venue files, 986 unique source URLs, collated into 164 per-tool summaries [measured] — own count over the six files sentiment-hackernews.json, sentiment-youtube.json, sentiment-at-forums.json, sentiment-issue-trackers.json, sentiment-reddit-accessibility-full.json and sentiment-reddit-tech.json. A repository sweep tells you a project exists, is MIT-licensed and was pushed last week. It cannot tell you that its phonemizer mispronounces German, that its 25 MB model pulls a 6 GB dependency tree, or that the people who read at 700 words per minute rejected the architectural direction it belongs to.

A tally correction, stated up front. Figures of "~1,300 records" circulated during drafting. They double-counted sentiment-reddit-accessibility.json (174 rows), which is a strict subset of sentiment-reddit-accessibility-full.json (208 rows) with 0 URLs unique to the subset. 1,016 / 986 is the figure this section uses throughout [measured].

Evidence labels used inline: [community] a user report, quoted and linked; [vendor] a project's or company's own unchecked claim; [measured] something read directly out of the corpus or a primary source; [derived] an inference of mine; [lead] found but unverified. Interpretation is fenced under Read as: so you can delete those lines and the facts still stand.

A citation warning that applies in four places below. AppleVis is behind a Cloudflare bot challenge. Every applevis.com URL returns a "Just a moment…" interstitial with HTTP 403 to a scripted fetch, with and without browser headers [measured, re-tested 2026-08-09]. The AppleVis quotes here were captured into the corpus during collection and are reproduced verbatim from it, but a reader clicking those links may be blocked too; they resolve in an ordinary interactive browser session. Each AppleVis citation below is marked (AppleVis — bot-walled, see the warning above).


1. The open contradiction: does the blind community's verdict transfer to a dyslexic reader?

The catalogue cannot resolve this, and it should not be presented as resolved. What follows is grouped as two positions because that is how the corpus argues, but one record cuts across the grouping entirely — a blind screen-reader user asking for neural synthesis and blocked only by latency. It carries first-party latency measurements and is set out at the end of this part.

Position A — classical formant synthesis preferred, reported by blind screen-reader users

Three distinct properties, claimed by different people in different threads.

Latency. ClawsOnPaws, a daily screen-reader user, quantified the gap: "Eloquence and ESpeak react pretty much instantly whereas other voices might take 100 MS or so. This is a very big deal for me. Just like how one would like instant visual feedback on their screen, it's the same for me with speech" [community] (HN, 2021-09-25). tapper, who states he is blind and uses NVDA, put the domain constraint in one line to the Kitten TTS authors: "FYI blind people do not like any lag when reading that's is why so many still use eloquence and espeak" [community] (HN, 2025-08-06). miki123211 named where the latency accumulates on Linux — an IPC or process-creation boundary around eSpeak — because "if the speech synthesizer speaks each time you press a key … every bit of latency matters" [community] (HN, 2021-09-25).

Predictability. ClawsOnPaws also named the mechanism that latency alone does not explain: "Neural TTS always has differences in how they say a thing, and at times, those differences can be large enough to trip me up" [community] (HN, 2024-05-02), and in a later thread: "more synthetic voices like Eloquence are easier to understand at high speeds especially because of their 'formulaic' nature. You don't listen to each individual phoneme or letter, you listen more for groups of syllables, tone, etc. The more unpredictable the text to speech, the harder this is" [community] (HN, 2026-01-23).

The speeds this sustains. "Daily normal is 600wpm", rising to 1200 wpm on low-density text — trwm's figures, not ClawsOnPaws's (HN 40234786); "averaging out at about 730 words per minute" on Eloquence (r/Blind); "over 700 words per minute … about 4× audiobook speed" (r/Blind); espeak "can be sped up to 1k wpm and still be understandable", paired with tesseract OCR for ~30,000 words in a 45-minute sitting (HN 28652917). All [community].

Corroborated outside HN — and the same witness names the boundary as speed, not age. An assistive-technology trainer on r/Blind, writing to someone setting up a computer for a relative losing her sight, recommends neural voices first: "Find some voices she can cope with. The default windows ones are quite poor. My older adults prefer the Neural voices from this page. Download that file and, with NVDA running, double-click it and install." Formant synthesis is offered only as the fallback for people who want more speed: "If she finds that that sort of voice is too slow, the more robotic-sounding ones (eSpeak, Eloquence, DECtalk and Orpheus) are preferred by those who've been blind longer and use the voice as data provider rather than book reader" [community] (r/Blind, 2024-06-29, comment read in full at source 2026-08-09). A blind NVDA user on r/LocalLLaMA named the same ceiling from inside the neural-model community: small non-autoregressive models are the route, "but even then it won't satisfy the speed adicts having their Eloquence on 200% speed because neural is ment for natural speech rates" [community] (r/LocalLLaMA).

Correction to an earlier draft of this section. The trainer's comment was previously quoted from "the more robotic-sounding ones…" onward, under a heading reading "old formant synthesis preferred". That cut reversed his position: his default recommendation is neural, and formant is his conditional fallback. The full quotation is restored above.

Position B — modern neural voices preferred, reported first-hand by dyslexic readers

barfbagginus reported the inverse of Position A, in the same 2024 eSpeak thread, and paired it with a second condition: "I depend on TTS to overcome dyslexia, but I also struggle with auditory processing disorder that causes me to misunderstand words. As a result, classical TTS does not help me read faster or more accurately than struggling through my dyslexia. It causes me to rapidly fatigue, zone out, and rewind often, in a way that is more severe than when I sight read. On the other hand, modern neural TTS is a huge enabler" [community] (HN, 2024-05-02).

Two further first-hand dyslexic reports point the same way, from different venues and years:

  • A physical response to formant-era voices: "listening to a non generetive voice, like those robotic voices from the 2010s gives me a headache after like 30 mins. Not that this is much better usually losing focus at like 2 hours or so" [community] (r/Dyslexia, 2026-07-27).
  • A dyslexic r/audiobooks commenter on Speechify: "I'm dyslexic and have had hard time throughout my life consuming written material. This tool has some of the best voices and is comfortable to listen too for a long period of time. A lot of these tools seem to be aimed at visual impaired users from my experience and read EVERYTHING" [community] (r/audiobooks, comment read in full at source 2026-08-09).

The within-dyslexia split — first-hand on both sides

r/Dyslexia also carries working reports of SAPI-era classical tools from dyslexic users: Balabolka"Balabolka is what I use. You have to configure it to they way you want but it's very customizable" [community] (r/Dyslexia) — and MyStudyBar"It's super basic but it's easy to use and super reliable" [community] (r/Dyslexia).

So the split runs inside the dyslexia population on first-hand reports alone: the 30-minute-headache report against two reliable-classical-tool reports.

How "first-hand dyslexic" is being counted here, applied evenly. Only two commenters in the whole corpus self-identify as dyslexic in the quoted text: barfbagginus (HN 40238926) and the r/audiobooks commenter ("I'm dyslexic and have had hard time throughout my life"). The three r/Dyslexia comments above — p019irt, hwalqr5, nb3mmnv — are counted as first-hand reports on subreddit membership alone; none states its author's diagnosis in the comment itself. That is a weaker basis than self-identification, and it is the same standard under which greenyouse was excluded below — so it is stated here rather than left implicit. A reader who rejects membership-as-evidence should read the within-dyslexia split as resting on one report per side, not three.

A comment previously mis-filed here. An earlier draft placed HN 15506074 — greenyouse, parsing about 400 wpm through xsel | espeak -v en-us -s 400 — on the classical side of a within-dyslexia split. Read at source via the HN Firebase API on 2026-08-09, that comment says "My reading speed is painfully slow but with espeak or a screen reader I can parse about 400 wpm" and, separately, "I have a relative with dyslexia and it was a helpful hack for him to get reading faster too." greenyouse describes himself as a slow reader, not as dyslexic, and the dyslexia element is second-hand about a relative. It is a real report that classical synthesis at 400 wpm worked for a slow reader; it is not a first-hand data point inside the dyslexia population, and it is not used as one here.

The record that cuts across both positions

aradix85 states he is blind and uses NVDA — squarely the population of Position A — and filed a still-open Kokoro issue asking for neural synthesis, blocked only by latency [community] (hexgrad/kokoro#291, opened 2025-12-20, still open 2026-08-09, issue body read at source):

"I'm blind and use NVDA (a screen reader). I've been testing Kokoro to see if it could replace the 20+ year old TTS engines we currently use (eSpeak, Tiflotecnica/old Nuance). The voice quality difference is night and day - but latency is a blocker."

His own measurements, on a Core Ultra 7 258V with 32 GB RAM and an Intel Arc 140V GPU: FP32 ONNX on CPU ~500 ms for a short phrase, INT8 ONNX ~1100 ms ("wrong codepath?"), OpenVINO GPU failed on dynamic STFT shapes. He states the requirement and the comparison as "Target latency: <200ms on average laptop CPU (i5/Ryzen 5, no GPU)" and "Reference: eSpeak achieves 5-10ms, Tiflotecnica ~50-150ms." On why his use is different: "Most TTS use cases (audiobooks, podcasts, video narration) tolerate 500ms+ latency easily. Screen readers are unique: we generate thousands of tiny utterances per hour ('button', 'edit', 'link', 'checkbox checked'). Each must feel instant or navigation becomes unbearable." And on his own framing of why the classical engines persist: "The blind community is stuck with 20-year-old robotic voices because neural TTS is too slow." Offered Piper as the low-latency option, he replied "Yes I have tried piper. It is not better then what exists while the voices that are used by kokoro are much better then what is available for screenreader users".

Read as: the two positions may not be arguing about the same task, and the disagreement is not blind-versus-dyslexic. Position A describes a keystroke-response instrument run at four to eight times speech rate, where predictability is the comprehension mechanism and where a 500 ms round trip is disqualifying. Position B describes sustained prose listening near conversational rate, where phonetic naturalness lowers the decode cost and half a second of startup is invisible. The blind NVDA user in kokoro#291 and the r/Blind trainer both sit on the "wants neural" side while remaining inside Position A's population; the constraint they name is latency and speed, not modernity. Nothing here establishes which regime a given dyslexic engineer falls into, and the corpus contradicts itself within the dyslexia population on first-hand reports alone. Open. [derived]

What is actually in dispute

Property Position A claim Position B claim Status in this corpus
Key-press-to-speech latency "instant" vs "100 MS or so" (HN 28654595); <200 ms stated as the requirement (kokoro#291) not raised as a problem Undisputed as a fact; disputed as a requirement
Run-to-run variation breaks pattern-matching at 450–1200 wpm (HN 40234673) not raised Undisputed; only its cost differs by user
Word-level accuracy modern models skip and garble (see part 2) neural lowered error and rewind rate (HN 40238926) Directly contradictory
Fatigue over hours formant sustains a working day formant caused fatigue; neural enabled hours (HN 40238926, r/Dyslexia p019irt) Directly contradictory
Working speed 600–1200 wpm reported normal no dyslexic user in this corpus reports above ~400 wpm Asymmetric — the populations report different operating speeds
Voice quality as such "night and day" in neural's favour, from a blind NVDA user (kokoro#291) same direction Not in dispute — the dispute is whether neural can be made fast enough

2. Recurring failure classes — properties of the domain, not of one project

Four classes were named in the Hacker News pass. All four survive contact with the other five venues, two of them extended; two further classes appear that the HN pass did not name.

2.1 Neural word-skipping and garbling — confirmed, and extended past neural models

Reported against unrelated tools by unrelated people, all [community]: Pocket TTS silently dropped "it was the age of foolishness" from A Tale of Two Cities on an M1 Mac (HN 46641789) — to which Paul_S replied that every model he tried has the same problem and the only reliable check is to transcribe the output and diff it (HN 46644553). XTTSv2: "It will hallucinate nonsense words or insert extra syllables in words, pretty frequently" (HN 40648526). Coqui, from an EPUB-to-audiobook tool author: "lots of little hallucinations or dropped words … I stopped trusting it" (r/Blind). rhdunn, a non-screen-reader listener, reported it independently (HN 46732597); a commenter of 20 years' daily desktop TTS reported VibeVoice, Kokoro, sherpa-onnx, Piper and Orpheus all "output weird garble" at unpredictable times and stayed on Festival 1.96 (HN 45881648).

The extension the HN pass missed: the same symptom appears in OS-native and commercial stacks, not only in open neural models. Apple's Siri voices on iPadOS 16 "will randomly skip chunks of text if I'm using them for Speak Screen. On web pages it's apparently random, but in Kindle, for instance, the same chunks of text in books will be skipped", while non-Siri voices read everything (AppleVis — bot-walled, see the warning above); macOS narration on an epub "starts slurring, skipping words, trailing off … and then goes silent" (HN 44810558); Speechify for "unreliable narration, skipping paragraphs or pages" (r/audiobooks); NaturalReader "sometimes skips over blocks of text" (r/Dyslexia); ReadAny on Windows "frequently skips a paragraph at random", reproducibly at the same position (ReadAny#526, open, 2026-07-04). A structural cause is named: chunking under ~1000 characters to suppress hallucination "can't maintain consistent prosody without context" (HN 45882142) — the two defects trade against each other.

Read as: if you are choosing a reader for material where a dropped clause changes the meaning, this class is not avoidable by staying away from open neural models. It is reported against Apple's own Siri voices and against two commercial subscription products. [derived]

2.2 Advertised model size versus real install weight — confirmed

Against KittenTTS, marketed as a 25 MB model (KittenML/KittenTTS) [vendor]: "Its python venv has grown to 6 GBytes in size" (HN 44810237); and "I literally run out of disk trying to install this on Linux. On macOS … it's only ~700 MiB there", traced to torch pulling NVIDIA libraries (HN 47447632). The class generalises: SherpaTTS models on Android are "super heavy (the phone suspends other apps to disk while this runs)" (HN 44810523); Piper "use[s] up more ram and cpu and disk space to deliver a voice which doesn't sound much better than something like RH voice" (HN 40234739); VibeVoice's large model was reported to need a 24 GB card, with the requirement not stated before the install steps (YouTube).

2.3 The espeak-ng phonemizer choke point — confirmed, with the licence consequence now realised

One traced diagnosis carries the defect-propagation claim: a commenter ran Piper's own sample text through espeak-ng directly and found "it put the stresses in the same wrong places in certain words" (HN 42802049). Kokoro's paired-vowel errors — "Daisy becomes die-zee, leave becomes lay-ve" (HN 44252823) — drew the reply that the local phonemizer is the cause (HN 44255368). A blind NVDA user hit the same layer in a neural NVDA add-on: "the only problem with the addon is the phonemizer breaking stuff a lot" (r/LocalLLaMA). It is also an install choke point in four unrelated projects: Piper on Apple Silicon (YouTube), piper-phonemize unavailable to pip (YouTube), Mimic 3 on Windows (r/Python), and a Zonos one-click package shipping without espeak (YouTube).

The GPL question was raised independently against two projects: Kokoro's Apache-2.0 label — "it has eSpeak-NG as a dependency, which is GPL, which brings into question whether or not Kokoro is actually GPL", answered by another commenter that "If it depends on espeak NG code, the complete product is 100% GPL" (HN 46642602, HN 46646452) — and Kitten TTS (HN 44810063). These are commenters arguing; no licence-holder resolved it in this corpus, and this section takes no position on the legal question.

The Piper thread of this story closed during the collection window, and not the way the earlier draft said. In May 2024 the developer stated "the next version of Piper will no longer use espeak-ng to avoid potential GPL licensing issues" [vendor] (HN 40242782). What shipped instead is a separate repository, OHF-Voice/piper1-gpl, created 2025-03-28 and GPL-3.0 from its own first commit, whose README's first line says it "embeds espeak-ng for phonemization"; the MIT predecessor rhasspy/piper is archived, last pushed 2025-08-26, and unchanged (11,276 stars against the GPL line's 5,074) [measured, gh api 2026-08-09]. A 2026-04-02 community review describes the move as going "from MIT to GPL version 3" to respect the eSpeak NG licence [community] (Thorsten-Voice). So: the dependency was not dropped, and no single repository had its licence flipped — a new GPL-3.0 line was started beside a frozen MIT one. April 2026 is when a reviewer described the change, not when it happened.

2.4 Missing SSML — confirmed, and it is a correctness problem, not a polish problem

The worked example: without SSML, "Melania Trump's zip code is 20001" renders as "Melaynia Trump's zip code is twenty-thousand one", and respelling proper nouns to trick the engine "works until it doesn't" (HN 42802502); an ElevenLabs subscriber using Kokoro at scale reported the same want (HN 48825228). The mirror-image failure exists where dictionaries do exist: "Acapela likes to expand AST to Atlantic Standard Time, even when the context is so obviously (not) talking about time zones" (HN 46738810); Apple's Eloquence build mispronounces iOS, iPadOS, macOS, watchOS with the Community Dictionary enabled (AppleVis — bot-walled, see the warning above); and downgrading edge-tts to restore audio "broke a lot of rules I was using to override Polish speech with SSML" (edge-tts#443, closed 2025-12-08).

2.5 New class — the Wayland selection and global-shortcut wall

Visible only in issue trackers and Linux subreddits, and decisive for any selection-reader on Wayland. Speech Note's owner: "This does not work 'by design'. Wayland does not allow access to clipboard data when the application is not active. This is a security feature, and there is nothing I can do to resolve this issue", with the reporter confirming the feature works under X11 (mkiol/dsnote#331). Precision note for anyone opening that issue: the thread is about speech-to-text writing its output to the clipboard, not a reader reading from it. The protocol restriction and the maintainer's sentence are general, but the surrounding discussion is an STT one. Crow Translate's maintainer closed the equivalent shortcut issue as expected behaviour: "Apps can't register global shortcuts themselves under Wayland, it's not supported by the protocol" (crow-translate#460). Odilia carries its own key handler "only because Wayland does not support the current standard for implementing AT key bindings" (odilia#78).

2.6 New class — PDF, mathematics and citation syntax defeat every reader in the corpus

"I have to read many academic papers and none can really handle the PDFs properly. Anytime there is any maths they just give up" (r/Dyslexia). A skip-parentheses setting cannot separate APA in-text citations from parenthetical prose because "In APA both are bound by () so just skipping text within () doesn't work" (r/Blind). A reading-app developer put raw OCR at "probably not better than 85%" before postprocessing (r/Dyslexia). All [community].


3. Where community reports contradict project docs or vendor claims

Claim as published Contradicting report Both links
Kitten TTS presented as a 25 MB CPU-only model [vendor] 6 GB venv; out of disk on Linux; ~700 MiB on macOS [community] repo · HN 44810237, HN 47447632
Piper README quickstart: pip install → download voice → run [vendor] Errored on a missing module; web-server extra failed, Flask installed by hand [community] piper1-gpl · Thorsten-Voice
pip install piper-tts, no platform-limitation notice [vendor] Unsatisfiable onnxruntime on Python 3.14 and FreeBSD 14.3; maintainer confirmed [community] issue 119 · issue 67
Piper developer, 2024-05: next version drops espeak-ng to avoid GPL [vendor] espeak-ng still embedded; a new GPL-3.0 repository (piper1-gpl, created 2025-03-28) was started beside the archived MIT one [measured, gh api 2026-08-09], described in a 2026-04 review as moving "from MIT to GPL version 3" [community] HN 40242782 · piper1-gpl · rhasspy/piper · review
Kokoro labelled Apache-2.0 [vendor] Depends on GPL eSpeak NG; two commenters argue the combined product is GPL — unresolved by any licence-holder [community] HN 46642602 · HN 46646452
Speechify advertising: photograph a book cover to get an audio version [vendor] "It does not read you any book just by taking a picture of its cover. It has to be within its LIBRARY." [community] r/Dyslexia
Speechify pricing presented as $7.99/month [vendor] Charged $139 for a full year three days after signup; further reports of charges after cancellation [community] r/audiobooks 2021 · 2025
Picovoice Orca suggested as an open alternative [community] README quoted back: not open source, requires internet to validate an AccessKey [measured] HN 44807147
Fish-Speech offered as a quality upgrade [community] Weights licensed non-commercial only [measured] HN 44812628
Read Aloud owner: hallucinated pauses are "Google's problems", text already segmented at ~750 chars [vendor] Reporter's side-by-side against another extension's per-sentence splitting [community] issue 427 · reporter's commentthe owner's half of this contradiction has no permalink of its own in the corpus; it is in the same thread [declared gap]
macOS Screen Sharing described as unusable with VoiceOver (VNC output) [community], 2022 AppleVis posters three years later report macOS 26 Screen Sharing does drive VoiceOver remotely [community] AppleVis 2022 — bot-walled, see the warning above
Voice Dream Reader: existing purchasers to be moved to a subscription [vendor] Reversed after community pushback; existing features kept at no extra cost [community] r/Blind

4. First-hand measurements, with hardware named where the reporter named it

Reporters' own figures, preserved as written. Single self-run benchmarks unless the corroboration column says otherwise; workloads differ, so these are not a controlled comparison.

Tool Hardware named by the reporter Figure as reported Corrob. Source
eSpeak (reference figure quoted by the reporter) not stated — the figure is given bare 5–10 ms per short phrase single kokoro#291
Tiflotecnica (reference figure quoted by the reporter) not stated ~50–150 ms single kokoro#291
Kokoro FP32 ONNX (CPU) Core Ultra 7 258V, 32 GB RAM, Intel Arc 140V ~500 ms short phrase; INT8 ~1100 ms; OpenVINO GPU failed (dynamic STFT shapes) single kokoro#291
kokoro-onnx 3090 Ti / Ryzen 9950X 2364 MiB VRAM, 40 s for 980 s audio (~25× RT) / ~2 GB RAM, 86 s (~11× RT); PyTorch build 90× RT single r/LocalLLaMA
Kokoro-82M vs Supertonic-3 vs Inflect-Nano Intel i5-8500T (6c/6t), CPU only RTF/UTMOS: Supertonic-3 2-step 0.1245 / MOS 1.55; 5-step 0.2104 / 4.37; Kokoro PyTorch 0.3133 / 4.44; Kokoro ONNX 0.3433 / 4.44; Inflect-Nano 4.6M 0.0994 / 3.48 single r/LocalLLaMA
Piper Pixel 9, CPU only >3× RTF, ~300 ms time-to-first-audio single r/LocalLLaMA
Piper CPU-based server ~300–500 ms inference multiple-indep. r/LocalLLaMA
Supertonic 3 Pixel 9, CPU only ~2000 ms, → ~1000 ms with chunking single r/LocalLLaMA
Supertonic CPU / RTX 4090 55× RT CPU, 175× RT on 4090, TTFA ~0.05 s contested HN 46733066
Kitten TTS Intel i9-14900HX, Ubuntu 24 ~315 ms initial latency; model load ~710 ms; 3.35×–5.50× RT single HN 44812882
Chatterbox RTX 4060 mobile, 8 GB ~5.7 GB VRAM idle, ~6.5 GB peak; 16 s audio in 13 s single YouTube
Chatterbox RTX 3090 ~1× RT unquantized; ~2× RT after optimisation; 5 GB VRAM (server build) multiple-indep. r/LocalLLaMA
VibeVoice 7B RTX 3090, headless Ubuntu, 4 concurrent batches 23.7 GB VRAM; 53.2 s audio in 14 s; 2–3.8× RT single r/LocalLLaMA
Orpheus (hosted) vendor's own service ~200 ms streaming latency, ~$1/hr vs ElevenLabs / Play.ht $5+/hr single [vendor] HN 43646160
Google WaveNet via Read Aloud cloud "$16 per million character" single HN 23502150
Azure DragonHD via Keyboard Maestro cloud, macOS "$15 per 1M characters" single HN 48825485
Speechify vs NaturalReader quotas n/a ~450k words/month at ~$139/yr vs ~500k chars/day at ~$110/yr single r/audiobooks

Correction to an earlier draft: the first two rows previously attributed the hardware string "average laptop CPU (i5/Ryzen 5, no GPU)" to the eSpeak and Tiflotecnica reference figures. Read at source, that string is the reporter's stated target hardware for a future implementation — "Target latency: <200ms on average laptop CPU (i5/Ryzen 5, no GPU)" — and the following line, "Reference: eSpeak achieves 5-10ms, Tiflotecnica ~50-150ms", carries no hardware at all [measured, issue body read 2026-08-09].

Read as: the latency column is where the two positions in part 1 separate numerically. The screen-reader requirement stated on the Kokoro issue is under 200 ms; the neural CPU figures in this table start around 300 ms and run to several seconds. Whether that gap has closed on hardware you own is not answerable from this corpus — none of these figures is a controlled comparison, and none was reproduced by me. [derived]


5. Silence as a finding

[measured]: 653 catalogue entries were carried into the sentiment pass (sentiment-targets.txt, 653 non-empty lines, no header row — the first line is a real target); 164 canonical tools ended with at least one community record. 489 targets — about three quarters of the sweep — generated no record in any of the six venues. (Figures of "652 / ~488" appeared in an earlier draft; the file has 653 real lines.) Hacker News named 86 distinct labels, 18 of them domain-level ("TTS generally …"), leaving ~72 named products across every HN thread Algolia indexes for these terms.

Named-tool venue counts across the 1,016 records:

Tool HN YouTube AT forums Issue trackers r/Blind-tier r/LocalLLaMA-tier Total
NVDA 18 18 32 14 34 2 118
Piper 21 30 1 9 7 25 93
Kokoro 20 20 0 2 2 36 80
Speechify 3 19 2 0 39 5 68
Eloquence 9 0 9 0 9 1 28
Kurzweil 3000 0 0 0 0 4 0 4
ClaroRead 0 1 0 0 1 0 2
Read&Write / Snap&Read 0 1 0 0 4 0 5
MWS Reader, Helperbird, ReadSpeaker TextAid, WordQ/SpeakQ, Ghotit, SprintPlus, Lingit, Zabaware, Panopreter, Copyfish 0 0 0 0 0 0 0 each

Further zero-record prominent entries [measured], from the CORE band with ≥400 stars or a live commercial listing: Translumo (5.6k stars), Bob/ripperhe (9.7k), PandaOCR.Pro (1.9k), VoivoClip (832), the Raycast TTS extensions, 天坦读屏/Tatans, 샤인플러스/Shine Plus, PC-Talker Neo, 센스리더/Sense Reader, Herald Pro, RightSpeak, Readwave, WordWand, Yaps, Penfriend, Alinea/Sensotec, Vovsoft Clipboard Reader, CastReader (castreader.ai, castreader.com), Speakoala, Fish Screen Reader.

Single-record tools are common even inside the venues: ClaroRead, Bookshare, Capti, Adobe Acrobat Read Aloud, Syllavox, the iOS 26 Accessibility Reader and the Windows audio-fade report each rest on one record (sentiment-collated.json), and Capti's is second-hand.

What silence does imply: these tools were not discussed in the venues read, across those venues' full indexed history. Where a whole class is silent — the commercial dyslexia-assistive tier, the Japanese, Korean and Chinese screen readers, the Raycast extensions — that is a property of where their users talk. The AppleVis Dolphin thread shows the mechanism from inside: "Does anyone actually use it? I never hear anyone talking about it - it's always NVDA and Jaws" (AppleVis — bot-walled, see the warning above) — in a thread whose starter reports Dolphin was the only Windows screen reader his local blindness association knew of.

What silence does not imply: low quality, small install base or abandonment. Parts of the commercial dyslexia tier are sold through institutions and national funding schemes, which routes their users through an assessor rather than a forum. Two of those routes are readable on the vendors' own pages: Everway publishes a "ClaroRead for DSA" page under a "govt grant schemes / What is the DSA?" path for the UK Disabled Students' Allowance (everway.com), and Lingit states that "Lingdys Pluss kan søkes om hos NAV Hjelpemiddelsentral" — it is applied for through the Norwegian NAV assistive-technology centre — alongside a school edition, "Lingdys Skole" (lingit.no). Both [measured, pages read 2026-08-09]. An earlier draft also asserted Dutch and Flemish school licensing for this tier; I could not confirm that from the Sensotec/Jabbla pages in the time available, and it is withdrawn to [lead]. Silence measures the discourse, not the software.


6. Where "the community says" is one loud commenter

The corpus is not 1,016 independent voices. [measured] by corroboration field: 625 records single-comment, 246 multiple-independent, 114 contested, 31 thread-consensus. Named-commenter frequency in claim text: miki123211 in 12 records, Justin Harris 6, jareds 5, ClawsOnPaws 4, devinprater 4, nowittyusername 3.

Read as: 62% of the corpus is one person saying something once, and the four names above account for a visible share of the sharpest formulations in part 1. Treat any single-record claim below as a lead, not a finding. [derived]

Concentrated rather than corroborated:

  • The formant-latency case on HN rests substantially on two accounts, ClawsOnPaws and miki123211, across four threads spanning 2021–2026 (28654595, 40234673, 46737597, 28654291). It is independently supported by tapper (44809136), mwcampbell (28652095), the r/Blind trainer and the r/LocalLLaMA blind NVDA user — the class holds, but its sharpest formulations trace to two people.
  • One specific mechanism rests on one comment — the broader position does not. The pairing "dyslexia plus auditory processing disorder → neural lowers my error and fatigue, classical does not" is stated first-hand exactly once in 1,016 records: barfbagginus, HN 40238926. Only 3 records in the whole corpus mention auditory processing at all, and only that one states the pairing. Weight the mechanism as one report. The broader position it belongs to — a dyslexic reader favouring modern voices — has at least three first-hand records: barfbagginus; the r/Dyslexia 30-minute-headache report (p019irt); and the dyslexic r/audiobooks commenter on Speechify's voices being "comfortable to listen too for a long period of time" (l66n53w). Set against two first-hand r/Dyslexia reports that SAPI-era classical tools work reliably, and against a blind NVDA user who wants neural and is blocked only by latency (kokoro#291). [measured, corpus search]
  • Five YouTube speed measurements come from one video by Jarod (Jarods Journey) covering Kokoro, Zonos, GPT-SoVITS, StyleTTS 2 and Coqui in one sitting (source) — one machine, one methodology, five rows. nowittyusername's "over ten TTS systems in 25 days" supplies several high-throughput figures (HN 46733066) and is flagged contested against the screen-reader article in the same thread.
  • Three AppleVis remote-access records are Justin Harris in one thread; four Dolphin records are one July 2024 thread (AppleVis — bot-walled, see the warning above).
  • Syllavox's only record is its own author describing the design, not third-party use (r/AssistiveTechnology) — as is a Kitten TTS quality claim from a maintainer about an unreleased model (r/LocalLLaMA). One Speechify endorsement is disclosed sponsored content: "we were provided a free license to use Speechify in exchange for an honest review" (The Dyslexia Journey).

Independently reported by unrelated people in unrelated venues, and weightable accordingly: neural word-skipping (six venues), espeak-ng phonemizer defects (four venues), Piper install friction (61 records across 13 venues per sentiment-collated.json), Speechify billing complaints (multiple threads, multiple years).

Stance distribution across the 164 collated tools [measured]: broken-for-me 35, comparison 30, other 27, works-for-me 20, install-friction 17, quality-complaint 13, accessibility-specific 12, licensing-or-cost 6, maintenance-concern 3, quality-praise 1. Note that comparison (30) and other (27) each outrank works-for-me, so the friction skew is narrower than the trouble-report categories alone suggest. A corpus assembled by searching for discussion of tools surfaces trouble reports more readily than satisfaction; that ratio is a property of the collection method as much as of the software.


7. Venue coverage honesty

[measured] What was read, and how much weight it carries:

Venue family Records Distinct tool labels Coverage note
Hacker News 168 86 (18 domain-level) Searched via the Algolia API; whole threads read rather than sampled. Skews to engineers, open models and Linux; the commercial assistive tier is absent.
YouTube 189 41 41 labels is the fewest of the six families. Comments plus auto-captions, whose errors are visible in the corpus ("Piper phiz", "each speak dng"), so transcript quotes carry transcription risk. One review is disclosed as sponsored.
AT forums + mailing lists 128 102 AppleVis supplies 77 records (75 distinct URLs), 60% of this familyand AppleVis is bot-walled to any scripted fetch, so all 77 were verifiable only against the on-disk corpus. The remaining 51 spread over 14 venues, 12 of them at 1–7 records each, with GNOME Discourse the one outlier at 12: GNOME Discourse 12, AccessIndia 7, orca-list 5, VIPhone 4, BRLTTY 4, MacVisionaries 3, blind-computing 3, PC Audio 3, debian-accessibility 2, Window-Eyes 2, blindandroidusers 2, Blinux 2, Talks-users 1, Audyssey 1 — thin, and read through mail-archive mirrors of unverified completeness.
GitHub issue trackers 104 32 repos Only 32 of 653 targets had their tracker read. Absence of an issue here is not absence of issues.
r/Blind-tier subreddits 208 84 r/Blind 73, r/audiobooks 42, r/AssistiveTechnology 32, r/Dyslexia 29, r/accessibility 29, r/tts 3 — sums to 208 exactly. At 29 records, r/Dyslexia is the smallest input for the population this document is written for.
r/LocalLLaMA-tier subreddits 219 168 r/LocalLLaMA 69, r/macapps 36, r/selfhosted 22, r/software 11, r/AutoHotkey 10, remainder across ~20 subs at 1–9 each. Skews to GPU inference and model quality, not selection-reading ergonomics.

Correction to an earlier draft: the r/Blind-tier row previously listed r/macapps 36 inside it, making its own numbers sum to 241 against a stated 208. r/macapps is in the tech-tier file, where it holds 36 records, second only to r/LocalLLaMA's 69 — which also contradicted that row's note of "1–11 each" for the remainder. Both rows above are recounted from source_url per file [measured, own count 2026-08-09].

Two bookkeeping facts. sentiment-reddit-accessibility.json (174 rows) is a strict subset of sentiment-reddit-accessibility-full.json (208 rows), with 0 URLs unique to the subset; only the latter is counted, giving 1,016 records across six files, 986 unique source URLs. Counts quoted elsewhere as "~1,300" include the superseded subset.

Sources a reader cannot re-open by clicking [measured, fetch attempts 2026-08-09]: applevis.com (four cited pages, Cloudflare 403 "Just a moment…"), alternativeto.net, sourceforge.net directory pages, and support.freedomscientific.com (live page returns a near-empty body; its content was confirmed instead through the Wayback capture of 2026-07-07). These resolve in an ordinary interactive browser; they do not resolve to a script. Where a claim rests only on such a page, it was verified against the on-disk corpus, which holds the verbatim quote and date — that is a weaker guarantee than an open link, and it is stated here rather than hidden.

Venues not read at all [measured, by absence]: the NVDA users list on groups.io — the venue an HN commenter told the Kitten TTS authors to post to (HN 44809136); Chrome Web Store, App Store and Play Store reviews (four AppleVis app-directory rows aside); Discord and Telegram, where Jieshuo is distributed and updated "3 to 4 times in a week" (AccessIndia); vendor support communities for the commercial dyslexia tier; any non-English forum outside the mailing-list mirrors.


8. What this section could not establish

Stated plainly, so nothing above reads as more settled than it is.

  1. Which regime a given dyslexic reader falls into. The corpus splits within the dyslexia population on first-hand reports alone, and no record in it is a controlled comparison. This is the question the section was written to address, and the one the corpus cannot answer.
  2. Whether the sub-200 ms neural target has been met on ordinary hardware. The only measured figures here are one blind user's, on one machine, on one model, in December 2025. Nothing was benchmarked by me.
  3. Whether espeak-ng's GPL reaches Kokoro or KittenTTS as distributed. A legal question about linkage and distribution, argued by commenters, unresolved by any licence-holder in this corpus. No verdict is available and none is implied.
  4. Anything about the 489 zero-record targets. Silence measures the venues read, not the software.
  5. The AppleVis, AlternativeTo, SourceForge and Freedom Scientific pages as live sources. Bot-walled; one closed through Wayback, the rest resting on the on-disk corpus.
  6. Dutch and Flemish institutional licensing of the commercial dyslexia tier — asserted in an earlier draft, not confirmed from a vendor page, now [lead].
  7. Nothing here was executed. No tool was installed, no latency measured, no voice heard. Every figure is somebody else's, quoted and linked.

Model and voice supply — where the voice actually comes from

This section covers only L4: the voice itself. A reader that owns acquisition and trigger still has to get audio from somewhere, and the five supply routes below fail in five different ways. [measured] = read from the named file, API or page; [vendor] = an unchecked supplier claim; [community] = a user report; [lead] = found but unverified; [derived] = my inference from the facts named beside it. Where a number and an opinion share a paragraph, the opinion is under "Read as:" — delete it and the number still stands.

Prices, licences and repository facts in this section were re-read at source on 2026-08-09. Where a figure sits somewhere on a vendor page that a scripted fetch of the visible pricing card does not reach — Rime's FAQ, OpenAI's server-rendered table — the location is named beside it, so the figure is reproducible rather than merely asserted.


1. Local neural models

1.1 Where the weights live and what they weigh

Model Weights from On-disk Runtime Licence
Piper (piper1-gpl) HF rhasspy/piper-voices; one .onnx + one .onnx.json per voice, low/medium/high tiers (VOICES.md) en_US-lessac-medium.onnx = 63,201,294 bytes + a 4,885-byte config [measured, HF API] onnxruntime — voices "trained with VITS and exported to the onnxruntime" GPL-3.0; repository created 2025-03-28, and its COPYING file (GNU GPL version 3) was added in the initial commit, timestamped 2025-03-28T21:16:06Z [measured, gh api commits?path=COPYING]
Piper (rhasspy/piper) same voice repo same onnxruntime MIT — archived read-only, created 2023-01-10, last pushed 2025-08-26, 11,276 stars against the maintained repository's 5,074 [measured, gh api 2026-08-09]
Kokoro (hexgrad/kokoro) HF hexgrad/Kokoro-82M; G2P via misaki kokoro-v1_0.pth = 327,212,226 bytes [measured, HF API] PyTorch Apache-2.0 [measured, gh api] — see 1.3
kokoro-onnx HF "~300MB, quantized ~80MB" [vendor, README] onnxruntime MIT
KittenTTS HF, four variants nano-int8 = 24,369,971-byte ONNX + 3,278,902-byte voices.npz = 27,648,873 bytes (27.6 MB) [measured, HF API]; mini 80 MB, micro 41 MB [vendor, README] onnxruntime Apache-2.0 [measured, gh api]
Supertonic HF Supertone/supertonic, OnnxSlim-optimised; fixed voices, no official cloning "~260MB by sum of the relevant ONNX files", Docker wrapper "in about 500 MB" [community, YouTube] onnxruntime, via Core ML on Apple Silicon MIT
Chatterbox HF ResembleAI/chatterbox repo tree sums to 13.9 GB across format variants; one config ≈ t3_cfg 1,064.9 MB + s3gen 1,057.2 MB + ve 5.7 MB [measured, HF API] PyTorch MIT
StyleTTS 2 HF checkpoints not captured PyTorch + a phonemizer calling espeak-ng MIT
F5-TTS HF, "~1.2GB class" not re-measured (HF API returned no file list) PyTorch MIT code; per-checkpoint terms differ
GPT-SoVITS HF / ModelScope + user-trained not captured PyTorch MIT
IndexTTS HF / ModelScope not captured PyTorch NOASSERTION (custom)
Orpheus-TTS HF; 3B, with 1b/400m/150m on the roadmap not captured PyTorch; 3B is GPU-shaped Apache-2.0
Zonos HF not captured PyTorch Apache-2.0
Fish-Speech / OpenAudio HF not captured PyTorch NOASSERTION — LICENSE and README restrict commercial use
Coqui TTS / XTTS own model zoo + HF; tts --list_models enumerates not captured PyTorch MPL-2.0; Coqui the company shut down, idiap/coqui-ai-TTS is the maintained fork
NeuTTS, OuteTTS HF not captured GGUF Q4/Q8; NeuTTS streaming is GGUF-only see repos
Kokoro via MLX / Core ML mlx-community or prince-canuma/Kokoro-82M see the note below MLX or Core ML, Apple Silicon Apache-2.0 upstream

One model, seven download sizes: consumer apps shipping the same 82M-parameter Kokoro report ~80 MB (Myna), ~99 MB (SuperUtter), ~300 MB (Subvocal), ~330 MB (aloud-tts), ~350 MB (quoth), ~360 MB (MLXRead) and ~400 MB bundled (Orator) [vendor, each project's README].

Read as: a factor of five across one model, because quantisation and format are not stated in the headline number. A download size on a project page describes that project's packaging, not the model.

1.2 On-disk size is not install weight

One catalogue instance is documented from both ends. KittenTTS's README states "Model sizes from 25 MB (int8) to 80 MB" [vendor, README]; its int8 files measure 27,648,873 bytes — 27.6 MB — from the model host's own file listing [measured, HF API].

Against that, two independent first-hand measurements of the installed footprint, each cited at the sentence that reports it:

  • A reporter measured the resulting Python environment at 6 GB — "Its python venv has grown to 6 GBytes in size. The demo sentence works, it takes 3s to render the audio. Audio sounds like a voice in a tin can." — bashkiddie, 2025-08-06 [community, HN 44810237].
  • A second reporter measured the dependency install at 7.1 GB — "I ran install instructions and it took 7.1GB of deps, tf you mean "tiny" ?" — PunchyHamster, 2026-03-19 [community, HN 47447368]. The maintainer replied in two minutes: "damnn, lemme fix it, sorry for that. we may have forgotten to remove the redundant dependencies" [vendor, same thread]. A third commenter's diagnosis of the cause: "It's mostly torch" [community, HN 47447632].

The dependency chain is visible in a pip transcript pasted into the same thread: num2words, spacy, espeakng_loader, misaki>=0.9.4 [community, HN 47447994]. The collation (21 KittenTTS records across 4 venues) also records a Linux reporter running out of disk because torch pulls NVIDIA CUDA libraries — against roughly 700 MiB on macOS and about 3 GiB on Linux after pinning the CPU-only torch index [community, sentiment-collated.json, KittenTTS row].

Read as: an ONNX model is small; a Python ML environment is not. The two reports divide out to 217x and 257x the 27.6 MB of model files [derived: 6 GB and 7.1 GB over 27,648,873 bytes]. The ONNX-runtime projects (Piper, kokoro-onnx, Supertonic, sherpa-onnx) avoid torch entirely; the PyTorch ones do not. That is the variable, not the parameter count.

For scale in the other direction, a blind NVDA user's reaction to the KittenTTS launch was a size comparison against the synthesiser he already uses: "I am blind and use NVDA with a sinth. How is this news? I don't get it! My sinth is called eloquence and is 4089KB" — tapper, 2025-08-06 [community, HN 44809042]. That is 4,089 KB against 27.6 MB of model files, before any runtime is counted.

1.3 The espeak-ng dependency, and the open licence question under it

eSpeak NG's README states that it "is released under the GPL version 3 or later license" — so GPL-3.0-or-later, not bare GPL-3.0 [measured, README]. It is not merely a fallback voice — it is the grapheme-to-phoneme front end under several models that are themselves published under permissive licences:

  • Piper: the current README's first line is "A fast and local neural text-to-speech engine that embeds espeak-ng for phonemization" [measured, README].
  • Kokoro: "Kokoro only uses Espeak for text-to-phoneme (AKA G2P) conversion" [community, HN 46643265].
  • KittenTTS: espeakng_loader appears as a direct dependency in the install transcript above.
  • StyleTTS 2: the catalogue row records "needs phonemizer/espeak-ng".

What is settled, and what is not. The licence of each repository is a fact and was read from the registry: espeak-ng GPL-3.0-or-later · Kokoro Apache-2.0 · KittenTTS Apache-2.0 · OHF-Voice/piper1-gpl GPL-3.0 · rhasspy/piper MIT (archived) [measured, gh api 2026-08-09]. Whether espeak-ng's GPL reaches any of the permissively-licensed models as they are distributed is not settled, and I am not able to settle it. That is a legal question about linkage and distribution — how the phonemizer is invoked, what is shipped in the same artefact, and what counts as a derivative work — and no repository, licence file or registry field answers it. It is recorded here as an open legal question, not as a technical fact, and nothing below should be read as a determination either way.

The question was raised repeatedly in public and never answered by a licence-holder. jhatemyjob, on Kokoro: "Kokoro says its Apache licensed. But it has eSpeak-NG as a dependency, which is GPL, which brings into question whether or not Kokoro is actually GPL… Dealing with potential GPL contamination is a nightmare." [community, HN 46642602, 2026-01-16]. jcelerier replied: "If it depends on espeak NG code, the complete product is 100% GPL… if you are able to change the code to take off the espeak dependency then the rest would revert to non-GPL" [community, HN 46646452]. The identical objection was raised about KittenTTS by woadwarrior01 five months earlier: "the project isn't at the liberty to grant such an exception because it inherits its GPL license from espeak-ng" [community, HN 44810063, 2025-08-06]. All three are commenters stating positions; none is the licence-holder, and no licence-holder responded in any thread collected.

What Piper's maintainer said, and what actually shipped — with the dates kept apart. On 2024-05-03, synesthesiam (Piper's author) posted: "As the sibling comment mentions, the next version of Piper will no longer use espeak-ng to avoid potential GPL licensing issues." [measured, HN 40242782, retrieved via the HN API].

That is not what shipped. Three dates, deliberately separated, because they are commonly run together:

Date What happened Evidence
2024-05-03 The maintainer states the intent to drop espeak-ng [measured, HN 40242782]
2025-03-28 OHF-Voice/piper1-gpl is created, with the GNU GPL v3 COPYING file present in its initial commit (21:16:06Z), repository created 21:47:10Z [measured, gh api: repo + commits?path=COPYING]
2026-04-02 A community video describes the licensing situation as a move "from MIT to GPL version 3" [community, Thorsten-Voice]

April 2026 is the publication date of that video, not the date of any relicensing. No repository changed its licence under anyone. What exists is two repositories: rhasspy/piper, still MIT and archived read-only since 2025-08-26; and OHF-Voice/piper1-gpl, a separate repository that has carried the GPL text since its own first commit and whose README says it embeds espeak-ng [measured, gh api 2026-08-09]. An open issue from 2026-07-21 asks that "piper should build w/ given espeak-ng" [measured, issue #243].

Read as: the stated intent was to drop espeak-ng and keep a permissive licence; what shipped instead was a new, separately-named repository carrying both espeak-ng and the GPL, alongside a frozen permissive predecessor. Anyone who checks "Piper's licence" against the archived repository — which carries 11,276 stars to the maintained repository's 5,074 [measured, gh api] — reads MIT and reaches the opposite conclusion from the maintained line. For a single user reading his own screen, the whole question is legally inert; it engages only on redistribution.


2. OS-native voices

Cost: zero, on every platform below. No account, no key, no network for the offline voices.

Platform API / entry point How extra voices arrive Stated limit
macOS /usr/bin/say; AVSpeechSynthesizer (docs); Spoken Content in Accessibility settings Enhanced/Premium voices download on demand into /System/Library/AssetsV2/com_apple_MobileAsset_VoiceServices_CombinedVocalizerVoices; Personal Voice into ..._CustomVoice [measured] Personal Voice needs requestPersonalVoiceAuthorization and macOS 14+, and is reported not to appear in say -v '?' — the CLI and the framework do not expose the same voice set [measured; flagged as worth confirming]. say --help is not a recognised option; only man say documents it
Windows SAPI 5 (System.Speech.Synthesis / ISpVoice); OneCore (Windows.Media.SpeechSynthesis); Narrator natural voices SAPI 5 voices register under HKLM\SOFTWARE\Microsoft\Speech\Voices\Tokens; OneCore under ...\Speech_OneCore\Voices\Tokens; natural voices arrive as per-language MSIX packs from Narrator settings > Add natural voices [measured] Three separate speech systems coexist. A voice visible in Settings is not necessarily visible to a SAPI 5 application [measured]. The natural voices are not sanctioned for third-party use — see below
Android android.speech.tts.TextToSpeech (docs) pluggable engines (Speech Services by Google, Samsung TTS, third-party such as SherpaTTS); voice data downloads per language ERROR_NETWORK, ERROR_NETWORK_TIMEOUT and ERROR_NOT_INSTALLED_YET exist in the API precisely because some voices are network-backed and some downloads unfinished [measured]
Linux espeak-ng; RHVoice; Festival; Mimic 1/3 — normally reached through speech-dispatcher espeak-ng ships rule-based formant voices with no downloaded weights; RHVoice ships small-footprint HTS statistical voices [measured] Licences differ from the neural set: espeak-ng GPL-3.0-or-later, RHVoice GPL with voices under their own terms, Mimic 3 AGPL-3.0, Festival BSD-like

The Windows 11 natural-voice restriction, stated by the person who reverse-engineered it. The NaturalVoiceSAPIAdapter README: "This engine uses some encryption keys extracted from system files to use the voices, so it's more like a hack than a proper solution" and "Microsoft hasn't yet allowed third-party apps to use the Narrator/Edge voices, and this can stop working at any time, for example, after a system update" [measured, README]. The same README now advises against installing the latest Narrator voices because they stopped working with the adapter.

Read as: what separates the OS voices from the local neural models in section 1 is not the absence of a bill or a key — Piper, kokoro-onnx, Supertonic and sherpa-onnx also run with no bill, no key and no third party in the request path once installed. What the OS voices additionally avoid is the model supply chain itself: nothing is downloaded from a model hub, no weights file is version-managed, and there is no upstream repository whose licence or availability can change. The constraint that comes with that is reach, not quality — you get the voices the vendor ships, no cloning, no timing data beyond what the API exposes, and on Windows the neural voices are fenced off from anything that is not Narrator or Edge.


3. Cloud APIs

Provider Rate per 1M characters Free tier Account
Azure AI Speech Neural $15.00; Neural HD $22.00; legacy standard $4.00; Personal Voice $24.00; Long Audio $100 [measured, Azure Retail Prices API, eastus, 2026-08-08] F0: 0.5M chars/month, recurring, not a trial. Hard cap of 20 transactions per 60 seconds, and the quota doc states "This limit isn't adjustable" [measured] Azure subscription + Speech resource key
Google Cloud TTS Standard/WaveNet $4; Neural2/Polyglot $16; Chirp 3 HD $30; Studio $160 [measured, pricing] 4M chars/month Standard+WaveNet, 1M Neural2/Studio/Chirp — recurring GCP project with billing enabled
Amazon Polly Standard $4.00; Neural $16.00; Generative $30.00; Long-Form $100.00 [measured, pricing] Standard 5M/month; Neural 1M/month for 12 months only AWS account + IAM
OpenAI gpt-4o-mini-tts $0.60 per 1M input text tokens + $12.00 per 1M audio output tokens, 2,000-token input cap per request [measured, guide]; tts-1 "$15.00 / 1M characters" and tts-1-hd "$30.00 / 1M characters" [measured, pricing — see the reproduction note below] none API key + prepaid credits
ElevenLabs credit plans: Free 10k/mo; Starter $6 = 30k; Creator $22 = 121k; Pro $99 = 600k; Scale $299 = 1.8M; Business $990 = 6M [measured, pricing] 10,000 credits/month (~10 min), no rollover API key
Deepgram Aura-2 $30; Aura-1 $15 [measured, pricing] $200 signup credit, no card, no expiry — one-time, ~6.6M chars at Aura-2 rates API key
Cartesia credit plans: Pro $5/mo ≈ 133 min; Startup $49 ≈ 1,667 min; Scale $299 ≈ 10,667 min [measured, pricing] ~27 min/month, 2 concurrent requests, no commercial-use licence API key
Rime Mist $30 ($0.03 per 1K chars); Coda $50 ($0.05 per 1K chars) [measured, pricing — see the reproduction note below] the page states "~800 minutes free (about 800k characters)" on the Starter card and "Every new account starts with 3,000 free minutes on the Starter plan" in its FAQ — it contradicts itself on one page [measured, both strings read 2026-08-09] API key
PlayHT / PlayAI Withdrawn. Groq's deprecations page records: "on December 23, 2025, we emailed users to announce the deprecation of playai-tts and playai-tts-arabic in favor of the newer Orpheus text-to-speech models from Canopy Labs", with a 12/31/25 shutdown date and canopylabs/orpheus-v1-english as the replacement model ID [measured, console.groq.com/docs/deprecations]. On 2026-08-09 play.ht has MX records but no A record, and www.play.ai resolves but does not complete a TLS connection within 25 s [measured, host + curl]

Reproduction note for two of those rates. Both figures below sit on the vendor's own page, but not in the visible pricing card a quick fetch lands on, so they are recorded with their location. Rime's per-model split is in the FAQ, under "How is Rime priced?": "Starter begins at $0.03 per 1,000 characters (about a minute of audio): $0.03 for Mist and $0.05 for Coda." OpenAI's legacy rates are in the server-rendered payload of the pricing table at developers.openai.com/api/docs/pricing (platform.openai.com/docs/pricing 301-redirects there), as {"model":"tts-1", … "$15.00 / 1M characters"} and {"model":"tts-1-hd", … "$30.00 / 1M characters"}; the visible table is hydrated client-side. Both were read on 2026-08-09.

Three consequences stated plainly, not as advice:

  1. Cloud TTS means the text you are reading is transmitted to a third party. Whatever is on screen — a private message, a medical letter, an unreleased contract, a password-reset email — leaves your machine as the request body. That is a property of the architecture, not a policy failing.
  2. Some published rates carry a training opt-in. Deepgram's listed pay-as-you-go rates opt in to its Model Improvement Program [measured]. Google's free-tier terms historically permit free-tier data to be used to improve products [lead — verify on your own account].
  3. A supplier can end. PlayHT's models were deprecated off Groq on 2025-12-31 (row above); Coqui the company is gone; Nuance's enterprise Vocalizer is in an announced end-of-life window (dates published by a competitor, Picovoice; no Microsoft or Nuance primary source located — treat as unverified).

On re-reading the same text twice. Amazon Polly's pricing page addresses this directly: "In addition, you can cache and replay Amazon Polly's generated speech at no additional cost" [measured, pricing]. That is the only page among the providers in this table where I found the question addressed at all. I did not read the other providers' terms of service on this point, so this is not a finding that they forbid caching, or that they are silent on it — only that I looked at the pricing pages and did not find the question answered there [declared gap]. If re-reading a paragraph you have already synthesised matters to your cost model, the governing document is each provider's terms of service, and it needs reading per provider.

Two vendor terms that bite specific readers: OpenAI's guide states "Our usage policies require you to provide a clear disclosure to end users that the TTS voice they are hearing is AI-generated" [measured]; ElevenLabs states its free plan "is intended for personal, non-commercial use and requires attribution to ElevenLabs" [measured].


4. The unofficial Edge endpoint

rany2/edge-tts and its wrappers speak to an undocumented Microsoft WebSocket behind Edge's Read Aloud. No account, no key, no charge — which is why dozens of catalogue entries use it as their default backend. No public terms grant exists for third-party use of that endpoint.

Its breakage history, from the upstream tracker [measured, issue dates via gh api 2026-08-09]:

Date What happened Issues
2024-10-18 → 10-31 Mass 403 wave. Microsoft began requiring a Sec-MS-GEC token; #290 is titled "403 error is back/need to implement Sec-MS-GEC token" and its traceback shows a WSServerHandshakeError 403 against wss://speech.platform.bing.com/consumer/speech/synthesize/readaloud/edge/v1 #264, #265, #266, #267, #270, #274, #275, #276, then #286, #287, #290, #293, #295
2024-10-21 Mainland-China IPs blocked #277, #286
2025-08-17 → 08-28 Endpoint migration. A user's mitmproxy capture of live Edge showed Read Aloud had moved to https://api.msedgeservices.com/tts/cognitiveservices/websocket/v1, with Ocp-Apim-Subscription-Key and Sec-MS-GEC replacing TrustedClientToken. Releases 7.2.1–7.2.3 shipped 2025-08-20..28; #416 reports the new endpoint still had problems #399, #401, #416
2025-12-08 → 12-12 Another break; #442 and #443 both opened 2025-12-08, #444 on 12-10, #447 on 12-12, and releases 7.2.4–7.2.7 shipped inside that window #442, #443, #444 ("Was the request method for v7.2.3 disabled by Microsoft?"), #447
2026-01-20 → 2026-07-20 #458 WSServerHandshakeError: 403; #463 (2026-03-05) preceding release 7.2.8 (2026-03-22); #473 "Intermittent No audio was received errors with valid requests" and #481 both still open #458, #463, #473, #481

Tracker: github.com/rany2/edge-tts/issues. Custom SSML support was removed from the library outright because "Microsoft prevents the use of any SSML that could not be generated by Microsoft Edge itself" [measured].

Read as: four protocol-level breaks in under two years, each fixed only after users reported it, plus intermittent silent failures still open. Every wrapper inherits this — openai-edge-tts, MsEdgeTTS, hass-edge-tts, node-edge-tts, and the Cloudflare Worker relays, whose existence is itself evidence of the region blocking in #277 and #286 and which add a further third party to the path.


5. The commercial assistive-technology voice market

Supplier Install route Cost Consumed by
Cerence Embedded TTS (cerence.com) not sold direct; reached only through a licensed packager OEM, per-integrator Tiflotecnia, Runa TTS, Voxin, NextUp
Tiflotecnia Voices for NVDA 4.0 (tiflotecnia.com) NVDA add-on (free in the Add-on Store, publisher ruifontes); the licence key is the paid part AUD $160.00 [measured, NV Access listing]; discounted upgrade from a Vocalizer or Code Factory licence NVDA
Acapela TTS Voices for NVDA (acapela-nvda.com) NVDA add-on; two builds offered, "NVDA 2019.3 +" and "NVDA 2026.x +" AUD $95.00, one licence covering all languages, installable on up to 3 personal computers of the same user [measured] NVDA
CereProc / CereVoice (app.cereproc.com) SAPI 5, plus SDK and cloud credits per-device licence; commercial use is an annual fee [vendor]. Acquired by Capacity 10 July 2024; cereproc.com now 301-redirects to capacity.com [measured, 2026-08-09] any SAPI 5 consumer
Freedom Scientific synthesiser downloads gated by host-product version bundled with the JAWS/ZoomText/Fusion licence JAWS, MAGic, Fusion
Code Factory Eloquence / Voices for NVDA SAPI 5 synthesiser and an NVDA add-on ~USD 69 through resellers [lead, AFB article] NVDA, and any SAPI 5 consumer
ETI-Eloquence / IBM ViaVoice Outloud 32-bit DLL, obtained separately proprietary, licensed NVDA add-ons, JAWS
DECtalk / FonixTalk (dectalk.nu) community archive distributing SAPI 5 and NVDA builds plus hardware-synth drivers none charged; "community redistribution of legacy builds is unlicensed in practice" SAPI 5, NVDA

Freedom Scientific's version fence, which matters if you inherit a licence. Its download page states that Vocalizer Expressive v1 voices work with JAWS 15–17 and MAGic 13.1, v2 with Fusion 11 / JAWS 18 / ZoomText 2018 / MAGic 14 or later — then: "When you install a version 2 voice, any version 1 voices installed on your computer are no longer available… To restore the version 1 voices, you must first uninstall all version 2 voices." [measured, support.freedomscientific.com/Downloads/synthesizers — the live page returns a near-empty body to a scripted fetch; the text above was confirmed in the Wayback capture of 2026-07-07 17:58:12 UTC]

5.1 Code Factory's discontinuation — confirmed and dated

Code Factory's own product page at codefactoryglobal.com/usecases/apps/voices-for-nvda is headed "Not available anymore" and reads: "Due to compatibility issues with the latest version of NVDA that has recently been released, we have made the difficult decision to discontinue our current range of product voices… maintaining compatibility with the newest updates has presented significant challenges that prevent us from continuing to offer this product as a viable solution… More information coming soon." [measured, fetched live 2026-08-09]

Dating: the page's own metadata date is 2024-04-17; the earliest Wayback capture, 2024-05-11 12:53:42 UTC, already contains the identical notice, so the announcement is on or before 2024-05-11. The text is unchanged in every capture through 2026-05-17 and in the live fetch — "More information coming soon" has stood for over two years with no replacement product [measured]. The user-side account, from NV Access's In-Process of 4 August 2025: "When Code Factory suddenly dropped support for their Eloquence add-on without warning, many users were left disappointed."

Acapela is the counter-case in the same market: it ships a build tracking NVDA 2026.x [measured, its download page]. Tiflotecnia positions its Cerence product as the upgrade path for stranded Code Factory licence holders [vendor].

5.2 ETI-Eloquence: what I could and could not establish

Eloquence is the synthesiser blind power-users name repeatedly in this catalogue's community data, and the reason they give is latency, not naturalness. Its footprint was cited by a blind NVDA user as 4,089 KB against KittenTTS's advertised 25 MB [community, HN 44809042].

What is measured:

  • The engine binary is 32-bit only. The maintained NVDA add-on states: "The Eloquence DLL is 32-bit only. This add-on launches the Eloquence Host Process (eloquence_host32.exe) to load the Eloquence Engine and stream audio back to 64-bit NVDA." [measured, fastfinge/eloquence_64 README]
  • That add-on carries no licence (gh api returns license: null), created 2025-10-13, last pushed 2026-07-25, 29 stars [measured, gh api]. The engine inside it is not the add-on author's to license.
  • Its Android build was dropped over 64-bit incompatibility and returned in 2025; NVDA users are told plainly that "IBM viavoice outloud tts is not supported because it is an old sapi4 synthesizer" [measured].
  • The one lawful retail channel found is Code Factory (SAPI 5 / NVDA add-on) plus Tiflotecnia reselling it — and Code Factory's NVDA product is the discontinued one above.

Declared gap — the "last compiled around 2003" claim. I could not confirm a build date from IBM, SpeechFX, Nuance or Code Factory; a targeted search returned NVDA add-on listings and forum threads only. The closest first-hand evidence in the corpus is a screen-reader developer's account, not a vendor record: mwcampbell, who was tasked with adding Eloquence support to a Windows screen reader in 2009, reports "When I got the SDK, the timestamps on the files, particularly the main DLLs, were from 2002" and "As far as I know, an updated SDK for Windows was never released" [community, HN 28652095, 2021-09-25]. Treat any specific year — 2002 or 2003 — as unestablished. What is substantiated is the 32-bit-only DLL, the SAPI 4 lineage of the ViaVoice Outloud sibling, and one first-hand report of 2002-era timestamps in a 2009-issued SDK.

Read as: the classic formant engines (Eloquence, DECtalk, ViaVoice Outloud) have a supply profile the neural ones lack — kilobytes, no weights, no download server, no licence server — and a supply risk the neural ones lack: the code is proprietary, the source is not public, the last commercial NVDA reseller quit in 2024, and what circulates is redistribution nobody in this research established as authorised.


What I could not establish in this section

  1. Whether espeak-ng's GPL reaches Kokoro, KittenTTS or any other permissively-licensed model as distributed. Open legal question; see 1.3. Repository licences are facts; the reach of one licence into another project's distribution is not readable from a repository.
  2. Whether cloud providers other than Amazon permit caching and replay of synthesised audio. Their terms of service were not read; the pricing pages do not address it (section 3).
  3. A build date for ETI-Eloquence from any party entitled to state one (section 5.2).
  4. Nuance Vocalizer's end-of-life dates from Microsoft or Nuance; the only source located is a competitor's page (section 3).
  5. Whether macOS Personal Voice is reachable from say, as opposed to AVSpeechSynthesizer — flagged in the section 2 table as worth confirming and not confirmed here.

Method, coverage, and negative space

1. Nothing in this catalogue was executed

Read this before anything else. No tool listed here was installed, launched, configured, or timed. Every capability statement in all 1,553 rows comes from a README, a vendor page, an API reference, an issue thread, a package manifest, or a user's report. When a row says a tool "restores the clipboard byte-for-byte", its documentation says so — no clipboard inspector confirmed it. When a row says a tool works in Electron, someone wrote that down; nobody pressed the key in VS Code.

The same is true of the adversarial pass that checked this document: it read sources, registries and the local macOS system, and it ran no catalogued tool either.

Read as: a map of claims with their provenance attached, not a test report. The gap between "documented" and "true on your machine" is yours to close; each row's evidence label tells you how wide it probably is.

The research record

Stage yields as they stand in the final file, FINAL.json [measured, own count over FINAL.json 2026-08-09]:

Stage What it did Rows now attributed to it
Round 1 8 blind discovery angles + a completeness critic 747
Round 1 critic Counted those queries by surface All 8 angles hit essentially 4 surfaces; 10 source-classes untouched
Round 2 Swept those 10 classes 686
Round 2 critic Checked round 2 against the already-seen name index Killed 2 of its own hypotheses; found an error in round 2's output
Verification CORE rows re-read against primary sources 378 row-records across 12 batch files, 370 unique URLs
Relationship crawl Forks, derivatives, "inspired by", low-star 2026 tier 110
Community reception 6 venue files 1,016 raw records → 164 per-tool consolidations

The stage column does not sum to 1,553, and here is why. The round field reproduces exactly for rounds 1 and 2 (747 + 686 = 1,433), but 120 rows carry no round value while the relationship crawl is credited with 110. The 10-row difference is rows that entered through the relabelling and verification merges without a round stamp. Stage attribution is therefore approximate at the ±10 level; the band and evidence totals, which are computed directly over FINAL.json, are not.

Round-2 yields by source class [measured, FINAL.json]: forges 131, package registries 125, mechanism-vocabulary 101, non-English 67, forums 52, abandonware/historical 45, remote-headless 43, academic 39, commercial voice supply 36, AT procurement 33, critic sweep 14.

Stage counts drift, and the final file is the arbiter. Mid-flight the stages reported 748 round-1 entries and 747 round-2 rows; the file now attributes 747 and 686, because deduplication and re-banding moved rows between stages after they were logged. Where a stage-time number and FINAL.json disagree, this document uses FINAL.json. The seen-name index the round-2 critic checked against holds 740 names on disk (seen-names.txt, seen-list.txt); an earlier draft described it as a 3,530-key index, which no file here reproduces — treat the size of that index as unestablished.

The round-2 critic's verdict was split: the source-class sweep was saturated, the catalogue was not — novelty had stopped being a function of which source you queried and become one of recency and relationship. The relationship crawl exists because of that, and it is why a re-run in six months will find new rows without new source classes.

2. The evidence ladder

Five labels, applied per row, counted over all 1,553 rows [measured, FINAL.json].

Label What it means here Rows
[measured] An agent read the primary artifact — README, source, API response, docs — and the claim is what it says 885 exact, 895 counting qualified labels
[vendor] The maker's own unchecked claim, quoted from their product page 319 exact, 321 counting qualified labels
[lead] Found and named; capability claims never checked against any source 316
[derived] An inference by the research, not a statement by anyone 21
[community] A user report, in the 164 sentiment consolidations with a deep link reception only

Twelve rows carry a qualified or compound label (measured (repo metadata), measured (…) / lead (…)) because part was checked and part was not. The label is not a quality signal: it says how hard the research looked, not how good the thing is.

The verification pass is why [measured] carries weight now. 297 rows from the package-registry and forge sweeps were re-labelled wholesale; 33 kept measured, 193 became vendor, 67 became lead, 4 became derived [measured, own count over relabelled-registries.json]. A registry listing is the packager's description, not the tool's behaviour, and the first pass conflated the two. (An earlier draft of this section gave the base as 226 rows with 193 and 67 downgrades — arithmetic that does not close. The base is 297.)

Per-band distribution, measured / vendor / lead / derived [measured, FINAL.json]:

Band Split
CORE 279 / 111 / 48 / 10
ADJACENT 388 / 159 / 176 / 7
ENGINE-only 166 / 43 / 68 / 2
OUT-OF-BAND 62 / 8 / 24 / 2

3. Declared coverage limits

Fields that could not be established. Over the 448 CORE rows [measured, FINAL.json, folding blank fields into "unknown"]: clipboard behaviour unknown on 118 (105 recorded unknown, 13 blank), Electron/terminal behaviour unknown on 163 (145 unknown, 18 blank), acquisition method unknown on 44. The first two are what a solo engineer cares about, and the two documentation reliably fails to state.

Three tallies circulated during drafting; one basis now governs. Counts were computed at different times over different subsets — the 378 raw verified rows, the 370 URL-deduplicated verified rows, and all 448 CORE rows in FINAL.json — and the drafts printed all three as if they were the same number. Every count in the published document is now taken from FINAL.json, rows where fit_band == CORE-screen-or-selection-reader, n = 448. For the record, the clipboard field alone reads: 448 CORE no 261 / unknown 105 / yes 60 / blank 13 / n-a 9; 378 raw verified no 206 / unknown 80 / yes 64 / n-a 28; 370 deduplicated no 201 / unknown 80 / yes 61 / n-a 28 [measured, own recount over both files]. Any figure elsewhere that matches none of these three is superseded.

Free-text values were normalised into the enums after the drafts were written. 459 acquisition_method values and 647 platforms lists across the catalogue had escaped their enums into prose ("OCR of a user-defined screen region, triggered by a hotkey"); these were mapped into the coded values, with the original preserved in acquisition_method_raw and platforms_raw. In CORE the change is small — 13 acquisition values and 9 platform lists — but it moved cells, so any cross-tab computed before the normalisation is stale. The cross-tab in section 4 was recomputed after it.

Surfaces reached for that did not open. Of 823 logged search-and-scrape invocations, 91 failed (11.1%) [measured, walking all 20 index.jsonl files in the research tree; an earlier count of 757/85 used a shell glob that skips hidden .research/ and .r2/ directories and undercounted both numbers]:

Failure class Count Hosts named in the log
Fetch blocked or failed 34 alternativeto.net (5), askubuntu.com (3), apple.stackexchange.com (2), learn.microsoft.com (2), oralux.net, hear2read.org, stackoverflow.com, superuser.com, dl.acm.org, play.ht, play.ai, cereproc, and 14 others at 1 each
Rendered, no extractable text 21 freedomscientific.com, harposoftware.com, sourceforge.net/directory, instagram.com, nvda-addons.org, and others
YouTube, no transcript 16 youtube.com
gh bad --sort argument 8 GitHub search
Query returned nothing 6 Reddit listings, gh search repos
gh rate limit (HTTP 403) 5 GitHub search
Uncategorised residue 1 duckduckgo.com"Search failed after 3 attempts. Last error: Request timed out: ConnectTimeout(...)"

The six named classes sum to 90; the residue row above closes the table to the stated 91.

Four of those deserve naming:

  • AlternativeTo was unreachable — five fetches failed, and an independent re-test returned HTTP 403 to a scripted request. Its pages render the alternatives list client-side and its JSON endpoint returned a Cloudflare interstitial. It is the one source class indexing tools by substitutability rather than keyword — the axis a keyword sweep cannot see — and it needs a real browser session, which this research lacked.
  • The requester's named source was an Instagram feed, which is login-gated — the scrape returned "No extractable content found" at 2026-08-08 23:06:47. The same publisher's web property, gittrend.io, was substituted, its trending and topic pages supplying that angle's rows: a different population, a swap rather than an equivalence.
  • SourceForge's directory returned HTTP 403 to every request, including with full browser headers, and was re-confirmed blocked on 2026-08-09. Its per-project REST API (sourceforge.net/rest/p/<slug>) worked and was used instead, so SourceForge coverage is sampled rather than enumerated.
  • Academic search used general web search, not a scholar-specific tool. The 39 academic rows surfaced through ordinary queries and DOI resolution; no citation-graph traversal ran.

Four sites are behind bot walls, and readers clicking those links will be blocked too.

  • AppleVis returns a Cloudflare "Just a moment…" interstitial to any scripted fetch, with and without browser headers. Four AppleVis-sourced claims in this document — Siri voices skipping reproducible chunks in Kindle, Eloquence mispronouncing iOS/iPadOS/macOS/watchOS under the Community Dictionary, the Dolphin thread, and a 2022 Screen Sharing/VNC comment — were verified only against the on-disk corpus, which holds the verbatim quotes and dates. The links are given so you can open them in a normal browser; a scripted fetch of them will fail. [measured, four fetch attempts 2026-08-09]
  • support.freedomscientific.com returns a 60-character body to a scripted fetch. Its content was closed through a Wayback capture of 2026-07-07, which carries the version-1/version-2 voice compatibility split verbatim. Cite the Wayback URL alongside the live one.
  • sourceforge.net/directory, alternativeto.net and stackoverflow.com all return HTTP 403 to scripted fetches and could be confirmed only as blocked — no substitute capture was obtained for them.

The verification pass was itself partial. The adversarial reviewer tested link resolution for all 231 distinct URLs in the six section drafts and found zero dead links, but read the primary source for only about 70 load-bearing claims. The ADJACENT and OUT-OF-BAND catalogue tables were not attacked at all — only the six prose sections were. A claim in those two tables carries its row's evidence label and nothing more.

A known layer-data defect, disclosed rather than silently fixed. The band labels and the raw layers field disagree for part of the catalogue. 57 of the 279 ENGINE-only rows still carry L1-ACQUIRE or L2-TRIGGER in their own layers list — among them macOS /usr/bin/say, Gespeaker, tts-overlay, voiced, Glate and isimud-text-to-speech — usually because the project reads a file or a caller-supplied argument rather than the screen. In the other direction, 2 of the 448 CORE rows lack one of the two: Speakonia (CFS-Technologies) and ReadPlease has no L2, MS Edge TTS Extension (yacine-bens) has no L1. The verification pass covered the CORE band only, so the ENGINE-only layer tags were never re-checked. Where band and layer list disagree, the band is the considered judgement and the layer list is the raw annotation — but a reader who filters on layers will get a different answer from one who filters on the band. [measured, own count over FINAL.json]

Verification thinned where the language barrier thickened. Several non-English rows carry explicit "not verified against the product" notes — a German vendor's "mark text and have it read" phrasing, a French-distributed suite's acquisition scope — kept as vendor claims because the agent could not confirm them in the source language.

One negative claim rests on an unrun search. Amazon Polly's pricing page states that "you can cache and replay Amazon Polly's generated speech at no additional cost" [measured, pricing]. Whether any other cloud vendor permits caching and replay is governed by terms of service that were not read — neither by the research nor by the verification pass. Treat the Polly clause as the one found, not as the only one that exists.

Community reception covers a slice, and the size of the slice depends on the matching rule. 164 of the 653 sentiment targets ended with at least one record, so 489 targets generated zero records [measured, sentiment-targets.txt has 653 non-empty lines and its first line is a real target, not a header]. Mapping those 164 consolidations back onto catalogue rows requires a name-matching rule, and the answer moves with it: matching on the name head or an owner/repo slug touches 121 of 1,553 catalogue rows (8%) and 43 of 448 CORE rows (10%) [measured, own match 2026-08-09]. An earlier pass reported 178 and 61 under a rule that was not recorded and could not be reproduced; prefer the stated rule or treat the coverage as approximate. Silence there means nobody was found talking about a tool, not that nobody uses it. Stance across the 164 skews toward friction (broken-for-me 35, install-friction 17, quality-complaint 13, against works-for-me 20, quality-praise 1) — what forums and issue trackers select for.

The sentiment corpus is 1,016 records across 986 unique URLs, in six venue files: Hacker News 168, YouTube 189, AT forums 128, issue trackers 104, r/Blind-tier subreddits 208, r/LocalLLaMA-tier subreddits 219 [measured, own count over the six files]. An earlier figure of roughly 1,300 double-counted sentiment-reddit-accessibility.json, which is a strict subset of sentiment-reddit-accessibility-full.json — 174 rows against 208, with zero URLs unique to the subset. The accessibility split is r/Blind 73, r/audiobooks 42, r/AssistiveTechnology 32, r/Dyslexia 29, r/accessibility 29, r/tts 3 = 208. At 29 records, r/Dyslexia is the smallest input for the population this document is written for.

4. Negative space — what does not exist

Everything in this section was recomputed from FINAL.json after the enum normalisation, over the 448 CORE rows [measured, own cross-tabulation 2026-08-09]. A zero cell is a finding.

Platform against acquisition method. Platforms are multi-valued, so a row appears in every platform column it claims; the acquisition method is single-valued, so each row appears exactly once per row across the method columns.

Platform (CORE rows) browser-DOM clipboard-watch AX-selection AX-follow-focus OCR-region simulated-copy OCR-full document-parse unknown
Windows (198) 10 47 8 35 37 32 5 2 22
macOS (134) 10 18 39 8 7 27 2 1 22
browser-extension (95) 78 2 0 1 7 2 0 1 4
Linux-unspecified (48) 7 11 0 11 4 6 0 2 7
Linux-X11 (40) 1 8 18 3 5 3 1 0 1
Android (28) 7 2 3 10 1 0 2 1 2
Linux-Wayland (28) 0 6 12 3 5 1 0 0 1
iOS (16) 7 1 2 2 0 0 1 1 2
web (4) 2 0 0 0 0 0 0 1 1
headless-server (3) 0 0 0 3 0 0 0 0 0
unknown-legacy (2) 0 0 0 1 1 0 0 0 0

Column totals over all 448 CORE rows, for checking: browser-DOM 82, clipboard-watch 73, selection-via-accessibility-API 68, accessibility-tree-follow-focus 61, OCR-screen-region 53, selection-via-simulated-copy 51, unknown 44, OCR-full-screen 13, document-parse 3. Eight of the nine columns account for every row. The OCR-full-screen column shows 10 rather than 13 because three CORE rows carry no platform list at all — the DOS and OS/2-era cluster (IBM Screen Reader and Screen Reader/2, Vocal-Eyes, jmdaweb/habla), which the platform enum has no value for. No CORE platform value falls outside the eleven rows above. The rows sum above 448 because a tool appears in every platform it claims.

Compound conditions.

Combination sought CORE rows
Windows and macOS and some Linux, with selection-via-accessibility-API, clipboard no, runtime local-only 0 (27 rows are tri-platform; 1 of those uses selection-via-accessibility-APIPot, whose clipboard field is unknown and whose runtime is hybrid)
Same, relaxed to either accessibility route 1 (Fenriraccessibility-tree-follow-focus, clipboard no, local-only)
Tri-platform, clipboard no and local-only, any acquisition method 5
Android with selection-via-simulated-copy 0
iOS/iPadOS with local-only synthesis 1 (Orate)
iOS/iPadOS with OCR of a screen region 0
iOS/iPadOS with OCR of the full screen 1 (Apple VoiceOver Recognition — coded OCR-full-screen, not region)
Headless or SSH-reachable 3 (speakup + espeakup, YASR, TDSR — all console-framebuffer, all accessibility-tree-follow-focus)
Linux-X11 with full-screen OCR 1 (OCRdesktop) — against 5 X11 rows doing region OCR
Wayland, selection-via-accessibility-API, local-only, status active 9 of 28 Wayland CORE rows (11 if accessibility-tree-follow-focus is included)

Read as: three shapes nobody has built, on this catalogue's coding.

  • The cross-platform clipboard-safe reader. 27 CORE rows run on Windows, macOS and Linux, and none of them combines accessibility-API selection capture with a non-destructive clipboard and local-only synthesis. Tri-platform tools exist; they reach the text through the clipboard or a browser DOM rather than through three accessibility backends. Relaxing to any accessibility route yields exactly one row.
  • A current headless answer. The three headless rows are Linux console readers from an earlier era. A remote GUI session over SSH has no catalogued reader short of a full remote-desktop deployment.
  • An iOS story outside Apple's stack. 16 CORE rows list iOS; 1 runs synthesis locally, 1 does OCR, and that one is Apple's. Region OCR on iOS is a zero cell.

Two caveats that are not claims of absence. First, the catalogue stores one acquisition method per row, so it cannot express a tool that tries accessibility first and falls back to OCR or the clipboard; a free-text search across CORE row prose finds 43 rows using the word "fallback" and 54 describing a clipboard save-and-restore, none of which the coded field can show. Second, 707 of 1,553 rows live off GitHub (33 DOIs, 30 GitLab, 29 Codeberg, 21 SourceForge, 18 Launchpad, plus app stores and vendor sites), so a GitHub-only refresh sees 846 rows — 54.5% of the catalogue.

5. How to re-run this

Star counts, push dates, and status fields were read on 2026-08-08 and 2026-08-09. They will be wrong later. These are the commands that produced them.

Refresh every GitHub row (846 rows, 54.5% of the catalogue):

for r in owner/repo ... ; do
  gh api "repos/$r" --jq '[.full_name,(.stargazers_count|tostring),(.license.spdx_id // "none"),
    (.pushed_at[0:10]),(.created_at[0:10]),(.language // "-"),(.description // "")]|@tsv'
done

Re-run discovery, plus the recency tier where the round-2 critic said novelty now lives:

gh search repos --topic=tts --topic=text-to-speech --topic=speech-synthesis \
  --sort stars --limit 40 --json fullName,stargazersCount,description,updatedAt,language,license,url
gh api "search/repositories?q=speak%20selection%20hotkey%20menubar%20in%3Aname%2Cdescription%2Creadme&sort=stars&order=desc&per_page=20"
gh search repos "read selection aloud" --created=">2026-01-01" --sort=stars --limit=25 \
  --json fullName,stargazersCount,description,updatedAt,language

--sort best-match is not a valid value for gh search repos and cost this sweep 8 invocations; the valid values are stars, forks, help-wanted-issues and updated.

The mechanism vocabulary found tools no product-name search reaches. Search these API identifiers in code and READMEs, not the words "text to speech": kAXSelectedTextAttribute, AXUIElementCopyAttributeValue, IUIAutomationTextPattern, TextPattern.GetSelection, UIA_TextPatternId, AT-SPI2 / Text.get_text_at_offset, wlr-data-control and ext-data-control-v1 (wayland.app), xdg-desktop-portal GlobalShortcuts, XFixesSelectSelectionInput, PRIMARY selection, clipnotify, wl-paste --watch, ControlGetText, NSPasteboard, CGEventTap, SAPI5.

Non-GitHub forges: curl -s https://sourceforge.net/rest/p/<slug> (directory pages are Cloudflare-blocked; the REST endpoint is not). Codeberg, GitLab, Launchpad and salsa.debian.org were swept through their own search UIs.

Community reception: Hacker News via the Algolia API (https://hn.algolia.com/api/v1/search?query=<q>&tags=story&numericFilters=created_at_i><epoch>); individual HN comments via the Firebase item API (https://hacker-news.firebaseio.com/v0/item/<id>.json), which is what to use when the web front end answers 405 or 429; Reddit via old.reddit.com listing pages; plus AppleVis, NVDA and Orca issue trackers and YouTube transcripts.

Local macOS reads used in the platform sections: sw_vers, say -v '?', defaults read com.apple.speech.synthesis.general.prefs, defaults read com.apple.universalaccess, and pbs -dump — note that pbs is not on PATH; it lives at /System/Library/CoreServices/pbs, and the first attempt fails without the full path.

Rate limits bind. Five sweeps here died on HTTP 403: API rate limit exceeded; space gh search calls by ~2.5 seconds.

6. What this document deliberately does not do

It does not recommend, rank, score, or shortlist — the requester's explicit instruction. No tool is called good and none is placed above another. Where a superlative appears it sits inside quotation marks, attributed to whoever said it.

Nothing found was discarded. Rows that plainly do not fit are still here — MS-DOS readers, a Symbian screen reader, discontinued products, libraries with no user interface — because a catalogue that quietly drops its misfits gives the reader no way to tell exhaustive from curated.

The four bands are scope descriptions, not quality judgements. CORE is assigned when a tool both gets text off the screen (L1-ACQUIRE) and lets a human invoke it on what is in front of them (L2-TRIGGER). ENGINE-only synthesises speech but somebody else hands it the text. ADJACENT does part of the job, or does it inside a single application. OUT-OF-BAND surfaced in the sweep and is not a reader. The band is assigned by reading what the project does, not by trusting the layers field — see the layer-data defect declared in section 3, where 57 ENGINE-only rows and 2 CORE rows have layer lists that disagree with their band. A polished commercial product can sit in ADJACENT and a 6-star weekend project in CORE; that says nothing about which you would rather use, only which layers each owns.

The decision is the reader's; this section exists so they know how much weight each row carries when they make it.

Appendix S — Stack annotation (strippable)

This appendix is separable, and it is the only part of the document that is. It is the sole place where the reader's own machines appear. Delete everything from this heading to the end of the file and no fact stated anywhere else in the catalogue changes — nothing in the entry tables, the mechanism anatomy, the supply survey or the sentiment corpus depends on a single line below. The appendix consumes catalogue facts; it never supplies them.

Nothing here is advice. Every item states a consequence of a catalogued property on one specific setup — "if X is installed, Y follows". No entry says what to choose, no entry ranks, and no entry says "you should". Where a consequence cuts both ways, both directions are stated and neither is preferred.

Nothing here was executed. No tool was installed, no RDP session was opened, no hotkey was pressed, no Citrix or Jump Desktop connection was made. Every statement below is read from a repository, a source file, a vendor page, a protocol specification, or the catalogue's own fields. The remote-desktop subsection (S.3) is entirely protocol-spec and vendor-matrix reading and says so again in place.

Setup assumed: a MacBook Air on macOS 26.x, where Apple's Speak Selection is reached by Option+Q through a Karabiner-Elements mapping onto Shift+F13 (combo 617 in com.apple.speech.synthesis.general.prefs), with Rectangle on the F14 family and the input-source switch on Option+F13; plus a Windows desktop over RDP from Microsoft's Windows App and Jump Desktop. Terminal work happens in Ghostty.


S.1 — AX-selection readers on macOS, and what a second global hotkey owner costs

Filtering the catalogue's CORE band (n = 448) for rows whose acquisition method is selection-via-accessibility-API returns 68 entries. Of those, 44 record the clipboard as undisturbed, 39 list macOS among their platforms, and 19 are both on macOS and clipboard-safe [measured, own count over FINAL.json, 2026-08-09].

Two earlier figures circulated while this appendix was being drafted — "52 macOS tools, 37 non-destructive" and "47 rows, 23 explicit no". Neither reproduces against the file on disk under any band, platform or de-duplication filter that was tried, and both are withdrawn rather than reconciled. The figures in the paragraph above are the only AX-selection counts this appendix uses [measured; withdrawal recorded rather than silently corrected].

The 19 macOS AX-selection rows recorded clipboard-safe, named in full so the count can be checked: macOS Spoken Content / Speak Selection and its second catalogue row, the Automator Quick Action "Speak text" route, the Services item "Speech > Start Speaking Text", MLXRead, popclip-azure-text-to-speech, better-macos-speak-selection, LivingTTS, Subvocal, hibiki, speed-read, Dictater, TextGO, Xpop, Flick, Raycast MiMo TTS, Murmur, text-listener-app, Sotto [measured].

Two disclosures the number needs: four of the 19 are Apple's own native routes held as four separate catalogue rows, so the count of distinct third-party projects is 15; and of the remaining 20 macOS AX-selection rows, 6 record the clipboard as clobbered and 13 record unknown, with 1 row carrying no value at all [measured].

The structural fact for this setup: the F-key bus works because every hotkey owner was moved to an address only Karabiner can dial. A new tool joins that scheme only if its chord can be re-recorded onto an F-key. A chord fixed in source cannot be moved onto the bus, and registers at the OS level exactly the way the screen-capture hotkey did when it collided.

Catalogued macOS AX-selection readers, grouped by whether the chord can be moved:

Chord ownership Tools Evidence
Re-recordable in the tool's own settings TrayTalk ("a global hotkey the user records in Preferences"), Sotto, Subvocal, speed-read, Narrateify ("all remappable"), MoePeek, Supertonic Read Selection [measured] from each README
Fixed in source — cannot be moved onto the bus better-macos-speak-selection: Option+Escape via Carbon RegisterEventHotKey, with optionEscape, optionMinus and optionEqual hard-coded as Carbon kVK_ constants in Hotkeys/HotkeyBinding.swift and no configuration path (repository has 0 stars). MLXRead: Option+Escape event tap, its README stating you must disable or reassign Apple's own Option+Escape yourself because "MLXRead will not change it for you". hibiki (Option+F) and Yapper (Ctrl+Shift+S, 0 stars) document no configuration. [measured], source read
No global chord at all — nothing to collide Xpop and Flick (popup on selection), Voice Reader (floating button + hover), TextGO (double-click / shift-click / drag-select rules), popclip-azure-text-to-speech (rides PopClip's bar) [measured]
Chord owned by a launcher, not the tool Raycast extensions Read AI, Azure Speech TTS, Doubao TTS, MiniMax TTS, MiMo TTS, AI Voice Studio — launcher commands, hotkey assigned per command inside Raycast [measured]

Consequences on this setup. A row-2 tool alongside Apple's Speak Selection means two OS-level owners of one chord, resolved by whichever registered first — the capture-tool failure mode again, and not repairable from Karabiner, which redirects what it is asked to send but cannot un-register a chord a running app already claimed. MLXRead states the case outright: it and Apple's feature both want Option+Escape.

A row-1 tool records onto a free F-key address and joins the scheme — Option+Q keeps dialling Speak Selection while a second chord dials the new reader, or Option+Q is repointed and combo 617 sits unused.

Rows 3 and 4 add no OS-level chord owner. In row 3 the trigger is the selection gesture itself: no bus address is consumed, and no per-app scoping through Karabiner is possible either — the popup appears in every app exposing a selection. Row 4 means Raycast is the one new owner however many extensions are installed.

One catalogued item collides on this exact chord: Namida OCR's README states "By default, Alt + Q on windows and Option + Q on mac activates the snipping mode" [measured, README line 21] — the chord Karabiner currently uses to reach Speak Selection. The repository has 15 stars [measured, gh api 2026-08-09].

Read as: the F-key bus constrains the trigger layer only. It says nothing about whether a tool's acquisition or voices suit the reader; it decides whether the tool can be installed without disturbing the arrangement already working.


S.2 — The Electron and terminal hole

An AX-based reader returns nothing when an app does not publish kAXSelectedText. Ghostty is a terminal; editors in daily use are frequently Electron. Catalogued tools carrying a documented answer on macOS:

Tool Documented reach Label
speed-read README names "Safari, Chrome, Preview PDFs, VS Code, Slack, Mail, Terminal" [measured]
SpeakPro README line 3: a TTS add-on "for iTerm2 (and Terminal.app, Warp, Ghostty, kitty — anything that copies selection to clipboard)". Acquires by pbpaste on a ⌘⌃S macOS Shortcut, catalogued clipboard-watch, clipboard_destructive: no, works_in_electron_or_terminal: yes. MIT, 1 star, created 2026-05-07, pushed 2026-05-18 [measured, README + gh api 2026-08-09]
Murmur Author's list: "Chrome, Safari, PDFs, Terminal, VS Code, Notes, Slack, Gmail, Markdown" [vendor], untested
Aloud README: "Works in every app, including Electron ones like VS Code, Cursor, Slack, and Discord, where the built-in macOS Speak Selection silently does nothing" [vendor], repo one day old at crawl
TDSR Reads the PTY screen buffer via pyte — not an accessibility tree at all [measured]
Fish Screen Reader OCR of the screen or a chosen window — indifferent to whether text is exposed [measured]
better-macos-speak-selection partial — AX first, then a Cmd+C fallback that snapshots the pasteboard, polls changeCount (CHANGE_COUNT_POLL_TIMEOUT = .milliseconds(150), interval 10 ms) and restores only if the count moved [measured] from Swift source

Unknown for this dimension: MLXRead, LivingTTS, Subvocal, hibiki, Narrateify, ReadMe, Voice Reader, TextGO, Flick, Vosh, Dictater, and every Raycast extension listed above. Across the whole CORE band, 145 of 448 rows record works_in_electron_or_terminal: unknown, with a further 18 carrying no value at all; the recorded values are 118 yes, 70 n/a, 49 partial, 48 no [measured, count over FINAL.json]. On the macOS subset (134 CORE rows) the unknown count is 59 [measured]. Apple's own Speak Selection is recorded twice with conflicting values, partial and unknown; the catalogue does not settle it.

Ghostty specifically is named in three catalogued rows, not one [measured, string search over FINAL.json]:

  • Yapper's source comments: "Terminals with copy-on-select (Ghostty) put a finished selection on the pasteboard immediately, but TUI apps that redraw constantly (Claude Code) clear the visible selection before our Cmd+C lands" [measured].
  • SpeakPro, which names Ghostty in its supported list and states the precondition explicitly — the terminal must be set to copy selection to clipboard ("iTerm2 → Settings → General → Selection → ☑ 'Copy to clipboard on selection'") [measured].
  • The OSC 52 escape sequence row, whose reference page reports support in 10 of 14 tested backends including Ghostty [measured].

On this setup that means a clipboard-watching reader hears a Ghostty selection with no explicit copy step, provided copy-on-select is enabled, while a simulated-copy reader can lose a selection inside a redrawing TUI. SpeakPro's ⌘⌃S sits outside the F-key bus and outside the Option+Q address, so it adds one OS-level chord owner that collides with nothing in the arrangement described above [derived, from its README and the bus layout].

Read as: the split is between reading text the app publishes and reading the pixels or the buffer. The tools in the table reach the terminal by a different L1 route, not by a stronger AX implementation.


S.3 — Inside the RDP window: three configurations

All of S.3 is spec-reading and vendor-matrix reading. None of it was tested on this setup. No RDP session was opened through either client, and no catalogued tool was run inside one.

The structural cause: RDP transmits a framebuffer plus a clipboard channel and exposes no accessibility channel for remote UI, so a local AX/UIA client asking a remote-desktop window for its selected text gets the window, not the remote document — recorded against FreeRDP and the Windows UIA platform row [derived], and stated as the motivating problem by the Sinter prototype, an "Accessible Remote Desktop Protocol" transmitting UI semantics instead of pixels [measured; 3 stars, last pushed 2021-01-29 — a research prototype, not a shipping option].

Consequence: every AX-selection reader in S.1, including Apple's Speak Selection, returns nothing for text inside the RDP window. That is not a bug in any of them.

Of the three routes into that window, the reading of Microsoft's own client feature matrix (remote-desktop-app-compare, table read 2026-08-09) puts them in three different states from a macOS client — the clipboard path documented and open, the virtual-channel path documented and closed, the audio path documented and open:

Configuration Mechanism Cost on this setup
1. Clipboard route, reader on the Mac In all three client tables on Microsoft's page the row "Clipboard - bidirectional" carries a bare ✅ in the macOS column with no footnote, where iOS/iPadOS carries footnote 1 "Text and images only." and Android/Chrome OS and the web client carry footnote 2 "Text only." macOS is the only non-Windows client whose bidirectional cell states no format restriction. The feature is defined on the same page as "Redirect the clipboard on the local device is to the remote session and from the remote session to the local device" [measured, Microsoft docs]. A separate footnote 3, attached to the unidirectional row, adds "macOS support is native in the Remote Desktop client. All other platforms require remote session configuration." Text copied in the Windows session therefore lands on the macOS pasteboard, where a clipboard-watch reader can speak it — 73 CORE rows use clipboard-watch acquisition, 18 of them listing macOS [measured]. An explicit Cmd/Ctrl+C in the remote session for every passage. Non-selectable remote content (an image, a game, a legacy control) yields nothing. Jump Desktop's clipboard behaviour in the remote-to-local direction is not established here: its support pages are behind a bot wall that returns an interstitial to any scripted fetch (S.7). Configuration 1 is documented for Microsoft's client and assumed for Jump Desktop.
2. OCR the RDP window from the Mac Region OCR reads pixels, so it is indifferent to the protocol and to the missing accessibility channel. 53 CORE rows use OCR-screen-region, 7 of them on macOS [measured]. Catalogued macOS region-OCR readers: Fish Screen Reader, manga-voice-reader, read-screen, pot-desktop-with-OCR-translator. Sensory Readable's Text Extractor names the scenario outright: "Remote desktop windows — content displayed inside RDP, Citrix, VirtualBox, VMware" [measured]. Text must be legible at the RDP scaling in use. Fish Screen Reader states "This app may upload your screenshot to OCR services to recognize", listing Azure, Google Vision or a bundled offline engine [measured] — on that path an image of the remote session leaves the machine. Sensory's Text Extractor writes the extracted text to the clipboard by design [measured], so it consumes the same resource configuration 1 depends on.
3. Reader inside the Windows session, audio over RDP NVDA on the Windows box sees real UIA, plus NVDA+r Windows OCR for objects exposing no text, plus documented Windows Console and Windows Terminal support [measured, NVDA user guide]. The audio path is open: "Speakers" is marked ✅ on every client platform in all three of Microsoft's client tables, macOS included [measured], and the protocol extension behind it, MS-RDPEA, is specified as "transfer[ring] audio data from the server to the client" [measured, page read 2026-08-09]. The accessibility virtual channels are closed from this client, for three independent documented reasons. (a) Microsoft's matrix marks "Third-party virtual channel plugins" ✅ on the Windows MSI and MSTSC clients and ❌ on the Windows Store client, macOS, iOS/iPadOS, Android/Chrome OS and the web client, in all three tables [measured]. (b) rdAccess's own README requires the add-on "installed on both the client and the server in NVDA", and NVDA is a Windows program — there is no client copy to install on a Mac [measured, README line 8; 15 stars]. (c) Freedom Scientific's remote-access page requires its software "installed correctly on both the client work station as well as the server", after which "the version of JAWS, ZoomText, or Fusion on the remote computer sends information through a virtual channel which then relays this output on the client computer through speech, braille, or magnification" [measured, vendor page via Wayback 2025-08-09 — the live page returns a bot interstitial]. The same vendor documents the fallback that a macOS client is left with, and it is configuration 3: install on the server only, in which case "remote authorization is not necessary since nothing is installed on the client. You will experience lower performance as the Freedom Scientific virtual channels are not installed. This means that there will be no braille output on the client and speech will be routed using standard Windows audio and port forwarding" [measured, same page]. Speech therefore rides the audio channel with whatever latency that adds — and this is a full screen-reader session, not a select-then-hotkey utility.

Read as: from a macOS client the three paths are not equally available and not equally documented. Two are open by the vendors' own tables (clipboard, audio) and one is closed by them (third-party virtual channels), and the closure is stated three times over by three different documents rather than inferred once. What none of the three documents is latency, quality or whether any of it works in practice — none of that was tested.


S.4 — The clipboard cost of a simulated-copy reader

Across the 448 CORE rows, 60 record the clipboard as clobbered to obtain a selection and 261 record it as undisturbed; 105 are unknown, 9 are n/a, and 13 carry no value [measured, count over FINAL.json]. The cost concentrates in one mechanism: of the 51 rows acquiring by selection-via-simulated-copy, 39 clobber the clipboard, 8 do not and 4 are unknown [measured].

Consequence while editing: each invocation of a clobbering tool replaces whatever was on the pasteboard. Reading a paragraph mid-edit destroys the snippet held for pasting, and the loss is silent.

Three catalogued mitigations, all [measured] from source or README: better-macos-speak-selection snapshots every pasteboard item, posts a synthetic Cmd+C, polls changeCount for 150 ms at 10 ms intervals, then restores only if the count moved; speed-read's "Cmd-C fallback snapshots and restores your full clipboard (images, RTF, files), verifies ownership via change count, and restores again if a delayed copy arrives after timeout"; Murmur has a "clipboard-copy fallback that restores your clipboard."

Separately, the clipboard is the acquisition route in configuration 1 above — so on this setup it is at once the thing being protected on the Mac side and the deliberate transport across RDP. The OSC 52 escape sequence, supported by Ghostty among 10 of 14 tested terminals, has the same property: it overwrites the local clipboard by definition, and the catalogue records it clipboard_destructive: yes for that reason [measured].

Read as: "clipboard-safe" and "clipboard-clobbering" are properties of the acquisition mechanism, not of the tool's quality, and on this setup they interact — a reader that protects the pasteboard locally and a reader that consumes it as an RDP transport are answering different questions.


S.5 — Local-only versus cloud

Of the 448 CORE rows, 253 run local-only; 75 hybrid, 56 cloud-API, 39 OS-native, 25 unknown [measured, count over FINAL.json].

Consequence of the cloud path, stated factually: a cloud-API reader transmits the acquired text to a third party on every invocation, and what is acquired is whatever is selected or on screen at that moment — on this setup, source under edit, mail, and the remote Windows session when reading via configuration 1 or 2. An OCR-over-cloud tool transmits an image of the region instead; Fish Screen Reader states this outright [measured, S.3]. Retention and training terms were not established (S.7).

Consequence of the local path: models download and run on the machine. MLXRead documents Kokoro at roughly 360 MB or Soprano at roughly 200 MB, Apple Silicon and macOS 14+, offline after a first-synthesis asset fetch; Aloud documents Kokoro-82M at roughly 310 MB [both measured]. Apple's Speak Selection downloads nothing and sends nothing.


S.6 — The dyslexia-versus-blindness evidence split (open question, not answered here)

Much of the community evidence in the sentiment corpus comes from blind daily users and points toward old formant synthesis, for reasons tied to a use case that is not this reader's. Quoted and attributed:

  • "blind people do not like any lag when reading that's is why so many still use eloquence and espeak" — [community], HN 44809136. Working speeds reported as normal in that corpus: 600–1200 wpm and 700+ wpm, one ETI-Eloquence user reporting an average near 730 wpm, another reporting eSpeak understandable near 1,000 wpm [community; r/Blind, AppleVis, Hacker News].
  • The mechanism claimed: "Neural TTS always has differences in how they say a thing, and at times, those differences can be large enough to trip me up" — [community], HN 40234673.

The counter-report, from a dyslexic user, is in the same corpus and reverses the conclusion:

"I depend on TTS to overcome dyslexia, but I also struggle with auditory processing disorder that causes me to misunderstand words. As a result, classical TTS does not help me read faster or more accurately than struggling through my dyslexia. It causes me to rapidly fatigue, zone out, and rewind often, in a way that is more severe than when I sight read. On the other hand, modern neural TTS is a huge enabler." — [community], HN 40238926

A third point sits between them: a self-described slow reader (not blind) reports parsing about 400 wpm through xsel | espeak -v en-us -s 400, and that it also helped a dyslexic relative — [community], HN 15506074. The dyslexia element of that report is second-hand, about the relative, so it is a third position rather than either pole.

Consequence on this setup: the low-latency, high-rate argument rests on 450–1200 wpm pattern-matching as a primary reading channel. The stated use here is assistive daily reading alongside sight, not sole-channel navigation at those rates. The corpus holds first-hand reports from people with dyslexia on both sides, disagreeing with each other. The catalogue does not resolve which applies, and nothing in it can — it is an empirical question about one person's comprehension at speed.


S.7 — What this appendix could not establish

  1. The AX-selection counts that once disagreed have been withdrawn, not reconciled. Two figures circulated during drafting — 52/37 and 47/23 — and neither could be reproduced from FINAL.json under any band or de-duplication filter. They are removed. S.1's 68 / 44 / 39 / 19 is a single count over the CORE band on one date and has not been reproduced by a second party.
  2. All of S.3 is untested. Every RDP statement is read from Microsoft's feature matrix, the MS-RDPEA specification, NVDA's and rdAccess's READMEs, and Freedom Scientific's vendor page. Nothing was run against an actual RDP session through either client, and no catalogued tool was exercised inside one. The matrix documents feature availability, not latency, quality or whether any particular reader behaves as its README says.
  3. Jump Desktop's remote-to-local clipboard is unverified. Its support pages return a Cloudflare interstitial to any scripted fetch (attempted 2026-08-09), so the direction question could not be closed from a primary source. Configuration 1 is documented for Microsoft's client and assumed for Jump Desktop.
  4. Ghostty is named in three catalogued rowsYapper's source comments, SpeakPro's README and the OSC 52 reference page. An earlier draft of this appendix said "exactly one", which was wrong. None of the three is a test of Ghostty AX-selection support: two describe the clipboard path and one describes an escape sequence.
  5. Cloud retention and training terms were not established for any cloud-API reader. S.5 states only that text or images are transmitted, not what happens afterwards.
  6. Apple's Speak Selection has conflicting Electron/terminal values in the catalogue (partial and unknown, on two of the four rows that hold Apple's native routes). Nothing here settles it.
  7. The catalogue's band labels and its layers field disagree in places, which matters to anyone who re-runs the filters above. 57 of the 279 ENGINE-only rows still carry L1-ACQUIRE or L2-TRIGGER in their own layer list, and 2 of the 448 CORE rows lack one of the two. The verification pass covered the CORE band only; the ENGINE-only layer tags were never re-checked [measured, count over FINAL.json]. Every count in this appendix is taken over fit_band, not over layers; a reader who filters by layers instead will get different numbers.
  8. No tool was installed or run. Every claim above is document-read, source-read or field-counted.

Catalogue — Adjacent — brokers, OCR-to-clipboard, voice supply, document-scoped readers, protocols, harnesses

730 entries. Evidence tier: M measured (source read) · V vendor claim · L lead, unverified · D derived.

Acq = acquisition mechanism. Clipboard = does reading a selection clobber your clipboard. Superlatives appearing in these cells sit inside attributed quotations; the catalogue does not rank.

Tool Plat What it is Runtime Status Stars Licence Ev
audiocpp-android (CaptainArni) and Android companion to audio.cpp Studio: photograph a book page, OCR it, and listen with follow-along highlighting, background playback and cloned voice local-only active 0 MIT V
CopiloTTS and/ios Kotlin Multiplatform TTS SDK using either native OS TTS or ONNX Runtime. hybrid ? 29 MIT M
ElevenReader and/legacy ElevenLabs' consumer reading app: converts articles, PDFs and ePubs to streaming audio in 32+ languages with synced text highlighting. cloud-API ? Proprietary, f L
Glyfen (F-Droid) and "Offline OCR for Android. Search your photos by text, entirely on-device" [vendor]. local-only active unknown V
Imgspeaker and Android app that performs OCR on Simplified Chinese images and reads the extracted text aloud. unknown ? 5 see repo L
nabu and Android on-device test bench for TTS and local LLM chat — Kokoro-82M, Supertonic v2/v3 and Soprano 1.1 through ONNX Runtime, plus a book workflow that local-only active 56 GPL-3.0 M
nabu-realtime (richdrummer33 fork of nabu) and Fork of the Android multi-engine TTS/LLM app nabu, adding chunked playback and background processing. local-only dormant 0 GPL-3.0 M
News Reader (livio) (F-Droid) and "Minimalistic yet powerful news reader with text to speech capability" [vendor]. local-only active unknown V
OCR (Subhamtyagi) (F-Droid) and "OCR based on Tesseract 5" [vendor]. local-only active unknown V
Offline Translator (F-Droid) and "On-device translation of text, images and pdf/odt files, with TTS" [vendor]. local-only active unknown V
pdf-reader-aloud and Android PDF reader (v0.2) that extracts text with PdfBox-Android, chunks it by sentence and speaks it with a bundled Piper en_US-amy-medium voice thro local-only dormant 0 none declared M
Poet Assistant (F-Droid) and "Dictionary and TTS tools for editing poems" [vendor]. local-only active unknown V
Shravan and Open-source Android app for visually impaired users providing offline real-time text reading (OCR) and object detection with voice output. local-only ? 6 open source (s L
speakword.koplugin and/lin KOReader plugin that speaks selected words or sentences on an e-reader via Android system TTS or ElevenLabs. hybrid ? 0 AGPL-3.0 L
TextLector (nedmah) and/ios Free offline TTS reader for Android and iOS built with Kotlin Multiplatform, positioned in its README as a Speechify alternative. local-only active 7 Apache-2.0 L
tts-tool (felixvonberlin) and 'A simple GUI for android's Text-To-Speech-Engines', published on Google Play as de.favo.ttst. os-native unknown 2 unknown L
Udderance AAC (F-Droid) and "TTS based AAC" [vendor] — augmentative and alternative communication board. local-only active unknown V
Voice Notify (F-Droid) and "Spoken notifications" [vendor] — speaks incoming Android notifications aloud. local-only active unknown V
Wyoming Android TTS (F-Droid) and "Use your Android's TTS engines in Home Assistant via the Wyoming protocol" [vendor]. local-only active unknown V
dotool X11/Wl/legacy uinput-based input simulator that reads commands on stdin and supports keyboard layouts; named alongside ydotool and kwtype as a KDE-Wayland paste met local-only active unknown L
screenshot-osr-linux X11 Russian-language shell script positioned as an alternative to ABBYY Screenshot Reader: bind a key (e.g. Ctrl+PrtSc), it takes a gnome-screenshot, clea local-only dormant 0 unknown M
ttsclip (connbrack) X11/Wl Bash CLI for Linux that speaks an argument or the clipboard through Amazon Polly, with flags for tempo and for replacing line breaks; the README's own cloud-API dormant 1 none declared M
xmag X11 'Utility to display a magnified snapshot of a portion of an X11 screen' — the X.Org original, hosted only on freedesktop GitLab. local-only unknown 0 MIT/X11 (X.Org V
[xterm OSC 52 selection read (printf '\033]52;s;?\007')](https://unix.stackexchange.com/questions/318673/access-highlighted-text-from-script) X11 Second answer to 'Access highlighted text from script?': normally you cannot, but xterm's Manipulate Selection Data control sequence will reply with t local-only active CC-BY-SA (answ M
ydotool X11/Wl/legacy 'Generic command-line automation tool' that injects input through /dev/uinput, so it works under Wayland where xdotool cannot; requires the ydotoold d local-only active 2321 AGPL-3.0 M
a11y-profile-manager lin GPL-3 tool that 'facilitates the easy enablement of specific settings to improve the accessibility of a desktop environment' — the Ubuntu accessibilit local-only dormant GPL-3 (Launchp V
AbilityMic lin AAC (augmentative and alternative communication) app with communication boards, OBF/OBZ import-export, TTS synthesis and on-device word prediction. hybrid commercial-l Proprietary V
Accerciser lin GNOME's interactive AT-SPI tree explorer - the tool you use to see whether an app actually exposes its text and selection to the accessibility bus. local-only ? BSD-3-Clause L
access-irc lin "Accessible IRC client with GTK3 and screen reader support." [vendor, AUR description] local-only unknown unknown L
accessibility-inspector (KDE) lin KDE tool that inspects an application's accessibility tree - the KDE counterpart to Accerciser / aviewer. local-only active 8 GPL M
Accessible Linux distributions (Vinux, Accessible Coconut, Slint lin Linux distributions preconfigured so Orca, speech-dispatcher, BRLTTY and a working voice are running from first boot, including during installation. local-only ? varies (GPL-fa L
ADRIANE (Knoppix Audio Desktop Reference Implementation And Netw lin Talking Knoppix desktop environment named by a partially-sighted r/linux commenter as their long-time choice ('I have used ADRIENE, as my go-to-distro local-only active GPL (Knoppix) L
Alyssum (icosane) lin/win 'Translate text, speech, books, and documents fully offline with OCR and Whisper.' local-only unknown 0 unknown L
AT-SPI a11y-manager + Mutter/KWin accessibility keyboard API lin The plumbing that restored global screen-reader hotkeys on Wayland: the compositor hands keyboard events only to a privileged accessibility client, ch local-only ? LGPL-2.1 (AT-S M
at-spi-dbus lin 'The AT-SPI D-Bus project aims to define D-Bus interfaces used to provide accessibility information to assistive technologies' — the Launchpad-era des local-only archived unknown V
AT-SPI2 (at-spi2-core) lin/legacy The Linux accessibility bus itself: the D-Bus protocol and registry through which toolkits expose their widget trees and screen readers read them. local-only ? 30 LGPL-2.1 M
atk (stefan11111) lin 'Minimal implementation of Gnome Accessibility Toolkit'. local-only unknown 0 unknown L
atspi (Rust crate, odilia-app) lin A pure-Rust implementation of the AT-SPI protocol, written for Odilia but usable by any Rust program that wants to read the Linux accessibility tree. local-only active 59 Apache-2.0 M
atspi2-rs (wizzwizz4) lin Rust AT-SPI2 bindings whose own description warns 'Don't use this yet.' local-only unknown 0 unknown M
audiobook-converter (Launchpad) lin 'An easy usable application which converts from text formats to mp3 format audio books.' unknown unknown unknown L
Bifrost (Stormux) lin 'A vibe coded, fully screen reader accessible fediverse client.' unknown unknown 0 unknown L
Bookstorm lin 'Accessible book reader' from the Stormux Gitea instance. unknown unknown 0 unknown L
Cerva lin Python/GtkBuilder front-end to Festival inspired by the program 'Fala', with Unicode support and save-speech-to-file. local-only dormant GPL-3 (Launchp V
cicero lin Debian accessibility package at version 0.7.2-4, maintained under the a11y-team group on Salsa; a small self-voicing text tool for blind users. local-only dormant unknown L
Clipboard (Slackadays/Clipboard) lin/mac/win/legacy A cross-platform clipboard manager operated entirely from the command line, described by its author as a smart clipboard manager [vendor]. local-only active 5 GPL-3.0 L
clipboard-watcher (dethos) lin Tool that reports which applications are reading the clipboard - relevant as a way to observe whether a selection reader is polling. local-only dormant 50 MIT M
clipocr (jonnyprouty) lin 'A simple shell script for performing ocr on image displayed on a screen, but not as selectable text.' local-only unknown 0 unknown L
crengine-ng / CoolReader-NG lin/win/and 'crengine-ng is cross-platform library designed to implement text viewers and e-book readers' — the maintained continuation of the CoolReader engine, local-only unknown 13 unknown V
DAISY Player lin 'Daisy Player for Blinds' — ncurses TUI player for DAISY 2 and 3 talking-book files, on SourceForge and packaged by Debian's a11y-team. local-only unknown unknown (no SF V
Debian a11y-team roster (salsa.debian.org/a11y-team) lin A single Salsa group holding packaging for ~70 Linux accessibility components, including several with no GitHub presence: cicero, eflite, emacspeak-ss local-only active per-package M
Desktop custom-shortcut pipe pitfall - wrap in bash -c '...' lin Accepted answer: GNOME/KDE custom-shortcut commands are not run through a shell, so a pipeline like xsel --clipboard | festival --tts silently does local-only active CC-BY-SA (answ M
docTR lin/win/mac Deep-learning document text recognition library (detection + recognition), TensorFlow/PyTorch. local-only ? 6 Apache-2.0 M
dpScreenOCR lin/win Cross-platform Tesseract screen OCR with a configurable global hotkey; besides clipboard and history it has a 'Run executable' action that passes the local-only ? 295 Zlib M
e2spd (mglambda) lin Low-latency bridge between Emacspeak and the Linux Speech Dispatcher architecture. local-only ? 1 GPL-2.0 M
EasyOCR lin/win/mac Ready-to-use OCR for 80+ languages; one of the selectable backends in Translumo and wolfmanstout/screen-ocr. local-only ? 30 Apache-2.0 M
eBook-speaker lin Jos Lemmens' tool to 'Read aloud eBooks, text documents or scanned documents using a software speech-synthesizer'; the same author's DAISY Player is p local-only unknown LGPL-2.1 / LGP V
edbrowse lin Command-line editor/browser designed for blind users (Debian 3.8.12-1), packaged under the Salsa a11y-team. local-only active GPL (not re-ve V
Elevado lin GNOME 'Accessibility inspector' (10 stars on the feaneron copy, with a Rust variant at qwery/elevado-rust) — a modern successor to Accerciser for brow local-only unknown 10 unknown V
emacs-nano-tts-minor-mode lin Emacs minor mode described as an 'Accessibility tool that reads marked text', from the clipboard-speaker author. local-only dormant 0 unknown V
Emacspeak (tvraman/emacspeak) lin/mac/legacy The Complete Audio Desktop: a full speech-output subsystem for Emacs that speaks everything Emacs displays, with audio formatting and voice-lock. local-only ? 282 none declared M
Enamy TTS (enamy-tts, enamy-tts-rs, enamy-api, enamy-plaintalk-a lin C++/Slint on-screen caption overlay (a Rust version is marked DEPRECATED) whose main.cpp posts typed text to a remote EnAmy /api/EnAmy/CreateVoice end cloud-API dormant 0 LICENSE file p M
espeaker (taylordotfish) lin 'IRC text-to-speech using espeak'. local-only unknown 0 unknown L
espeakup lin A lightweight connector daemon that lets the in-kernel Speakup console screen reader drive eSpeak/eSpeak NG as its software synthesizer. local-only ? 1 GPL-3.0 M
espeakup-rs (herman_rimm) lin Rust reimplementation of espeakup (the Speakup-to-eSpeak connector), with an accompanying PKGBUILD repo. local-only unknown 0 unknown L
explique.nvim (mickaelfree) lin/mac/win Neovim plugin that explains the selected text aloud using an AI model plus local TTS. hybrid active 0 none declared V
fenrir (ky1e GitLab copy) lin GitLab copy of the Fenrir TTY screen reader alongside the chrys87 original — noted only as a forge-location fact about an already-catalogued project. local-only unknown 0 unknown D
festcat lin 'Festcat aims to provide high quality Catalan voices to Festival Speech System' — voice-data supply on Launchpad. local-only unknown unknown V
FreeSpeak-AAC (Linux and Android) lin/and 'FreeSpeak-AAC is intended to be a FREE and Open Source alternative to the existing paid AAC software', with separate Linux and Android repos. unknown unknown 0 unknown L
Frog lin GNOME app that extracts text from any image, screen area, video frame or QR code; no speech output found in the README. local-only ? 897 MIT M
Frog lin "Extract text from images" [vendor] — screen-region and image OCR that puts the result on the clipboard. local-only active MIT V
gImageReader lin "A graphical (gtk) frontend to tesseract-ocr" [vendor]. local-only active GPL-3.0+ V
Glate lin "Translate text and generate speech audio on Linux desktop" [vendor] — translation front-end with a speech-output side. cloud-API active proprietary (L V
gnome-braille (GNOME Archive) lin Archived GNOME braille library, sibling of gnome-speech. local-only archived 0 unknown L
gnome-speech (GNOME Archive) lin Archived GNOME 2 speech abstraction: 'to provide a simple general API for producing text-to-speech output', version 0.4.25, the layer Gnopernicus and local-only archived 0 LGPL (GNOME-er M
gspeech (GNOME Archive) lin Archived 'gtk module to provide speech output for gtk programs' — you load it into any GTK program and it speaks; ships a simple command server and a local-only archived 0 unknown M
gtk-openmary lin 'A front-end for the MARY Java TTS (text-to-speech) engine', modelled on eSpeak's GUI. local-only dormant unknown V
ha-rhvoice lin Home Assistant integration exposing RHVoice as a local TTS provider. local-only ? 54 MIT M
HiFi-GAN lin The reference neural vocoder used as the final stage in a large share of TTS systems. local-only ? 2 MIT M
hyacinthia (icosane) lin/win 'Simple graphical front-end for F5-TTS'. local-only unknown 0 unknown L
hypra-epub-reader lin Browser-based EPUB reader written for Hachette/Hatier schoolbooks because publisher apps lack Linux support; README states it aims for 'at least basic local-only active 0 unknown M
install-spd-piper (alexkuz gist) lin One-line shell installer that registers Piper as a Speech Dispatcher module and auto-downloads voices, so any Linux screen reader can use it. local-only ? gist, unstated M
irssi-autospeak (jticket, Stormux Gitea) lin 'Autospeak For Irssi' — speaks IRC activity from inside the irssi terminal client. local-only unknown 0 unknown L
iTTS.py / iTTS (KOLANICH) lin Jupyter kernel that speaks the text of a cell via speech-dispatcher; a GitLab copy exists at gitlab.com/KOLANICH/iTTS. local-only dormant 0 unknown (no RE V
Jormungandr lin GitLab repository holding a design document for a client/server Linux screen reader - a README enumerating the message verbs each component (Speech, I unknown dormant 0 A LICENSE file L
Jovie (KDE Text-to-Speech daemon) lin KDE's system-tray text-to-speech daemon and subsystem (successor to KTTSD), intended as the standard speech-output layer for KDE applications; effecti local-only discontinued 9 GPL (KDE) M
Kate "Speak Text" via Qt Speech lin Accepted 2025-2026 answer to a writer who wanted chapter-at-a-time readback: paste into Kate and use its Qt Speech text-to-speech, same speechd plugin local-only active LGPL/GPL (KDE) M
KDE Connect lin/win/mac/and/legacy 'Multi-platform app that allows your devices to communicate' [vendor] — includes a clipboard-sync plugin between paired devices on the same network. local-only active 3 null on the Gi L
kde-notify-text2speech (boospy) lin German-language KDE Plasma sound theme that speaks system/program notifications instead of playing tones. local-only unknown 0 unknown L
kde-tts-input-method (davidedmundson) lin KDE repository named kde-tts-input-method with no description and no README — existence confirmed, purpose not. unknown dormant 0 unknown L
keyd (rvaiya) lin Linux key-remapping daemon operating at the evdev layer, so it applies in X11, Wayland and the console alike; can execute commands on a chord. local-only active 5827 MIT M
KMag (KDE screen magnifier) lin KDE's 'Screen magnifier', living in the invent.kde.org accessibility group with many personal forks. local-only unknown 4 unknown V
KMouth (KDE) lin KDE's type-and-say front end for speech synthesizers — a speech-generating utility for people who cannot speak, still actively maintained. local-only active 11 GPL (KDE) M
kokoro-debian-tts / piper-speechd / sd-edge-tts / OneNoted speak lin Speech Dispatcher modules that plug modern neural engines (Piper, Kokoro, Edge, Qwen3-TTS) into the Linux speech stack. hybrid dormant 3 AGPL-3.0 / GPL M
lemonade lin/mac/win 'Lemonade is a remote utility tool. (copy, paste and open browser) over TCP.' [vendor] — a daemon on the desktop plus a CLI on the remote box, so a he local-only dormant 727 MIT M
libbraille (Savannah) lin Savannah-hosted 'Braille library' for driving refreshable braille displays. local-only dormant unknown V
libNotify-Speech-Dispatcher lin 'Speaks messages from libNotify, caught by DBus, through speech-dispatcher' — desktop notifications read aloud. local-only dormant GPL-3 (Launchp V
libqaccessibilityclient (KDE) lin KDE's Qt-flavoured AT-SPI client helper library - the Qt-side counterpart to pyatspi for programs that need to read the Linux accessibility tree. local-only ? 7 LGPL (KDE conv M
libttstd and speakcid (Savannah) lin Two Savannah non-GNU projects surfaced by a 'tts' software search: libttstd (a TTS daemon library, by name) and speakcid (a caller-ID speaker, by name local-only unknown unknown L
Lios (Linux Intelligent OCR Solution) lin OCR suite for Tesseract and Cuneiform aimed at visually impaired users; scans or imports images and can read the recognised text aloud. local-only dormant L
Luwrain lin/win A Java 'accessible environment' rather than a screen reader: instead of reading a graphical desktop, it replaces the desktop with an entirely non-visu local-only ? 24 GPL-3.0 M
magnify (amiloradovsky) and gnome-swift-screen-magnifier (Amonit lin Two GitLab-only screen magnifiers: 'Tiny screen magnifier for X11' and a GNOME Shell magnifier. local-only unknown 0 unknown L
Manga_Gaze lin/win 'A Python app to make manga accessible: Turn manga into words' — OCR of manga pages plus translation. unknown unknown 0 unknown L
Max TTS lin GPL-3 'text output application' providing enlarged on-screen text output plus speech output, using MARY TTS as its backend with the stated intent that local-only dormant GPL-3.0 (Launc V
mono-a11y lin 'Enables Winforms and Silverlight applications to be fully accessible on Linux, and allows Assistive Technologies' to reach them — the Mono AT-SPI bri local-only dormant unknown V
Neural-Voices-Speech-Dispatcher lin Use Microsoft Azure voices with your Linux screen reader. cloud-API ? 0 none declared M
Newton (Wayland-native accessibility architecture) lin A proposed replacement for AT-SPI on modern free desktops, by AccessKit's author: push the accessibility tree through Wayland/compositor channels inst local-only ? , open source (A L
NoComprendo lin Qt6 Linux tool by Bruno Anselme that is a voice-command, dictation and text-to-speech utility: Vosk speech recognition, user-recorded commands, automa local-only dormant 0 unknown M
NormCap lin "Capture text from any screen area" [vendor] — OCR screen-capture tool. local-only active 2,676 GPL-3.0-or-lat V
nvda2speechd lin/win Bridge exposing NVDA-style speech output to speech-dispatcher, packaged on Salsa (also surfaced by GitLab.com search). local-only unknown unknown L
OCR Grab lin Lightweight C/GTK3 + Tesseract X11 utility: interactively select a screen region (with an adjustment mode), OCR it, and copy to the clipboard with an local-only ? not verified V
OCRFeeder lin "The complete OCR suite" [vendor] — document OCR with layout analysis. local-only active GPL-3.0+ V
ocrit2tts lin 'Script to screenshot + OCR webpages that use arrow keys to change pages. Useful for the following process: Screenshot -> OCR -> Text -> Speech'. unknown dormant 0 unknown V
ocrizer (Hypra) lin GPL-3 OCR tool ('ocrize') from Hypra, the French company that packages an accessible MATE-based Debian for blind users; developed on salsa.debian.org, local-only active 0 GPL-3.0-or-lat M
OCRmyPDF lin/mac/win Adds an OCR text layer to scanned PDFs so they become searchable and selectable. local-only ? 34 MPL-2.0 M
Okular "Speak Text" on a PDF selection (+ the qtspeech-speechd-p lin Okular reads a right-click text selection aloud through Qt Speech -> Speech Dispatcher, but does nothing until qtspeech5-speechd-plugin (Qt5) or qt6-s local-only active GPL-2.0-or-lat M
Open SAPI (uSpeak) lin Launchpad project aiming 'to bring the Microsoft Speech Application Programming Interface into use under open source projects', first goal being SAPI local-only dormant OSL-3.0 (Launc V
Orca lin The GNOME screen reader for Linux; it reads the AT-SPI accessibility tree and speaks through speech-dispatcher, and has no OCR of its own — OCRDesktop local-only ? LGPL M
Orca (Codeberg copy, WaylandNewton/orca) lin A Codeberg-hosted copy of GNOME Orca carrying the upstream description ('Screen reader for graphical applications that use the atspi protocol, via spe local-only unknown 0 LGPL (upstream D
orca-controller / Orca-Controller-Client / Remora lin Go and Python clients that drive the Orca screen reader over D-Bus or named pipes, plus Remora, a companion app for Orca. local-only ? 1 AGPL-3.0 M
orca-intro-guide lin New-user guide for the Orca screen reader on Linux. local-only ? 13 none declared M
orca-remote lin Bidirectional bridge letting Orca on Linux control, and be controlled by, NVDA Remote-compatible peers over the NVDA Remote v2 protocol — speech, brai hybrid ? 4 LGPL-2.1 M
orcatutor / orca-teacher lin Two Launchpad projects teaching Orca use: 'A basic application to guide a user through the user interface using the orca screen reader' and 'An educat local-only unknown unknown L
osc (theimpostor/osc) lin/mac/win 'Access the system clipboard from anywhere using the ANSI OSC52 sequence' [vendor] — a single binary that reads stdin and emits the OSC 52 write seque local-only active 145 MIT M
PaddleOCR lin/win/mac Large OCR toolkit for documents and images, 100+ languages, oriented toward turning PDFs/images into structured data. local-only ? 87 Apache-2.0 M
ParallelWaveGAN lin Parallel WaveGAN / MelGAN / HiFi-GAN vocoder implementations with recipes. local-only ? 1 MIT M
Pied lin Installs and configures the Piper neural TTS engine to work with Speech Dispatcher, then downloads and manages voices. local-only active GPL-3.0+ V
piper-tts-firefox-reader-mode lin Guide to adding Piper neural voices to Firefox Reader Mode via Speech Dispatcher on Ubuntu 24.04. local-only ? 0 none declared M
piper-tts.el (Sshigeru) lin/mac Emacs package described as 'Run TTS on Emacs regions with piper-tts'. local-only unknown 0 unknown L
PipeWire network audio (module-rtp-sink / module-rtp-source, pip lin PipeWire's own module reference: 'The rtp-sink module creates a PipeWire sink that sends audio RTP packets' with source.ip/destination.ip options and local-only active MIT (PipeWire) V
polyglot-for-orca lin Orca add-on: automatic language switching, emoji reading and Unicode character pronunciation. local-only ? 1 none declared M
PulseAudio network audio (module-native-protocol-tcp, module-tun lin/legacy freedesktop's PulseAudio network documentation: set PULSE_SERVER to a remote host, or load module-tunnel-sink, and audio produced on one machine plays local-only active LGPL-2.1+ (Pul M
pyatspi2 (GNOME) lin Python client bindings for AT-SPI2; the Text interface is where GetTextSelection / get_text_at_offset live, which is the Linux non-destructive selecti local-only active 25 LGPL-2.1 M
pyatspitest (Hypra) lin 'Various tools to access and debug AT-SPI2 (through pyatspi)'. local-only unknown 0 unknown V
qml-speechd lin 'QML API bindings for the speech-dispatcher text to speech server' — lets Qt/QML apps (including mobile shells) speak through speechd. local-only dormant LGPL-3 (Launch V
qtatspi (KDE) lin Qt accessibility bridge plugin that exported Qt widgets onto AT-SPI before the bridge moved into Qt itself. local-only archived 7 LGPL M
RapidOCR lin/win/mac ONNX Runtime / OpenVINO / MNN packaging of PaddleOCR models across many languages and bindings — the usual choice when an app wants offline OCR withou local-only ? 7 Apache-2.0 M
readaloud (SourceForge) lin 'Reading program for plain text books. Readaloud is an aide for learning reading also. It helps by displaying text in large fonts and speaking a word local-only unknown GPL-2.0 (SF ca V
repy lin/mac/win Rust terminal EPUB reader inspired by epy, 10 stars: it parses a book file and reads it inside its own TUI, toggling TTS with !, chunking sentence b hybrid active 10 none declared M
retro-tts-pack lin Retro speech synthesizers packaged for Speech Dispatcher and Orca on Linux. local-only ? 2 none declared M
retro-tts-pack / Apple-Eloquence-ELF / ViaVoice-SPD lin Projects that bring classic screen-reader voices (Eloquence, ViaVoice, retro synths) to Linux Speech Dispatcher and Orca. local-only ? 16 other / GPL-2. M
RHVoice-English fixes (Stormux) lin 'English fixes for RHVoice' — a voice-data patch set living only on the Stormux Gitea. local-only unknown 0 unknown L
Roc Toolkit lin/mac/and 'Real-time audio streaming over the network' [vendor] — a toolkit and set of tools for sending audio between machines with loss recovery and latency c local-only active 1 MPL-2.0 M
SAK (Speecher Assistive Kit) lin/win/mac Pascal library whose description says 'With sak, your application becomes assistive directly, without changing anything in your code' — bundles eSpeak local-only dormant 0 split: /sak pe M
screengrab-ocr (bhvsh) and screenshot-ocr-linux (emonbhuiyan) lin Two further GitLab-only screenshot-OCR utilities: 'A Python application that captures screenshots and performs optical character recognition (OCR) on local-only unknown 0 unknown L
sd-piper lin Speech Dispatcher driver implementing Piper neural voices for the Orca screen reader. local-only ? 1 GPL-3.0 M
seed-tts-eval lin ByteDance's TTS evaluation benchmark and test sets. local-only ? 1 none declared M
selenium-webdriver-at-spi (KDE) lin 'Selenium/Appium WebDriver implementation based on AT-SPI Accessibility' — drives Linux desktop apps through the same accessibility tree a selection r local-only unknown 0 unknown V
selenium-webdriver-at-spi (KDE) lin A WebDriver implementation backed by AT-SPI, used to drive and assert on KDE apps through the accessibility tree. local-only active 7 GPL M
sight-free-talon lin/mac/win Bridges the Talon voice-control engine to screen readers, TTS and braille, so voice commands can trigger reading actions. local-only ? 24 GPL-3.0 M
Silero-TTS-Service lin/legacy Silero TTS backend service for Home Assistant / Rhasspy. local-only ? 60 MIT M
simple-orca-plugin-system (chrys87) lin 'a simple but powerfull pluginsystem for the orca screenreader', from the Fenrir/Jormungandr author. local-only unknown 0 unknown L
Snapcast lin/mac/and/legacy 'Synchronous multiroom audio player' [vendor] — a server/client pair that distributes an audio stream to multiple networked clients in sync. local-only active 7 GPL-3.0 M
sonarmacs lin 'Speech-dispatcher enabled Emacs' — an Emacs speech layer wired to speech-dispatcher rather than to Emacspeak's own servers. local-only unknown unknown V
sonic / libsonic lin/and Library and CLI to speed up or slow down speech without pitch distortion — the playback-rate layer behind many screen readers; also on Launchpad as 's local-only unknown Apache-2.0 (up V
speakerd lin Python reimplementation of Speech Dispatcher whose README states 'The purpose is not to replace the original program but to use it for testing or POC' local-only dormant 0 GPL-3.0 (READM M
Speech Dispatcher (speechd) lin/legacy The Linux speech-output middleware layer: a common device-independent API that multiplexes many client applications onto pluggable synthesis modules. local-only ? GPL M
Speech Dispatcher (speechd) lin/legacy The Linux speech broker: one stable protocol (SSIP) in front of many synthesis engines, with spd-say as a general text-to-speech CLI. local-only ? 329 GPL-2.0 (daemo M
Speech Dispatcher upstream on Savannah (speechd) lin The Savannah group registration for speechd — a forge-location fact about an already-catalogued project: its canonical home has historically been free local-only active GPL/LGPL M
Speech Viewer / speechd-up / Emacspeak bridges lin Debug and integration utilities around Speech Dispatcher — a window that displays what would be spoken, a Speakup console-reader bridge, and Emacs spe local-only ? 0 BSD-2-Clause / L
speech-dispatcher-rs / speech-dispatcher-sys (ndarilek and forks lin Rust bindings to speech-dispatcher, with GitLab copies under ndarilek, TTWNO, mcb2003, Caellian, cpu and MallocVoidstar. local-only unknown 0 unknown V
speechd-java lin The official Java client library for Speech Dispatcher, developed separately from the main speechd tree. local-only ? 3 not reported b M
speechd-up lin The other Speakup connector: bridges the Speakup kernel screen reader to Speech Dispatcher, so the console reader can use any speechd output module. local-only ? GPL-2.0-or-lat L
Spiel / libspiel lin A newer GNOME-adjacent speech framework: a Web-Speech-API-shaped client library over D-Bus speech providers, integrated with GStreamer - positioned as local-only ? 53 LGPL-2.1 M
SRAL (Screen Reader Abstraction Library) lin Library that abstracts over screen readers and speech engines so an application can speak through whatever the user is running. local-only archived 21 MIT V
ssip-client (Rust) — TTWNO and lp-accessibility copies lin 'Speech Dispatcher SSIP client library in rust' — the client library under the Odilia/Rust Linux-a11y line, present on GitLab under both TTWNO (Tait H local-only unknown 0 unknown V
Stormux lin Self-hosted-Gitea Arch-based accessible Linux distribution described as 'The continuation of the F123Light project'; the same forge hosts ~50 blind-ac local-only active 0 unknown V
Subtitle Reader (Hackaday project) lin Hobby project that reads TV subtitles off the screen by OCR and speaks them aloud, for children and visually impaired viewers. local-only ? not verified L
Surya lin/win/mac OCR with layout analysis, reading order and table recognition in 90+ languages. local-only ? 21 Apache-2.0 M
tacotron (keithito) lin TensorFlow Tacotron with pretrained models; source of the widely reused text-normalization code. local-only ? 3 MIT M
Tacotron 2 (NVIDIA) lin PyTorch Tacotron 2 with faster-than-realtime inference. local-only ? 5 BSD-3-Clause M
Tacotron-2 (Rayhane) lin TensorFlow Tacotron-2 implementation. local-only ? 2 MIT M
Talking DOSBox lin "A talking dosbox with screen reader." [vendor, AUR description] — DOSBox fork that speaks its emulated screen. local-only dormant unknown L
Tesseract OCR lin/win/mac A high-adoption open-source OCR engine; hand it an image, it returns text. Used by dpScreenOCR, NormCap, Capture2Text, TextSnatcher, Frog, gImageReade local-only ? 76 Apache-2.0 M
Text Grabber (GNOME Shell extension) lin OCR grab extension; listing carries a maintainer-wanted notice. [vendor] local-only unknown unknown V
text-to-speech-ubuntu lin Minimal Ubuntu selection reader: select text with the mouse, press a key, and xsel piped to espeak reads it — no OCR. local-only ? 29 none declared M
TextSnatcher lin "Snatch Text with just a Drag" [vendor] — drag a region, get its text. local-only active GPL-3.0-or-lat V
tolk-spd-proxy lin A drop-in tolk.dll replacement for Wine prefixes that forwards screen-reader speech calls (mostly from audio games) to speech-dispatcher on the Linux local-only unknown unknown V
tolk2spd lin Bridge exposing the Windows Tolk screen-reader API on top of Linux Speech Dispatcher. local-only ? 0 0BSD M
triggerhappy (wertarbyte) lin Lightweight hotkey daemon that reads evdev directly, so it works with no X server at all. Pre-dates Wayland but is the same evdev-level answer as hkd. local-only dormant 296 GPL-2.0 M
vimspeak lin/mac/win Vim plugin connecting vim to espeak: it overrides s and S so that s{motion} reads the implicated text aloud (e.g. s} reads the paragraph). local-only unknown unknown V
WaveGlow lin Flow-based vocoder from NVIDIA. local-only ? 2 BSD-3-Clause M
wavenet_vocoder lin WaveNet vocoder in PyTorch. local-only ? 2 NOASSERTION M
waynotify lin An accessible notification daemon for Wayland that routes desktop notifications through AT-SPI so a screen reader announces them. local-only ? 3 MIT M
wl-clipboard / wl-clipboard-rs lin The Wayland copy/paste utilities — wl-paste --primary is the Wayland equivalent of xsel/xclip and is the acquisition primitive every Wayland sel local-only active 2397 GPL-3.0 M
wlr-data-control / ext-data-control Wayland protocols lin The privileged Wayland protocol extensions that let a non-focused client read the clipboard and PRIMARY selection at all; ext-data-control is the upst local-only active MIT L
xctts lin X-Chat script using eSpeak to give each IRC user a distinct voice by varying espeak parameters, so users can be told apart while doing something else. local-only dormant GPL-3 (Launchp V
xdg-desktop-portal (frontend) lin The D-Bus service that front-ends every portal interface (Screenshot, ScreenCast, GlobalShortcuts, RemoteDesktop, InputCapture) and routes each call t os-native active 819 LGPL-2.1 M
xdg-desktop-portal Screenshot / ScreenCast interfaces lin The sandboxed D-Bus route by which a Wayland application may capture the screen at all — the OCR-reader equivalent of the clipboard problem, and the r local-only ? LGPL-2.1 L
ABBYY FineReader win/mac Long-established commercial OCR and PDF conversion suite; converts scans and images into editable/searchable text with high accuracy. local-only ? proprietary, p V
access-bridge-explorer (google) win Explorer for the accessibility tree of Java Access Bridge-enabled applications - the separate accessibility stack Java desktop apps use on Windows. local-only dormant 131 Apache-2.0 M
Accessibility Insights for Windows win Microsoft's UIA tree inspector and automated-check tool for Windows apps - the Windows counterpart to Accerciser. local-only ? 536 MIT (repo repo M
AccessibleRunner / CommandRunner win Runs console commands and presents their output in a screen-reader-friendly window; a Python version and a C# version by the same author. local-only ? 0 MIT M
AccessKit win/mac/lin/and Cross-platform accessibility infrastructure for UI toolkits: one tree model that AccessKit projects onto Windows UIA, macOS AX, and Linux AT-SPI. local-only active 1 BSD-3-Clause ( M
accesskit-python win/mac/lin Python bindings for AccessKit. local-only active 6 BSD-3-Clause M
ADELE-TEAM win French free reading/writing assistant for DYS profiles: vocalised reading with follow-along, rapid navigation, highlighter-style marking, passage extr local-only unknown free V
adispeak / adispeak-2 win 'Solution to make AdiIRC interface with screen readers' — two Codeberg repos from the same author. local-only unknown 0 unknown L
Adobe Acrobat Reader — Read Out Loud (built-in) win/mac Acrobat Reader's View > Read Out Loud reads a clicked paragraph or from the cursor to end of document, using the OS voices. os-native ? Proprietary (A L
AI Text Tools (Netropolitan) win 'AI-powered text transformation for Windows. Select text anywhere, press a hotkey, and transform it using OpenAI, Anthropic Claude, Google Gemini, or hybrid active 3 not read V
AOK application suite — MyEdit Neo / MyWord7 / MyBook Neo / MyNe win The application layer 高知システム開発 ships around PC-Talker: a voice text editor (MyEdit Neo), voice word processor (MyWord7), barrier-free reading app (MyB local-only commercial-l proprietary (N M
arboard (1Password) win/mac/lin Rust clipboard crate maintained by 1Password; the crate many Tauri/Rust readers use to read text after a simulated copy. local-only active 959 Apache-2.0 / M M
ARIA-AT (Assistive Technology ARIA Experience Assessment) win/mac W3C community-group test suite measuring how JAWS, NVDA and VoiceOver actually behave on ARIA patterns - the closest thing to a neutral capability com local-only ? 181 W3C document a M
AT Driver (W3C aria-at-automation) win/mac A draft protocol for introspecting and remote-controlling assistive technology over a bidirectional channel - a WebDriver-shaped standard for screen r local-only ? W3C / communit M
AT Guys win US assistive-tech reseller that was the retail front for the Code Factory Eloquence + Vocalizer NVDA bundle. unknown unknown n/a (reseller) L
AutoHotkey non-clipboard selection capture via `ControlGet, Sele win Stack Overflow answer showing the only Windows route that avoids the clipboard entirely - it works only when the focused control matches Edit\d+, with local-only active CC-BY-SA (answ M
aviewer (ThePacielloGroup) win Inspector that dumps what MSAA, IAccessible2, UI Automation, ARIA and the HTML DOM each expose for a given Windows control - the tool that answers 'do local-only dormant 163 none M
Blio (KNFB Reading Technology / Ray Kurzweil, with Baker & Taylo win/and/ios Kurzweil's colour, layout-preserving ebook platform launched in 2010 with text-to-speech using downloadable 'Samantha' and 'Tom' voices; its distribut hybrid discontinued proprietary, f M
Brazilian Portuguese GitHub reader cluster: vinimostaco/incipit win/mac/lin/web Small Portuguese-described projects: a Tauri+Python desktop app that reads PDFs, EPUBs and text aloud (incipit), a text reader with voice selection, a local-only unknown 0 mixed L
calibre E-book viewer Read aloud (built-in) win/mac/lin/legacy calibre's bundled e-book viewer reads the open book aloud on Ctrl+S, highlighting the current word or sentence, using the Piper neural engine locally local-only ? 22 GPL-3.0 (calib M
CaptiOCR win Real-time screen text extraction: pick a rectangular region, and it repeatedly screenshots and Tesseract-OCRs it, stitching the text into a continuous local-only ? 19 MIT M
Chatterb0x win Small Python tray utility that fronts Chatterbox TTS. local-only ? 3 MIT L
chrome-extension-speak-selection (belcrod5) / obsidian--speak-se win/mac/lin Three further single-surface 'speak selection' implementations — a Chrome extension, an Obsidian plugin, and a JS selection-TTS project. unknown ? 0 unspecified L
Clavier+ (gryder.org) win French global-hotkey utility: launch a program or type text from a key combination, described as a single EXE under 200 KB with no registry storage an local-only active open source M
clipboard (CrossCopy) win/mac/lin Clipboard API with text and image read/write/watch for macOS, Windows and Linux. local-only active 25 MIT M
Clipboard TTS (clipboardtts.com) win Commercial clipboard-to-speech desktop product; I reached only the download page, so capability claims beyond 'reads the clipboard' are unverified. unknown unknown proprietary L
clipboard-rs (ChurchTao) win/mac/lin Cross-platform Rust clipboard API covering text, image, rich text, HTML, files and change monitoring. local-only active 176 Apache-2.0 M
clipboard_listener (orderweaver) win/mac/lin Cross-platform Rust crate for listening to clipboard events. local-only dormant 2 none M
clipboard_watcher (leanflutter) win/mac/lin Flutter plugin that raises an event when the system clipboard changes, on desktop targets. local-only dormant 60 MIT M
clipboardEnhancement (NVDA add-on) win NVDA add-on extending clipboard handling and announcement, listed in the NVDA add-ons directory alongside Clipspeak and Autoclip. local-only ? unknown L
ClipboardTTS (Daichi09) win Small Windows program that reads the current clipboard text through Microsoft SAPI; the README's stated use case is visual-novel text hookers that pus os-native dormant 4 Unlicense M
ClipboardWatcher (DissectMalware) win Windows utility that monitors textual data pasted into the clipboard. local-only dormant 29 none M
Clipspeak (NVDA add-on) win NVDA add-on that announces clipboard operations — cut, copy, paste, undo, redo — rather than reading the clipboard's contents. local-only ? 7 check repo M
copypasta (alacritty) win/mac/lin Cross-platform Rust system-clipboard crate maintained alongside Alacritty; exposes X11 PRIMARY as a distinct clipboard. local-only dormant 351 MIT / Apache-2 M
Descolada/UIA-v2 win 'UIAutomation library for AHK v2, based on thqby's UIA library' - the route by which an AutoHotkey selection reader can read text from a UIA TextPatte local-only active 460 MIT M
Deskflow win/mac/lin 'Share a single keyboard and mouse between multiple computers.' [vendor] — the maintained successor line to Synergy/Barrier; clipboard sharing between local-only active 28 GPL-2.0 L
DirectShell win Posted to HN as "a new software primitive that replaces AI screenshot agents"; repo description is only "Because i could not Ressist". unknown ? 21 NOASSERTION L
document-reader-nvda-addon win NVDA add-on for reading multiple document formats accessibly. local-only ? 3 GPL-2.0 M
Dolphin EasyReader (winget) win Accessible-library reader from Dolphin Computer Access, packaged for winget. unknown unknown proprietary L
Dolphin GuideConnect win Windows product for people with sight loss that replaces the desktop with its own spoken, magnified menu environment for email, web, documents, scanni local-only commercial-l Commercial; so V
DOSVOX (Instituto Tércio Pacitti / NCE, UFRJ) win Brazilian speech-based computing environment for blind users from UFRJ, running on Windows: a shell plus 80+ of its own speech-driven programs (editor local-only unknown free distribut M
DSpeech win Portable freeware Windows text-to-speech application (v1.74) that can capture and speak clipboard content, mix and juxtapose several SAPI voices, chan os-native unknown Freeware (prop M
Dual Voice for NVDA win 'Dual Voice for NVDA is an open source speech driver for NVDA screen reader. This lets you use two separate voices for reading non-Latin and Latin lan local-only unknown unknown L
Dys-Vocal (Dyslogiciel) win French compensation software for dyslexia and dyspraxia: text formatting (coloured syllables, dyslexia fonts) plus modules for speech-synthesis readin local-only commercial-l proprietary M
Easy Screen OCR win/mac Commercial screenshot-OCR utility that grabs a snapshot of the screen and extracts the text for editing. cloud-API ? proprietary, f V
EdSharp win A self-voicing text editor distributed through the blind-user software scene, catalogued on Blind Help Project. local-only unknown unknown L
enigo (enigo-rs) win/mac/lin Cross-platform input simulation in Rust; the crate behind the simulated Ctrl+C in several Rust selection readers. local-only active 1761 MIT M
eSearch win/mac/lin Cross-platform screenshot tool with offline OCR, screen translation, live-text and search — Windows, macOS and Linux. local-only ? 6921 GPL-3.0 M
Firefox Reader View — Narrate (built-in) win/mac/legacy Firefox's Reader View has carried a Narrate (listen) button since 2016 that reads the distilled article using the platform speech synthesis. os-native ? MPL-2.0 (Firef V
FlaUI win .NET wrapper over Windows UIA2/UIA3 for UI automation, including text-pattern access to selections. local-only ? 3 MIT M
Fluent Search — Screen Search with OCR win Windows launcher whose screen-search feature OCRs on-screen text so you can act on text that isn't selectable. local-only ? proprietary (f V
global-hotkey (tauri-apps) win/mac/lin Rust crate providing global hotkeys for desktop apps on Windows, macOS and Linux; the crate Tauri-based readers use. Its Linux backend is X11-based, w local-only active 259 MIT / Apache-2 M
Hebrew NVDA packaging — תשר אופטיקה געש (TSR Gaash) win Israeli AT supplier that ships NVDA with its own selected add-ons and bundled Hebrew and English speech engines, stating the add-ons improve NVDA's be local-only commercial-l GPL (NVDA) plu M
huaiyinfeilong/xyOCR · yizilian-iren/HoverDict · zjmxczhy/foo_sp win/mac Three Chinese-described accessories: an OCR plug-in for NVDA (xyOCR), a macOS hover-to-look-up-and-speak tool (HoverDict), and a foobar2000 plug-in th local-only unknown 9 unknown L
IBM Home Page Reader win Self-voicing web browser grown out of Chieko Asakawa's work at IBM Japan - it began as a Netscape extension and became an Internet Explorer plug-in, r local-only discontinued proprietary co M
ICE Book Reader Professional win Russian e-book reader whose feature list includes read-aloud through SAPI 4.0 and SAPI 5.1, export of a book to MP3/WAV, splitting a book into several local-only dormant freeware (Russ M
Input Leap win/mac/lin 'Open-source KVM software' [vendor] — the Barrier fork that preceded the Deskflow line; shares keyboard, mouse and clipboard across machines. local-only archived 8 NOASSERTION on M
InputBot (obv-mikhail) win/legacy Rust library for global hotkeys and input simulation. local-only active 462 MIT M
Interception (oblitum) win Windows kernel-level input interception driver and API; the layer AutoHotInterception and some Windows remappers sit on. local-only dormant 1957 Zlib M
islambenmebarekdz-collab/Daftari win Arabic-first, NVDA-native Markdown note-taking app for Windows — an application built so an Arabic screen-reader user can work in it, rather than a re local-only unknown 0 unknown L
Israeli AT distributors: AccessMind (בראש נגיש) · Let's Talk טכנ win/ios Two Israeli assistive-technology vendors whose blindness product pages are built around JAWS for Hebrew-speaking users, one of them advertising a JAWS local-only commercial-l proprietary M
IUIAutomationTextPattern::GetSelection (Windows UI Automation) win The Windows equivalent of the macOS AX call: 'Retrieves a collection of text ranges that represents the currently selected text in a text-based contro os-native active M
java-access-bridge-wrapper (robocorp) win Python wrapper around the Java Access Bridge Windows DLL, giving programmatic reads of Java app UI text. local-only active 20 Apache-2.0 M
JAWS Tandem win A Freedom Scientific deployment and licensing page: adding paid 'remote authorization' to an existing JAWS or Fusion licence lets a copy of JAWS runni hybrid commercial-l commercial; a M
jintellitype (melloware) win Java API for registering Windows global hotkeys. local-only active 180 Apache-2.0 M
jkeymaster (tulskiy) win/mac/legacy Java global-hotkey registration via JNA for X11, Windows and macOS. local-only active 241 LGPL-3.0 M
kanata (jtroo) win/mac/lin Cross-platform keyboard remapper with layers, tap-hold and command execution; runs on Windows, macOS and Linux below the window system. local-only active 7722 LGPL-3.0 M
Korean JAWS (한국어 JAWS) — Siloam revision win The Korean revision of JAWS, produced by the same Siloam institute that developed 드림보이스; the institute's board hosts the installers and a troubleshoot local-only active proprietary M
Kurzweil 3000 / Kurzweil 1000 / OpenBook win/mac/legacy Long-established scan-and-read products for print-disabled users: OCR a scanned or imported document, then read it aloud with synchronized highlightin hybrid commercial-l proprietary, p V
MAGic win Screen magnification software with speech output for low-vision users (Freedom Scientific). os-native ? Proprietary, p L
Microsoft Copilot Vision win/ios/and Windows/Edge feature where Copilot looks at the current screen or app window and answers questions about it in voice — an OS-level 'point at the scree cloud-API ? commercial/bun V
Microsoft Edge Read Aloud win/mac/lin Browser-native read-aloud with natural voices and word highlighting for web pages, EPUB and PDFs — but only where a text layer already exists; an imag hybrid ? proprietary (b V
Microsoft Edge Read Aloud (browser built-in) win/mac/legacy/and/ios Read Aloud is built into Edge itself: Ctrl+Shift+U (Cmd+Shift+U on macOS) reads the page, a PDF, or a selection, with a playback toolbar and neural vo hybrid ? Proprietary (b V
Microsoft Immersive Reader win/mac/web Reading-mode surface across Edge, Word, OneNote and Teams that reflows the document and reads it aloud with line focus, syllable splitting and a dysle hybrid ? proprietary (f V
Microsoft Office Read Aloud / Speak command win/mac/web Built into Word, Outlook, OneNote and PowerPoint: Read Aloud reads the document or the selection with word highlighting, and the older Speak command r hybrid ? proprietary (p V
Microsoft Speech Platform voice packages (msspeech-tts-* on Choc win Per-voice Chocolatey packages that install Microsoft Speech Platform runtime voices (Helen, ZiraPro, Hazel, Heather, Hayley, Heera, Hanna, Herena, Hel local-only active Microsoft EULA M
mIRC With Speech (MWS) win mIRC script that pushes IRC messages, joins/parts and notices out through the user's existing screen reader (JAWS and NVDA supported) rather than mIRC local-only unknown unknown (no SF V
mircwithspeech (fudge333 GitLab) win 'Accessible IRC mIRC script for screen reader users' — a GitLab copy of the SourceForge MWS line. local-only unknown 0 unknown L
MyStudyBar win CALL Scotland page describing MyStudyBar, a portable Windows launcher bar bundling literacy freeware that can be run from a USB pendrive, with two tex local-only dormant Free of charge M
Nattiq (Acapela Arabic voice supply for Dolphin) win Named on Dolphin's own voice-inventory page as the supplier and seller of the Acapela Arabic voice Leila — an example of regional voice sub-distributi local-only commercial-l Voices bundled L
NaturalReader win/mac/legacy Commercial TTS reader with free tier, spanning a desktop app, web app and Chrome extension, with OCR for scanned documents. hybrid ? Proprietary, f L
NaturalVoiceSAPIAdapter win A SAPI 5 engine shim that republishes Windows 11 Narrator natural voices, Edge Read Aloud online voices, and (with your key) Azure voices to any SAPI hybrid ? 889 MIT M
NHotkey (thomaslevesque) win Managed .NET library for global hotkeys in WinForms and WPF. local-only active 342 Apache-2.0 M
NoMachine NX clipboard (EnableClipboard server/client/none) win/mac/lin/and/ios/web NoMachine's own knowledge base states 'By default users can copy and paste from locale to the session and vice-versa', and documents EnableClipboard=s unknown commercial-l proprietary (f M
NVDA 'tesseractOCR' add-on (Rui Fontes) win NVDA add-on that OCRs a FILE rather than the screen: Windows+Control+R runs Tesseract over the image or PDF file currently selected, Windows+Control+W local-only active 14 GPL-2.0 M
NVDA Brasil (nvda.com.br) win Brazilian NVDA community portal distributing the official installer alongside curated add-ons; its download page was current for NVDA 2026.1.1 as of 2 local-only active GPL (NVDA) M
NVDA Controller Client win NVDA's official external-process API: a DLL any program can call to make a running NVDA speak text or SSML, braille a message, cancel speech, or repor local-only ? Distributed wi M
NVDA Controller Client (bindings cluster) win The NVDA-supplied DLL API that lets any third-party program push a string into NVDA's speech queue; found in this sweep as language bindings rather th local-only dormant 2 M
NVDA Remote Access (built-in) win NVDA's now-built-in remote feature: an NVDA on one machine speaks what an NVDA on another machine sees, mediated by a relay server - NVDA-to-NVDA, not hybrid ? GPL-2.0-or-lat M
NVDA Remote Access add-on (NVDARemote) win NVDA add-on (v2.6) that connects two machines each already running NVDA, relaying keyboard and braille input to the controlled machine and its speech hybrid dormant 78 GPL-2.0 M
nvda-autohotkey (hi5) win Library letting AutoHotkey scripts send text to NVDA for speech and braille output. local-only ? 4 LGPL-2.1 L
nvda-testing-driver win Build functional tests that drive the NVDA screen reader. local-only ? 48 GPL-3.0 M
nvda2speechd win/lin Bridge letting Windows applications route speech through Linux's Speech Dispatcher. local-only dormant 12 GPL-3.0 L
Obsidian-pdf-read-aloud win/mac/lin Obsidian plugin that reads PDFs opened inside the vault using the browser Web Speech API: play/pause/stop, skip by a configurable number of sentences, local-only active 1 MIT M
Oculos win/mac/lin "If it's on the screen, it's an API" — exposes any desktop app's UI automation tree over REST and MCP, in Rust. local-only ? 126 MIT M
Parsec win/mac/lin/and/web Low-latency remote-desktop / game-streaming product; its public help centre was reachable but I could not locate a clipboard-behaviour or accessibilit hybrid commercial-l proprietary L
peterrc87/TCA_Portapapeles · rayo-alcantar/KillProcess win Two Spanish-language NVDA add-ons: a clipboard add-on and one that ends the focused process. [lang: Spanish; English UI: no] local-only unknown 2 unknown L
pipe2textbox win Pipes arbitrary command-line output into a read-only Windows textbox purely so a screen reader can read it - a one-trick bridge from stdout to accessi local-only ? 13 MIT M
Piper-Tray win Windows system-tray utility that drives Piper TTS. local-only ? 33 none declared L
POMXARK/SmartDictor · pegas365i4/voicing_text_in_cmd · ikopylov1 win Three Russian-described hobby projects: recognition and voicing of text taken from the screen (SmartDictor), a self-described simplified Balabolka ana local-only unknown 0 unknown L
PowerTalk win 'PowerTalk automatically speaks Microsoft PowerPoint presentations. For presenters who find speaking difficult, audiences containing people with visua os-native unknown GPL-2.0 (SF ca V
Premier Literacy suite (Universal Reader, Scan and Read Pro, Tal win/legacy US literacy-software suite for dyslexic and low-vision users bundling a general reader, a scan-and-read tool, a talking word processor and a browser t local-only unknown proprietary; c L
Py TTS win 'Py TTS is a text to speech (TTS) software which uses Microsoft's SAPI to convert text into spoken audio. You can listen as the program reads out the os-native dormant GPL-3 (Launchp V
pyia2 (illinois-dres-aitg) win Python interface to the MSAA and IAccessible2 interfaces - the accessibility API Firefox and LibreOffice expose on Windows, distinct from UIA. local-only dormant 10 none M
PyScreenReader win/mac/lin "A cross-platform Python library that wraps native accessibility APIs to collect widget tree information on the screen" [vendor] — parses UI propertie local-only active MIT V
pyscrout win Python library that sends text to be spoken and shown in braille by a screen reader, positioned by its README as a maintained replacement for accessib local-only active 0 unknown M
Python-UIAutomation-for-Windows (yinkaisheng) win Python 3 wrapper of Microsoft UIAutomation covering MFC, WinForms, WPF, Modern UI and more. local-only active 3547 Apache-2.0 M
pywinauto win Python GUI automation for Windows with a UIA backend - a practical way to script 'get the selected text out of the focused control' without writing a local-only active 6 BSD-3-Clause M
QHotkey (Skycoder42) win/mac/legacy Global shortcut library for desktop Qt applications on Windows, macOS and X11. Qt-native; relevant to the KDE stack because Qt Speech-based readers ne local-only active 677 BSD-3-Clause M
Qt Speech (QTextToSpeech) win/mac/lin/and/ios Qt's cross-platform TTS abstraction: one API that maps onto SAPI/WinRT on Windows, AVSpeechSynthesizer/NSSpeechSynthesizer on macOS, speech-dispatcher local-only active 39 LGPL-3.0 / GPL M
Quicker (getquicker.net) win Chinese Windows action-launcher platform; its community forum carries a user request titled 建议增加划词朗读 (add select-and-read-aloud), placing it in the tr local-only active proprietary (f M
Quill (Community-Access) win Screen-reader-first writing, review and document-intelligence environment for Windows with guided diagnostics and format workflows. unknown ? 42 MIT M
RDAccess (Remote Desktop Accessibility for NVDA) win NVDA add-on that carries screen-reader output across a remote-desktop session, so the remote machine's accessibility information is spoken by the loca local-only ? 15 GPL-2.0 M
rdev (Narsil) win/mac/lin Rust library to listen for and send keyboard/mouse events on macOS, Windows and Linux. local-only active 738 MIT M
RDP clipboard redirection as a selection-acquisition route (meth win/mac/lin Over RDP the clipboard is shared between guest and host by default, so a copy-then-speak reader running on the LOCAL machine can read text selected in local-only ? n/a D
Read Text Extension for LibreOffice / Apache OpenOffice (jimholg win/mac/legacy Office-suite extension that reads the SELECTION in Writer, Calc, Draw, Impress or Web Writer, or the clipboard contents, by handing the text to an ext hybrid ? 26 none declared M
ReadAny win/mac/lin/ios/and Cross-platform e-book application (Tauri desktop plus React Native mobile) that opens EPUB, PDF, MOBI, AZW, AZW3, FB2, FBZ, CBZ, TXT and UMD, and can hybrid active 2162 NOASSERTION (G M
Remote Incident Manager (RIM) — Pneuma Solutions win/mac Cross-platform remote desktop built so blind, low-vision and sighted technicians can drive the same session on equal terms; the accessibility is in th hybrid ? commercial V
remoteSpeechControl (NVDA add-on) win NVDA add-on that manages speech during remote sessions — optionally mutes the controlled machine so only the local box speaks; uses NVDA's bundled _re local-only ? 3 GPL-2.0 M
renpy-nvda-bridge win 'Enables RenPy to output speech and braille via NVDA' — game-engine to screen-reader bridge. local-only unknown 0 unknown L
RustDesk win/mac/lin/and/ios/web Self-hostable remote-desktop application positioned as an alternative to TeamViewer/AnyDesk/Splashtop [vendor]; clipboard sync between endpoints is pa hybrid active 120 AGPL-3.0 L
RVC WebUI win/lin Train a retrieval-based voice-conversion model from under 10 minutes of voice data. local-only ? 37245 MIT M
SAPI-POC / SAPI-Bridge (AceCentre) win Design + proof-of-concept for a Windows SAPI DLL that forwards every speak call to a background pipe service holding TTS engines warm in memory. hybrid ? 1 open source (A M
scr-ocr win Windows area-screenshot tool that lays recognized text over the screenshot as real selectable text — a local imitation of macOS Live Text, built on El local-only ? 0 MIT M
Screenshot OCR / SnapOCR / MiniSnip / HushSnap / SnipText / Long win/lin/mac A large cluster of small hotkey-to-clipboard OCR utilities found repeatedly during the sweep: press a hotkey, drag a box, get the text on the clipboar local-only ? 0 mixed: some MI L
ScreenTranslate win Lightweight Windows screen OCR and translation utility. unknown ? 2 none declared V
ServantVoice (winget) win Voice application published under the ServantVoice publisher in winget-pkgs. unknown unknown unknown L
ShareX win Windows capture suite with region capture and built-in OCR among many post-capture actions; no text-to-speech feature found in its README. local-only active 39 GPL-3.0 M
Simple TTS Reader win SourceForge directory entry: 'a small utility that reads text from your clipboard using Microsoft Speech API. Whenever you copy any text, the app inst local-only unknown unknown L
SnapX win/lin/mac Cross-platform fork/successor effort of the ShareX capture tool. local-only active 998 L
SofTalk win Long-running Japanese desktop reading app built on AQUEST's AquesTalk; its developer CNCC announced on 2022-07-23 that support for the AquesTalk middl local-only dormant freeware L
Speakonia (CFS-Technologies, Chris Schuster) win Free Notepad-like SAPI 4/5 front end from 2002, now permanently frozen: the vendor FAQ opens 'PLEASE NOTE: Development of this program has been discon local-only discontinued freeware for p M
SpeechCore (still-standing88) win/lin C++ cross-platform speech library; the fourth abstraction layer named in Prism's README. local-only dormant 1 L
Sprint Plus (Jabbla, distributed in France by Cimis) win Belgian-origin reading and writing aid for DYS users sold in the French market; positioned as 'Aide à la lecture'. [lang: French, Dutch; English UI: y local-only commercial-l proprietary L
stt2tts-mcp win/mac/lin Local-first STT/TTS MCP server with hot-swappable engines (faster-whisper, piper, kokoro, coqui, ollama, lmstudio, openai). hybrid ? 2 MIT M
Talon Voice win/mac/legacy Cross-platform hands-free computer control by voice, eye tracking and noise — a full alternative input stack. local-only ? Closed source; L
Text2Speech (SourceForge, C#) win 'Text2Speech is a small and easy to use Text To Speech (TTS) application written in C#. It uses the Microsoft .NET Framework 2.0 to run.' Distinct fro os-native unknown GPL-2.0 (SF ca V
text2speech.org scraping function for AutoHotkey win An r/AutoHotkey regular's WinHttpRequest function that queues text on text2speech.org and plays the result, with session-cookie handling and a tooltip cloud-API unknown n/a M
textsnap win/mac/lin Snap any image, screenshot or webpage into plaintext with one command — CPU-only ONNX/PaddleOCR, no GPU, no cloud. local-only ? 179 MIT M
textspeech and txtreader (SourceForge minor Windows tier) win Two minimal SourceForge Windows entries found while probing the older freeware tier: 'Enjoy text to speech application for windows' (needs .NET 3.5) a os-native unknown unknown (no SF V
trinity (zhubby) win/mac/lin Rust/egui always-on-top desktop assistant: Ctrl+Shift+T translates the current selection with DeepL, Ctrl+Shift+V opens a clipboard history picker, ho cloud-API active 1 MIT M
TTS-WebUI Ignition (winget) win Launcher/installer package for the TTS-WebUI project, in the winget community repo. unknown unknown unknown L
UIAComWrapper (TestStack) win COM-to-.NET adapter for the Windows Automation API 3.0 COM interfaces. local-only dormant 82 none M
Umi-OCR win/lin Free offline OCR software with screenshot OCR, batch image import, PDF recognition and QR handling; no speech output found in the README. local-only ? 46 MIT M
UniversalSpeech win 'Make popular screen readers speak in your application' - an older C++ abstraction over screen readers plus direct SAPI/native synthesis, with a Pytho local-only dormant 48 MIT M
vik-ma/screenshot-OCR win/lin Desktop front-end for Tesseract that lets you mark a section of the screen instead of loading an image file. local-only ? 10 GPL-3.0 M
Vision Assistant Pro (NVDA add-on) win NVDA add-on wrapping Google Gemini as an in-screen-reader copilot, including instant translation of selected text, dictation and CAPTCHA solving. cloud-API ? unknown L
vision-access-nvda-addon win NVDA add-on that generates descriptive narration of on-screen graphics for blind and low-vision users. unknown ? 1 none declared V
VisionAssistantPro win NVDA add-on adding AI vision (image/screen description), translation, dictation and CAPTCHA solving. cloud-API ? 47 GPL-2.0 L
VoiceBroker (AceCentre) win Attempt at a Windows SAPI bridge — a Python COM server registering as a SAPI voice so that any SAPI-consuming app can use online/neural voices. hybrid ? 3 open source (A M
VoiceLink (ManveerAnand/VoiceLink) win Windows shim that exposes Kokoro and other open-source voice models as system voices so apps like Thorium Reader, Edge and Narrator can use them. local-only ? 21 MIT V
VoiceWave LocalCore (winget) win Voice-related package published under the VoiceWave publisher in winget-pkgs. unknown unknown unknown L
vs-read-aloud win Adds 'Read Aloud Selected Text' support to Visual Studio. os-native ? 0 check repo L
w32uiautomation (hnakamur) win Go bindings for Windows UI Automation; README marks it unmaintained. local-only archived 48 MIT M
whkd (LGUG2Z) win Hotkey daemon for Windows, config-file driven, from the komorebi author. local-only active 920 MIT-ish (NOASS M
Windows Magnifier reading win The built-in Windows magnifier can read text on screen aloud from a chosen start point, using the accessibility text layer rather than OCR. os-native ? proprietary (b L
Windows Narrator win The screen reader built into Windows; it reads UI elements and text, and offers AI-generated image descriptions, but no documented user-invoked OCR of hybrid ? proprietary (b L
Windows PowerToys — Text Extractor win Microsoft PowerToys utility: a global shortcut lets you drag a box over any screen region and OCRs the pixels straight to the clipboard. os-native ? 110 MIT (PowerToys D
Windows Snipping Tool — Text Actions win The built-in Windows 11 snipping tool recognizes text in a capture and lets you copy it; no speech. os-native ? proprietary (b V
Windows UI Automation + SAPI 5 / OneCore (platform stack) win The Windows halves of the stack every Windows reader stands on: UIA (and legacy MSAA/IAccessible2) for reading the UI tree, SAPI 5 and the OneCore/Nat os-native ? proprietary (p D
Windows.Media.Ocr (Windows OCR API) win The OS-provided OCR engine on Windows 10 and later, free and offline, driven by installed language packs — the recognizer behind PowerToys Text Extrac os-native ? proprietary (p M
wolfmanstout/screen-ocr win/lin/mac Python library to perform OCR on portions of the screen with a choice of backends (Tesseract, WinRT, EasyOCR); a library, not an app. local-only ? 50 Apache-2.0 M
WordTalk win Free Microsoft Word add-in that speaks the document, paragraph, sentence or word from the cursor with word-by-word highlighting; the vendor's site sta os-native discontinued 170,000 free (propriet M
wsay win 'Windows say' CLI; v1.5.0 added clipboard playback and piping specifically in response to an r/AutoHotkey thread asking for 'say text from clipboard'. local-only active 172 BSD-3-Clause M
WYNN / WYNN Wizard / WYNN Reader (Freedom Scientific) win Freedom Scientific's literacy-side scan-and-read product for learning disabilities, sold alongside JAWS and OpenBook and positioned against Kurzweil 3 local-only discontinued proprietary co L
zhuguohui/PageReader · lixiaowang/PDFReciter · johnsmith2078/pdf win/mac/lin/and Chinese document-scoped readers: word-by-word read with auto-scroll (PageReader), drag-a-box over PDF text to read it (PDFReciter), a PyQt6 PDF reader hybrid active 1111 MPL-2.0 (Color M
Zotero ZoTTS win/mac/lin Zotero 7 plugin: inside a Reader tab Ctrl/Cmd+S speaks the selected text, the selected annotations' text, or the whole paper when nothing is selected, unknown dormant 208 AGPL-3.0 M
Говорилка (Govorilka) win Russian freeware text-to-speech reader in circulation since 1999: reads text aloud, writes the reading to WAV/MP3 at raised speed with size-based spli local-only dormant freeware M
עלמה רידר / Alma Reader (עלמגו / Almago) win/legacy Hebrew reading software built on Hebrew and English linguistic analysis; Tel Aviv University's law library describes it as aimed at users with learnin local-only commercial-l proprietary M
文字朗读神器 (Microsoft Store, publisher site zonboapp.com) win Microsoft Store app whose Chinese listing describes a copy-then-press-the-button workflow: '在其它任何软件,直接复制想朗读的文字内容,点朗读按钮即可自动开始朗读' (in any other software cloud-API unknown proprietary V
Chrome extension: Talkie (Chrome) ext Chrome Web Store read-aloud/text-to-speech extension surfaced in the store's own search index. hybrid unknown unknown L
Chrome extension: Text to Speech (TTS) (Chrome) ext Chrome Web Store read-aloud/text-to-speech extension surfaced in the store's own search index. hybrid unknown unknown L
Chrome extension: Text to Speech AI Voice Generator ext Chrome Web Store read-aloud/text-to-speech extension surfaced in the store's own search index. hybrid unknown unknown L
Chrome extension: Text to Speech TTS AI Reader ext Chrome Web Store read-aloud/text-to-speech extension surfaced in the store's own search index. hybrid unknown unknown L
Chrome extension: Voice Out - Read Aloud Text ext Chrome Web Store read-aloud/text-to-speech extension surfaced in the store's own search index. hybrid unknown unknown L
Firefox add-on: BeeLine Reader ext "BeeLine's color gradient makes reading faster/easier fo[r some readers]" [vendor]. hybrid active unknown V
Firefox add-on: ChatGPT Reader & Transcriber ext "Free AI text to speech (tts) and speech to text (stt) w[orkflow]" [vendor]. hybrid active unknown V
Firefox add-on: Circle reader ext Reader-mode extension that extracts page content for distraction-free reading [vendor]. hybrid active unknown V
Firefox add-on: Gemini Reader ext "Natural Gemini AI text to speech (TTS) for the web, PDF[s]" [vendor]. hybrid active unknown V
Firefox add-on: Google Reader: Free Natural AI Text to Speech ext "Natural Gemini AI text to speech (TTS) for the web, PDF[s]" [vendor]. hybrid active unknown V
Firefox add-on: Intelligent Speaker ext "Intelligent Speaker: smart reader running on high-profile tt[s engines]" [vendor]. hybrid active unknown V
Firefox add-on: Native text to speech (tts) ext "Website and PDF text to speech reader. Uses installed v[oices]" [vendor]. hybrid active unknown V
Firefox add-on: Picture Reader ext "Picture Reader is a browser plug-in that extracts all t[ext from images]" [vendor]. hybrid active unknown V
Firefox add-on: Read Aloud ff ext "Reads text marked by the user aloud." [vendor]. hybrid active unknown V
Firefox add-on: Talkie ext "Select text on any web page, and have the computer read [it aloud]" [vendor]. hybrid active unknown V
Firefox add-on: Text to Speech (TTS) ext "Text to Speech is a text to speech engine with natural [voices]" [vendor]. hybrid active unknown V
orator-chrome-extension ext Catalogued from a single sentence in MyronKoch/orator-macos's README describing a browser-extension sibling that reads web pages with Kokoro and Super unknown unknown unknown L
AceCentre TextAloud (iOS) ios Swift iOS app that reads text out sentence by sentence, paragraph by paragraph or word by word. os-native ? 11 open source (A L
Amazon Kindle apps — Assistive Reader / VoiceView ios/and/legacy Amazon's in-app text-to-speech for Kindle books, with real-time highlighting and speed control on iOS, Android, Mac and Fire tablets. os-native ? Proprietary V
Dolphin EasyReader ios/and/win/ext Free accessible-book reader that connects to about 50 talking-book libraries, and can also read text pasted in from the clipboard — but the free tier hybrid commercial-l Free app with M
Elocance ios/and French mobile application, free to download on iOS and Android, that converts documents and other content into synthesised speech; catalogued by the F hybrid unknown freemium V
KNFB Reader ios/and/win National Federation of the Blind's app that photographs printed text and converts it to speech. hybrid ? Proprietary, p L
Learning Ally ios/and/legacy US non-profit audiobook library for print-disabled students, largely human-narrated rather than synthesised, delivered through its own reading apps. cloud-API commercial-l Membership/sub M
Listen2 Reader ios AppleVis directory entry, vendor copy: 'Listen2 runs neural voice models locally on your device, giving you natural-sounding speech without ongoing co local-only commercial-l proprietary V
Lumyeye ios/and A subscription app pitched explicitly as the replacement for reading-machine hardware — the commercial shape that is eating this category. hybrid unknown Subscription, V
Readify: AI Natural Read Aloud ios AppleVis directory entry for an iOS reader supporting PDF, EPUB, TXT, MOBI and AZW. unknown commercial-l proprietary V
Seeing AI / Envision / Lookout / Google Lens ios/and Camera-first mobile OCR readers that photograph text in the physical world (or an image) and speak it; several also describe scenes. hybrid ? proprietary (S V
SpeakCamera ios Pair of free iPhone Shortcuts: 'SpeakCamera' turns on voice announcements for the camera so text the camera sees is read aloud, and 'StopSpeech' stops os-native dormant 2 none declared V
Speech Central ios/mac/win/and Commercial cross-platform reading app (iOS, macOS, Windows, Android) marketed for visual impairment and dyslexia, covering web pages, documents and eb hybrid ? Proprietary, f L
Voice Dream Reader ios/mac Accessibility-first document reader for Apple platforms with synced word highlighting and broad document import; long-standing dyslexia-community stap hybrid ? Proprietary, s L
AccessLint screenreaders (Auto-VO / VoiceOver.js) mac A Node CLI and library that starts VoiceOver from the command line, drives it with AppleScript, and dumps every announcement as text. local-only ? 183 MIT M
Aftertone mac/win/lin On-device daemon that speaks a short summary after a coding agent (Cursor, Claude Code) answers, using Supertonic ONNX. local-only ? 11 MIT L
agent-desktop mac/win/lin A native desktop-automation CLI that exposes OS accessibility trees as structured JSON with deterministic element refs, built for AI agents rather tha local-only active 1 Apache-2.0 L
Apple Books — Speak Screen / VoiceOver reading (built-in) mac/ios Apple ships no dedicated in-app 'read this book aloud' button in Books; reading is done through the OS Spoken Content / VoiceOver layer. os-native ? Proprietary (b L
Apple Speech Synthesis Provider Audio Unit mac/ios/legacy AppleVis forum post announcing Apple's API that lets third-party synthesisers register as system voices for accessibility features, shipped with iOS 1 os-native active Apple platform L
Apple Vision framework (VNRecognizeTextRequest) / VisionKit Live mac/ios Apple's on-device text recognition API, the engine behind Live Text and behind every macOS OCR utility in this list (TRex, Textinator, macOCR, ocrit, os-native ? proprietary (p M
aria-at-automation-driver mac/win W3C WebSocket server letting clients observe what a screen reader enunciates and simulate user input. local-only ? 10 NOASSERTION M
ax-kit / AXKit (Akazm) mac Fork-derived Swift wrapper for the macOS accessibility client APIs (originally forked from AXSwift). local-only dormant 3 none M
AXSwift mac A Swift wrapper over the macOS Accessibility client API, giving typed access to attributes like the focused element and its selected text. local-only dormant 413 MIT M
BetterPopupTranslateSelection.spoon (rshlin) mac Hammerspoon Spoon that shows a popup with a context menu when text is selected, for translation. local-only dormant 0 L
BetterSwiftAX (beeper) mac Swift wrapper around the macOS AX APIs, maintained by Beeper. local-only active 5 none M
BetterTouchTool mac macOS automation app that since v5.177 ships a predefined 'OCR / Recognize / Extract Text from Clipboard Contents / Image' action, documented as combi os-native ? proprietary, p M
Cheese! OCR mac macOS hotkey OCR that recognizes a selected screen area entirely on-device via Apple Vision and copies the text. os-native ? proprietary V
Clicknow mac Commercial macOS selection tool: select text in any app and get AI translation, explanation, summary or search - named by MoePeek's README as the robu cloud-API commercial-l proprietary (m V
clipboard-tts (khiet) mac macOS command-line script that reads the clipboard with pbpaste, synthesizes it locally with Kokoro, and plays it through mpv over mpv's JSON IPC sock local-only active 0 None declared M
clipper (wincent) mac/lin 'Clipboard access for local and remote tmux sessions' [vendor] — a listener on the local machine that accepts text over a socket or TCP and places it local-only active 687 BSD-2-Clause M
CursorBounds (Aeastn) mac Swift package that retrieves the on-screen position and bounds of the text caret in macOS apps via the Accessibility API - the primitive a floating 's local-only active 120 none M
debrief (rs07-git) mac macOS floating read-along panel for Claude Code responses, with word highlighting and attention chimes; the text is handed to it by a hook rather than local-only active 1 MIT M
Desktop Reader (hlindquist/bookreaderpackages) mac/win Packaged desktop application described by its author as a screen-region OCR reader with AI text-to-speech, distributed as a macOS arm64 DMG and a Wind unknown active 0 none declared L
DFAXUIElement (DevilFinger) mac Objective-C helper for driving AXUIElement from macOS apps. local-only dormant 61 none M
Dolphin EasyReader mac "Global links to over 50 libraries... Access magazines, newspapers and periodicals or import files and read clipboard text." [vendor] os-native commercial-l proprietary V
Drafts — Speak Selection mac/ios The Drafts editor has an Editor > Speak Selection menu item that opens a speech interface with pause/resume. os-native ? proprietary V
FluidVoice (altic-dev) mac macOS dictation app with on-device speech-to-text and AI enhancement - the speech-to-text counterpart that Murmur was written as the inverse of. local-only active 9451 GPL-3.0 M
get-selected-text (yetone) mac/win/lin Tiny Rust library that obtains the currently selected text on macOS, Windows and Linux behind one call — the reusable L1 primitive underneath a large local-only dormant 209 unknown/NOASSE M
gruut mac/win/lin Tokenizer, text cleaner and phonemizer for many languages. local-only ? 331 MIT M
Hammerspoon mac macOS Lua automation framework with global hotkey binding and a built-in speech module, commonly paired with an external Vision-OCR binary to assemble os-native ? 16 MIT M
hammerspoon-penguin-click (KirkAlton-Class7) mac Hammerspoon Spoon adding Linux-style primary selection and middle-click paste to macOS. local-only active 0 L
hifi-gan-bwe mac/win/lin Bandwidth extension for audio (upsampling speech quality). local-only ? 225 MIT M
Highlight AI mac/win Desktop AI assistant that reads on-screen context across every app so you can ask about what you are looking at without copying it into a chat box. cloud-API ? commercial V
HotKey (soffes) mac Swift wrapper for Carbon RegisterEventHotKey global shortcuts on macOS. local-only dormant 1077 MIT M
isimud mac "AI-native macOS menu bar text-to-speech and MCP server for agents" [vendor, crates.io description]; repo tagline "Have your agents speak to you". hybrid active 0 MIT V
kAXSelectedTextAttribute / AXUIElementCopyAttributeValue (macOS mac The macOS AX client call every non-destructive macOS selection reader is built on: ask the focused AXUIElement for its kAXSelectedTextAttribute. Requi os-native active M
Keyboard Maestro mac macOS macro automation with published community macros that screenshot a user-selected area and OCR it; its shell-script action can pipe the result to os-native ? proprietary, p V
KeyboardShortcuts (sindresorhus) mac Swift package adding user-customisable global keyboard shortcuts to a macOS app, with a recorder UI. local-only active 2689 MIT M
kokoro-tts-mcp (scottschram) mac MCP server exposing Kokoro-82M on Apple Silicon via MLX to coding agents, able to speak the command line and the clipboard. local-only active 3 MIT V
local-voice-reader mac Electron reading app for Apple Silicon macOS: paste text or open a .md/.txt file and it reads it aloud in a voice cloned from a 3-15 second recording, local-only active 1 MIT M
Lue (paulilaaso/lue) mac/lin/legacy Terminal e-book reader for EPUB/PDF/DOCX/HTML/RTF/TXT/MD with word-level highlighting synchronized to speech, auto-scroll, and swappable TTS backends. hybrid ? 796 GPL-3.0 M
macOCR mac macOS tool/CLI that gets any text on your screen into the clipboard using Apple's Vision OCR. os-native ? 2 none declared M
macOS Accessibility (AX) API mac The AXUIElement C API that VoiceOver, Read & Speak, and third-party Mac selection readers all use to ask the focused app what its selected text is. os-native ? proprietary (p D
macOS AppleScript clipboard-hack selection capture (System Event mac The question's own code: back up the clipboard, send Cmd+C via System Events, delay 1, read, delay 1, restore - the asker reports 'This doesn't wo local-only active CC-BY-SA (answ M
macOS Services "Add to Music as Spoken Track" (formerly iTunes) mac Answer's workaround for the missing pause: select text in a browser, right-click, 'add to iTunes as spoken track', then use the media keys - a native os-native active n/a M
macos-accessibility-client (x3ro) mac Rust wrapper around the macOS accessibility-client APIs; get-selected-text's README points at it for the permission prompt. local-only active 31 none M
macos_accessibility_client (ahkohd) mac Node.js wrapper around the same macOS accessibility-client APIs, for Electron-shaped apps. local-only dormant 7 none M
Magnet (Clipy) mac Global-hotkey library for macOS from the Clipy clipboard-manager project. local-only active 450 MIT M
Marker (Mazide) mac Swift menu-bar app that 'Watches text selections system-wide via the Accessibility API' and stores them in its own buffer; README states 'Strict separ local-only active 4 MIT M
mekedron/ocr mac Single-binary Go tool for macOS: capture a screen region, recognize with Apple Vision, pipe to pbcopy or wire to a Hammerspoon hotkey. os-native ? 3 MIT M
mkhd (Miigon) mac Layer-based hotkey daemon for macOS. local-only dormant 17 MIT M
Multi OCR (Alfred workflow) mac "Run OCR on screenshots, images, and PDFs" [vendor]. local-only active unknown V
Narrly: Read Aloud PDF & Text mac "Reads PDF, EPUB, Word, RTF, Text and images... Speech is synthesized on your device... Supports TTS for 50+ languages." [vendor] os-native commercial-l proprietary V
node-get-selected-text (yetone) mac/win/lin The Node binding of the same cross-platform selected-text primitive, for Electron and Tauri-shaped desktop readers. local-only dormant 41 none declared M
npm: @guidepup/virtual-screen-reader mac/win/lin "Virtual Screen Reader driver for unit test automation." [vendor]. unknown active unknown V
npm: speech-rule-engine mac/win/lin "A standalone speech rule engine for XML structures" [vendor] — turns MathML into spoken descriptions. unknown active unknown V
Obsidian plugin: AI Selection Toolbar mac/win/lin "AI-powered toolbar for selected text with TTS, translation, explanation, and wor[d lookup]" [vendor] hybrid active unknown V
Obsidian plugin: Aloud mac/win/lin "Speak text from your notes. Converts text to speech in real-time using lifelike [voices]" [vendor] hybrid active unknown V
Obsidian plugin: Apple TTS mac/win/lin "Read notes aloud using macOS native text-to-speech." [vendor] hybrid active unknown V
Obsidian plugin: Chatty mac/win/lin "Allows you to listen to your notes using text-to-speech. Uses the browser's buil[t-in engine]" [vendor] hybrid active unknown V
Obsidian plugin: Edge TTS mac/win/lin "Read notes aloud using Microsoft Edge Read Aloud API (free, high quality text-to-[speech])" [vendor] hybrid active unknown V
Obsidian plugin: Eleven Labs mac/win/lin "Turn your notes into text-to-speech audio files with Eleven Labs." [vendor] hybrid active unknown V
Obsidian plugin: Hermes TTS mac/win/lin "Generate lightweight audio from a markdown note and prepend timestamped metadata" [vendor] hybrid active unknown V
Obsidian plugin: Lens OCR mac/win/lin "Capture screen regions and digitize handwritten notes via native macOS and Windo[ws OCR]" [vendor] hybrid active unknown V
Obsidian plugin: Local Voiceover - Private TTS mac/win/lin "Speak selected text with local Inflect Micro v2 synthesis." [vendor] hybrid active unknown V
Obsidian plugin: Murmur mac/win/lin "Read your notes aloud with karaoke-style highlighting. Multiple TTS providers su[pported]" [vendor] hybrid active unknown V
Obsidian plugin: Note Reader mac/win/lin "Provides text-to-speech (TTS) for notes or clipped articles by reading them alou[d]" [vendor] hybrid active unknown V
Obsidian plugin: Open Reader mac/win/lin "Obsidian local TTS plugin for reading selected text and Markdown notes aloud" [vendor] hybrid active unknown V
Obsidian plugin: Read Along mac/win/lin Sentence-by-sentence read-aloud with the current sentence highlighted; exports notes to an offline-readable page [vendor, Chinese listing]. hybrid active unknown V
Obsidian plugin: Text Extractor mac/win/lin "A (companion) plugin to facilitate the extraction of text from images (OCR) and [PDFs]" [vendor] hybrid active unknown V
Obsidian plugin: Text to Speech (joethei) mac/win/lin "Hear your notes." [vendor] hybrid active unknown V
Obsidian plugin: Text2Audio mac/win/lin "Convert text to speech." [vendor] hybrid active unknown V
Obsidian plugin: Voice (chrisurf) mac/win/lin "Listen to your notes as natural speech with text-to-speech (TTS). Read notes alo[ud]" [vendor] hybrid active unknown V
OCR (Alfred workflow, alanhe) mac "Take a screenshot and copy its text to the clipboard" [vendor]. local-only active unknown V
OCR Light (Alfred workflow) mac "Copy screenshot text to the clipboard" [vendor]. local-only active unknown V
OCR Text Recognition: Textify mac Mac App Store OCR text-recognition utility (iSolid SPRL). unknown unknown proprietary L
ocrit mac Command-line utility that performs OCR on image files using Apple's Vision framework, outputting text or files. os-native ? 187 BSD-2-Clause M
Omnivox mac/win/lin 'Omnivox is an Emacspeak TTS server designed to be cross platform.' unknown unknown unknown V
OneTalker mac/win/lin 'OneTalker is a free, open-source Augmentative and Alternative Communication (AAC) desktop app' — 31 stars, the highest-starred TTS-relevant repo foun unknown unknown 31 unknown V
OpenPhonemizer mac/win/lin Permissively-licensed espeak-compatible IPA phonemizer based on DeepPhonemizer. local-only ? 112 BSD-3-Clause-C M
OwlOCR mac macOS OCR app for screenshots, PDFs and local AI processing. local-only ? proprietary, p V
owocr mac/win/lin "Multi-service, multi-platform optical character recognition" [vendor] — OCR daemon that can watch the clipboard or a screen area and feed recognised hybrid active 283 GPL-3.0 V
phonemizer mac/win/lin Text-to-phoneme converter wrapping espeak-ng, festival and segments. local-only ? 1 GPL-3.0 M
PopClip (relationship anchor, already-known) mac Named alongside Clicknow in MoePeek's alternatives section as the macOS selection-action baseline; recorded here only as the traversal edge. local-only commercial-l proprietary L
PopClip extension: Say mac Official PopClip extension that speaks the selected text through the macOS say command; voice and rate can be overridden per extension setting, and os-native active see extension M
portable-translator (Zxx20061021) mac macOS desktop translator whose selection watcher tries AXSelectedText first and falls back to other macOS-specific APIs. hybrid ? check repo M
Prizmo mac "Scanning application with Optical Character Recognition (OCR)" [vendor] — Creaceed's macOS scanning/OCR app. local-only commercial-l proprietary, p V
PyScreenReader (PyPI) mac/win/lin Cross-platform Python library wrapping the native accessibility APIs to collect the on-screen widget tree — the Python counterpart to pywinauto/FlaUI/ local-only ? unknown L
qtspeech (Homebrew formula) mac/lin "Enables access to text-to-speech engines" [vendor] — the Qt Speech module. local-only active LGPL-3.0-only V
Raycast / Alfred / Hammerspoon / skhd / Karabiner-Elements (trig mac General macOS hotkey and launcher layers that supply L2 only — you bind them to a say, pbpaste | say, or CLI-reader invocation to assemble a sele os-native ? 12 mixed — Hammer M
Raycast extension: Easy OCR mac Raycast extension with one command: select a screen area, Tesseract extracts the text. [vendor, store manifest] local-only active see store list V
Raycast extension: Read My Screen mac Raycast extension that captures a screen region, a window, the full screen, a clipboard image, a local image file, or the active browser tab's text an cloud-API active 62 not declared i M
Raycast extension: ScreenOCR mac Raycast extension doing local OCR of a captured screen area or the entire screen, with a language picker and a barcode mode. [vendor, store manifest] local-only active see store list V
raycast-tts mac Raycast extension for macOS with a local Python WebSocket server running Piper: you TYPE into its text area and it speaks each word as you press space local-only active 0 none declared M
read-aloud.el mac/lin/win Emacs package that does live speech-to-TEXT transcription: it captures microphone audio, detects voice activity, and sends the transcript into an Emac hybrid active 2 GPL-3.0-or-lat M
readio (hrhrng/readio) mac/lin/win Rust terminal e-book reader (EPUB/PDF/Markdown/text) with local-model read-aloud that highlights the spoken sentence and the current word. local-only ? 7 MIT M
Selection (pot-app) mac/win/lin The cross-platform selection-acquisition crate extracted from pot-desktop: get the text selected by the cursor, on X11, Wayland, Windows and macOS. local-only dormant 70 GPL-3.0 M
selection-translator (huacius) mac Minimal macOS selection translator for English reading and learning: select a word or phrase, get a translation card with UK/US pronunciation display hybrid active 2 MIT M
Shottr mac Free-to-use macOS screenshot app with a hotkey-driven OCR: press a hotkey, select an area, text is copied to the clipboard. os-native ? proprietary (f V
Sinter mac/lin/win Research 'Accessible Remote Desktop Protocol': a remote-desktop system that transmits UI semantics rather than pixels so assistive technology works ov local-only ? 3 NOASSERTION M
skhd (asmvik) mac Hotkey daemon for macOS: a config file of key : command lines that runs any shell command on a global chord. Gives a Speak-Selection pipeline its ke local-only active 8063 MIT M
skhd.zig (jackielii) mac Zig port of skhd for macOS. local-only active 607 MIT M
SnapPop (gradinnovate) mac macOS background utility described as a PopClip alternative: it detects a text selection and shows a floating menu of quick actions such as copy and s local-only dormant 1 Apache-2.0 M
Speak Text Pro mac "Convert web pages text into speech! Get your Mac talking with this app." [vendor] os-native dormant proprietary V
speak-app (eliefrancis5) mac 169-line macOS menu-bar app in Python: click the menu-bar icon, TYPE text into a box, press Speak, and it shells out to say with a chosen voice and local-only active 0 none declared M
speak-selected-text-sublime mac Sublime Text plugin that pipes the editor selection to the Mac say command. os-native ? 11 MIT L
Speech Central: Text to Speech (Mac App Store listing) mac Paid Mac App Store text-to-speech reader; surfaced in the macSoftware search for 'screen reader' at $9.99 with 0 US ratings recorded. unknown commercial-l proprietary L
star (Speaking Terminal Access Reader) mac/win/lin "star is an accessible, GUI-first document reader and Markdown authoring tool with built-in text-to-speech" [vendor, PyPI long description]. local-only active GPL-3.0-or-lat V
star / star-reader (leavesofgrass) mac/win/lin 'Speaking Terminal Access Reader' — a GUI-first accessible document reader that opens PDF, Word, EPUB, PowerPoint, web pages and spreadsheets, reads t local-only ? , GPL-3.0-or-lat M
swiftmac mac 'Swiftmac TTS server for emacspeak' — a Swift-written Emacspeak speech server for macOS, hosted only on sourcehut. os-native unknown unknown V
SwiftTranslate (blackTDE) mac macOS global translation utility explicitly inspired by PopClip and Raycast Translate: select text anywhere, hotkey, translated popup. hybrid active 0 MIT M
Text Scraper (johnbean393) mac macOS menu-bar app that OCRs the text on your displays on Cmd+Ctrl+C and presents it grouped for selection and copying; it has no speech of its own an local-only dormant 10 none declared M
Text to Speech PDF Reader mac "The app will highlight words as it reads and scroll the page automatically... Choose a primary and secondary voice." [vendor] os-native commercial-l proprietary V
Textinator mac macOS status-bar app that automatically runs Vision OCR on every screenshot you take and puts the text on the clipboard. os-native ? 203 MIT M
textra mac macOS CLI converting images, PDFs and audio to text using Apple's APIs. os-native ? 755 MIT M
TextSniper mac Proprietary macOS menu-bar OCR: hotkey, drag over any screen region — including video frames and locked UI elements — and the text lands on the clipbo os-native ? proprietary, p V
TRex mac macOS menu-bar OCR: hotkey, drag a region, text on the clipboard, using Apple's on-device Vision framework. os-native ? 1 MIT M
tts.nvim mac/lin Neovim plugin that speaks the visual selection, the current line, paragraph or section from the buffer, with a play/stop/queue keymap set and a choice hybrid active 11 None declared M
Viz (alienator88) mac Swift macOS snip-to-text tool (v2.3.3) built on the Apple Vision framework: extract text, QR codes, barcodes and colours from a screen snippet on a cu local-only dormant 526 NOASSERTION (G M
Voice Reader . mac "Reads copied text from emails, apps, notes, etc. Supports reading PDF files. Reads website content. Works even without an internet connection." [vend os-native commercial-l proprietary V
VoxBar (+ voxbar-ob Obsidian plugin) mac Local macOS TTS app driven from Obsidian: read the selection, the whole note, or fetch and read the article at a selected source URL. local-only ? 0 check repo M
VS Code extension: Text to Speech Preview mac/win/lin "Preview selected text or the active document with local syst[em TTS]" [vendor]. local-only active unknown V
WebOutLoud: Web Text to Speech mac Reads web-page text aloud inside its own browser view. [vendor listing] os-native commercial-l proprietary V
Xpop-lineage note: PopClip alternatives that do NOT speak mac Bare macOS selection-popup experiment surfaced by an 'alternative to PopClip' README search; no speech capability found. local-only active 0 none declared L
Ability (TBosak/ability) legacy Browser extension bundling accessibility controls, including TTS, for users with varying degrees of ability. local-only ? 22 none declared V
ABiSee Eye-Pal Solo / Eye-Pal ACE / Zoom-Ex legacy The previous generation of camera reading machines; ABiSee was absorbed by Freedom Scientific and the Eye-Pal line is marked discontinued by retailers local-only discontinued n/a M
Access Lens — Kane, Frey & Wobbrock, CHI 2013 legacy Computer-vision gesture tracking that lets a blind user perform accessible touch gestures on paper documents and physical objects that have no screen local-only dormant research proto M
Access Overlays — Kane, Morris, Perkins, Wigdor, Ladner & Wobbro legacy Three software overlays (edge projection, neighbourhood browsing, touch-and-speak) that give blind users spatial access to large touch screens. local-only dormant research proto M
Adapted Digital Exams (CALL Scotland / SQA) legacy Scottish exam-board guidance on running SQA digital question papers, including which text readers to use and how to configure Adobe Reader around them unknown active Public sector M
adult-sharks/spatial-screen-reader · leelaeloo/Senior-OCR-Projec legacy Two Korean student/hobby projects: a Chrome extension using OpenCV as a visual-assistance aid, and 읽어드림, a document-reading app aimed at older users. hybrid unknown 2 unknown L
Anki-TTS-Edge (EllisMorrow/Anki-TTS-Edge) legacy Edge-TTS tool that both generates Anki card audio and doubles as an immersive reader with real-time highlighting, click-to-play and navigation. cloud-API ? 14 NOASSERTION (u V
Apache Guacamole (clientless HTML5 remote desktop gateway) — cli legacy Browser-based RDP/VNC/SSH gateway whose manual documents a clipboard text area: 'Text copied/cut within Guacamole will appear here' and 'text that is hybrid active 3 Apache-2.0 M
Artificial Analysis Speech Arena Leaderboard legacy Second crowd-voted TTS leaderboard on Hugging Face Spaces, comparing systems using each provider's own native voices. cloud-API ? see Space L
Assistive-Webdriver legacy Tool for automating end-to-end web application tests driven through a real screen reader in a VM. local-only ? 28 see repo L
Audiobook Read-Along plugin for KOReader (stradichenko/audiobook legacy/and/lin KOReader plugin adding offline TTS with synchronized word highlighting, automatic page turns, and Bluetooth control on e-ink devices. local-only ? 108 AGPL-3.0 M
AuraLens legacy Flutter prototype assisting blind and low-vision users with real-time scene understanding and text reading (OCR), backed by Gemini models. cloud-API ? 7 see repo L
Auris (nikhilprasanth/Auris) legacy Offline audiobook-style reader for EPUB/PDF/TXT with local OmniVoice TTS, per-character voices, and synced text highlighting. local-only ? 20 MIT M
Bhola (2022) — 'Effect of Text-to-speech Software on Academic Ac legacy Small pretest-posttest experiment giving one group four months of text-to-speech software and comparing achievement against an untreated control. unknown active open access M
Bonifacci, Colombini, Marzocchi, Tobia & Desideri (2022) — 'Text legacy Experiment measuring whether text-to-speech changes how often a student's attention drifts off task during reading, alongside comprehension. unknown active open access (W M
Bookshare Reader legacy/ios/and Bookshare's own free reading tool for its accessible-book library, usable in a web browser, on iOS and Android, and on Alexa-enabled devices. cloud-API active Free to Booksh M
Brèthes, Cavalli, Denis-Noël, Melmi, El Ahmadi, Bianco & Colé (2 legacy Regression study of which cognitive skills predict text reading fluency versus text reading comprehension in dyslexic and non-dyslexic university stud unknown active open access (F M
calibre-tts-ebook-viewer (christineye) legacy Pre-built-in-TTS calibre viewer plugin using Windows SAPI 5, with paragraph highlighting, click-a-paragraph-to-start select mode, and customizable hot os-native ? 31 none declared M
CALL Scotland text-reader catalogue legacy Practitioner-written catalogue of 14 Windows and cross-platform text readers, each with its own page giving the literal keystroke sequence a user perf unknown active Public sector M
Capti Voice legacy/win/mac/ios/and Named in an Apple StackExchange answer as a free reader that 'highlights, pauses, etc.' and syncs to phone; the same answer reports it 'can crash a bi hybrid commercial-l proprietary (f L
Cavalli, Colé, Brèthes, Lefèvre, Lascombe & Velay (2019) — 'E-bo legacy Study of how the reading medium affects long-text comprehension specifically in dyslexic adults. unknown active paywalled (Spr L
ChatGPT_ReadAloud legacy Chrome extension restoring a Read Aloud button in ChatGPT with auto-play and playback controls. unknown ? 3 Apache-2.0 M
Chen, Hung & Jian (2026) — 'The effects of text-to-speech on rea legacy Eye-tracking experiment comparing silent reading with text-to-speech across dyslexia, ADHD-with-reading-difficulty, and typically developing groups. unknown active open access (S M
Citrix ICA clipboard redirection policy (Restrict session clipbo legacy Citrix documents session-to-client clipboard as an administrator-controlled ICA policy: 'When the Restrict session clipboard write setting is Enabled, unknown commercial-l proprietary (C V
Citrix virtual channel allow list (Virtual Apps and Desktops 210 legacy From Citrix Virtual Apps and Desktops 2109 onward a virtual-channel allow list restricts third-party virtual channels by default; the NVDA rdAccess do unknown active n/a M
Clicker and DocsPlus (Crick Software) legacy Literacy-support writing environments for schools with built-in speech feedback; named by Adapted Digital Exams among the commercial tools that add te hybrid commercial-l Commercial; sc M
Clicky (farzaa) / Clicky for Windows legacy AI companion that sits by the cursor: hold a hotkey, ask about what is on your screen, and it sees the screen and talks back — with a community Window hybrid ? 7 MIT M
Clinton-Lisell & Litzinger (2026) — 'Decoding digital reading: a legacy Network meta-analysis ranking paper against computers, tablets, e-readers and smartphones for reading comprehension, with scrolling as the moderator. unknown active open access (S M
Clinton-Lisell (2021) — 'Listening Ears or Reading Eyes: A Meta- legacy Meta-analysis comparing comprehension when the same material is read versus listened to, across age groups. unknown active paywalled (SAG M
Clinton-Lisell (2023) — 'Reading while listening meta-analysis' legacy Meta-analysis of audio-assisted reading — seeing the text and hearing it at the same time, which is exactly the Speak-Selection condition. unknown active open access (O M
cliphist (sentriz) legacy Wayland clipboard-history daemon driven by wl-paste --watch; README states clipboard content is 'preserved byte-for-byte' and it has 'No concept of local-only active 1520 GPL-3.0 M
clipmenu (cdown) legacy X11 clipboard-history manager built on clipnotify + dmenu. local-only active 1253 Public Domain M
clipnotify (cdown) legacy Tiny X11 utility that blocks until the clipboard or PRIMARY selection changes, then exits - the event primitive a shell-script selection reader loops local-only dormant 256 Public Domain M
clipvault (Rolv-Apneseth) legacy Wayland clipboard-history manager, cliphist-inspired. local-only active 115 MIT M
Creative TextAssist / Texto'LE (DECtalk on Sound Blaster ASP) legacy DECtalk-derived TTS bundled with Sound Blaster 16 and AWE32 cards, with a Windows 'TextAssist TextReader' front end - and a hard dependency on the car local-only discontinued proprietary, b M
Do GUI Agents Believe Their Eyes? Diagnosing State-Belief Relian legacy Diagnostic benchmark that measures, with paired single-channel interventions, whether a multimodal agent's belief about what is on screen comes from t unknown active unknown M
DSpeech (Dimio) legacy Italian freeware SAPI front end with speech-recognition-driven branching, long distributed as a portable app; the author's own site is unreachable fro local-only dormant freeware M
dxhd (dakyskye) legacy X11 hotkey daemon whose config is a shell script. local-only dormant 100 GPL-3.0 M
EASTIN (European Assistive Technology Information Network) legacy Federated European assistive-product database aggregating national AT registries under an ISO 9999 classification. unknown active EU-funded netw L
Edge-endpoint proxies on Cloudflare Workers (DIYgod/cloudflare-e legacy Serverless relays that expose the Edge Read Aloud endpoint (often in an OpenAI-compatible shape) from a Worker, mainly to route around region blocks a cloud-API ? 199 see repos ?
Emmabuntüs accessibility work legacy A Linux distribution's accessibility programme, integrating screen-reading and speech synthesis choices at distro level. local-only ? open (distro) L
Envision Glasses (Envision, on Google Glass Enterprise Edition 2 legacy Head-worn camera reader built on discontinued Google hardware — Instant Text, Scan Text and Batch Scan, plus an LLM question-answering mode over what hybrid commercial-l Hardware purch M
Explain Code Audio (JetBrains Marketplace plugin) legacy JetBrains IDE plugin that explains selected code and plays the explanation back as text-to-speech audio. unknown ? Not verified L
Faster Text-to-Speeches: Enhancing Blind People's Information Sc legacy Experiment comparing raising the speech rate of one voice against running two or three voices at once, to find which lets a listener scan faster witho local-only dormant n/a (study) M
Foliate (johnfactotum/foliate) legacy GTK e-book reader for Linux whose read-aloud is delegated to speech-dispatcher with output modules such as espeak-ng. local-only ? 8614 GPL-3.0 M
Freedom Scientific RUBY 10 HD Speech (Vispero) legacy Handheld video magnifier with an OCR speech mode — magnification first, reading aloud second. local-only commercial-l Commercial har L
GNOME Shell issue #5559 - "Select to speak a specific UI element legacy Open upstream feature request from a visually impaired user asking GNOME for select-to-speak with word highlighting and a Ctrl-to-stop key. local-only active n/a M
GNOME Speaks legacy GNOME Shell extension adding dictation and 'text-to-speech readback' powered by Azure Speech Services, wired through a D-Bus service to a four-project cloud-API active 1 GPL-3.0 M
Google Chrome — Listen to this page / Reading mode (built-in) legacy/ext Chrome's own read-aloud: 'Listen to this page' on Android and a listen control inside desktop Reading mode, with text highlighting and auto-scroll. hybrid ? Proprietary (b V
Google Docs — Accessibility > Speak > Speak selection (built-in) legacy Google Docs can speak the current selection via the Accessibility menu, once screen-reader support is enabled in the document. hybrid ? Proprietary (G L
Grid 3 (Smartbox / thinksmartbox) legacy Windows AAC (augmentative and alternative communication) application with a Computer Control feature for driving the whole desktop, and a speech layer hybrid commercial-l proprietary, c L
Guidepup legacy Screen-reader DRIVER for test automation — programmatically drives VoiceOver and NVDA from Node.js and captures what they speak. local-only ? 500 MIT L
Guidepup Playwright legacy Playwright integration for the Guidepup screen-reader automation library. local-only ? 80 MIT L
Harpo Software / Speech2Go (harposoftware.com) legacy A live retail counter for Nuance and IVONA desktop voices — the channel that still sells voices whose original vendors have shut their own doors. local-only commercial-l Per-voice prop M
hkd (aaronamk) legacy Display-server-agnostic hotkey daemon; README: 'Works in Xorg, Wayland, and the TTY (using libevdev)'. Requires adding your user to the input group. local-only active 25 MIT M
Hui & Godfroid (2025) — 'Listening, Reading, or Both? Rethinking legacy Registered report testing whether reading while listening improves comprehension; it found the opposite of its own preregistered hypothesis. unknown active open access M
HumanWare Victor Reader Stream 3 legacy Tactile-keypad DAISY/audio player with on-device TTS for text files — you load content into it; it has no camera and no view of your computer. hybrid commercial-l Commercial har M
hyprland-global-shortcuts-v1 (Hyprland Wayland protocol) legacy Hyprland's own Wayland protocol for global shortcuts, used underneath its GlobalShortcuts portal backend; a registered shortcut appears in `hyprctl gl os-native active L
Interaction Proxies for Runtime Repair and Enhancement of Mobile legacy Strategy that inserts a proxy between an application's real interface and the interface a person perceives, so a third party can re-map an interaction local-only dormant research proto M
ISO/IEC 13066 family — 'Information technology — Interoperabilit legacy The international standard family that defines what an application must expose so an assistive technology can read it — Part 1 the general requirement unknown active paid standard L
iSpeak It (ZappTek) legacy Mac utility (2004-2006 era) that turned documents, web pages and RSS feeds into MP3/AAC tracks in iTunes using Mac OS X's own text-to-speech, with a r local-only discontinued proprietary sh M
J-Say and J-Dictate (Hartgen Consultancy) legacy Commercial JAWS scripting products that bridge JAWS with Dragon speech recognition so a blind user can dictate and hear results; listed for DSA fundin local-only commercial-l Commercial add M
Jump Desktop (RDP, VNC, Fluid) legacy macOS/iOS/Android remote-desktop client supporting RDP, VNC and its own 'Fluid Remote Desktop' protocol; its own support article confirms the client r hybrid commercial-l proprietary (p M
kaccessible (KDE) legacy Historical KDE QAccessibleBridgePlugin providing focus tracking and a screen reader inside the Qt accessibility bridge; superseded when the bridge mov local-only discontinued 4 LGPL M
KDE Discuss t/18444 - "Method to trigger speech dispatcher to re legacy Jul 2024 KDE thread asking exactly the project question - Meta+Space passing the selection to spd-say - and receiving no reply at all. local-only dormant n/a M
KDE Klipper D-Bus clipboard read (qdbus org.kde.klipper /klipper legacy A Russian-language Linux forum thread on reading the primary selection under Wayland; the poster reports reading the buffer straight out of Klipper ov local-only unknown n/a L
KDE post-Jovie speech story (QtSpeech + Okular + KMouth + spd-sa legacy Jeremy Whiting's 2021 statement of what replaced Jovie on KDE, verbatim: notifications go through QtSpeech via each application's notification configu local-only active M
Keelor, Creaghead, Silbert, Breit & Horowitz-Kraus (2023) — 'Imp legacy Five-condition experiment separating the effect of text-to-speech itself from the effect of one of its presentation features — synchronised word highl unknown active paywalled (Spr M
Kindle device text-to-speech (2009-2013 era) and its VoiceView s legacy Amazon shipped read-aloud on Kindle e-readers from 2009, removed it from later hardware, then reintroduced audio only through a separately purchased U hybrid active proprietary, d M
kokoro-tts-chrome-extension (paul-rinaldi) legacy Chrome extension wiring the Kokoro TTS model into the browser (no description or license published). unknown ? 0 none declared L
KWtype legacy 'Virtual keyboard input tool for KDE Wayland' - the KWin-specific answer where wtype's wlroots protocol is unavailable. local-only active 5 MIT M
lectern (Acumane) legacy Listen to PDFs with natural TTS and read-along text prompts. local-only ? 11 see repo L
Lecteur PDF accessible (RGAA Checker) legacy Free in-browser accessible PDF reader with reflowable text, dyslexia-friendly typography profiles, OCR for scanned documents, dual view and annotation unknown ? free (terms un L
Lectura (Dolphin service menu, espeak) legacy Named by a KDE Discuss responder as 'a dolphin service menu called lectura that uses espeak to speak text from a file using the context menu'. local-only active n/a L
lefthk (leftwm) legacy Hotkey daemon in Rust from the LeftWM project. local-only active 29 Rust M
Loquendo TTS Director legacy The Java, multi-platform, client-server prompt-authoring suite inside the Loquendo TTS SDK - a listen-and-edit tool for tuning recorded-sounding promp local-only discontinued proprietary, p M
Markdown Read Aloud (Robin-Reiche/markdown-read-aloud) legacy VS Code extension that renders a Markdown file as a reader view and speaks it with Edge neural voices, highlighting the spoken sentence and auto-scrol cloud-API ? 3 MIT M
Markit and Talkit — Shi, Zhao & Azenkot, UIST 2017 legacy Toolkit pair for attaching audio annotations to 3D-printed models: a sighted maker marks regions and writes text, then a blind user touches the printe local-only dormant research proto M
Mayari (BoltzmannEntropy) legacy Native macOS document read-aloud and audiobook workspace for PDF, DOCX and EPUB. local-only ? 5 see repo L
Microsoft Agent legacy The animated-character runtime that gave a generation of Windows apps a speaking assistant over SAPI 4; Microsoft's own support article states it 'has os-native discontinued proprietary, b M
Microsoft Reader (.lit) legacy Microsoft's pre-Kindle ebook reader for PC and Pocket PC, whose PC version carried an optional text-to-speech plug-in; announced for discontinuation i local-only discontinued proprietary, f M
Microsoft Speech API 4 (SAPI 4) as a substrate legacy The 1998 speech interface that every Windows reader in this historical set was built on, and the reason so many of them are unusable today - modern sc os-native discontinued proprietary, p M
Microsoft Word / Outlook / PowerPoint / OneNote — Speak and Read legacy Office ships two distinct features: Speak reads only the text you select; Read Aloud reads the whole document from the cursor with a floating player. os-native ? Proprietary (M V
MorseWriter / EyeCommander / FaceCommander (AceCentre) legacy Alternative-input assistive tools from the same charity: eye-movement tracking, facial-gesture control, and Morse-to-text entry. local-only ? 58 open source (A L
MS-RDPEA — Remote Desktop Protocol: Audio Output Virtual Channel legacy Microsoft's published RDP audio channel spec, described as the extension 'which transfers audio data from the server to the client' [measured] — the d unknown active Microsoft Open M
MS-RDPECLIP — Remote Desktop Protocol: Clipboard Virtual Channel legacy Microsoft's published RDP clipboard channel spec; abstract reads 'enables users to seamlessly transfer data via the system clipboard between applicati unknown active Microsoft Open M
MsEdgeTTS (Migushthe2nd) legacy Node/TypeScript client for the same Edge Read Aloud endpoint, for stacks that cannot shell out to Python. cloud-API ? 335 see repo ?
neoreader legacy Screen reader for Neovim that reads code with language-aware structure, including infix operators in Haskell/Scala and Python AST analysis. local-only ? 29 see repo L
neru (y3owk1n) legacy Navigate your entire screen without touching the mouse. local-only ? 565 see repo L
NextUp — Cerence voice store (for TextAloud) legacy Cerence Vocalizer Embedded voices sold per-voice to consumers, with the catch that they are locked to NextUp's TextAloud application. local-only commercial-l Proprietary, p M
Nova (bigduu) / Screenhand / Orbination Desktop Vision legacy A cluster of MCP servers giving an LLM agent eyes and hands on the desktop — screenshots, Apple Vision or Windows OCR, UI Automation trees, and mouse/ hybrid ? 15 varies L
obsidian-speechify-reader (TheShiningVampire) legacy Obsidian plugin that hands the current note to the Speechify browser extension — Alt+A to listen, Alt+S to save to the Speechify library — with no API cloud-API ? 0 MIT V
obsidian-tts-kokoro (yuengling) legacy Fork of joethei's Obsidian Text to Speech plugin retargeted at the Kokoro model. unknown ? 0 GPL-3.0 D
obsidian-tts-reader (10x-oss) legacy Obsidian plugin that reads Markdown notes aloud starting from the current cursor position. unknown ? 0 MIT V
OCR - Image Reader (Chrome extension) legacy Chrome extension using tesseract.js to recognize text in images on a page, injecting the library on demand and removing it afterwards. local-only ? not verified V
Odiofy legacy Named in one r/accessibility comment as 'a decent app which is free and can be downloaded and installed on your local machine'; I could not verify a p unknown unknown unknown L
openai-edge-tts (travisvn) legacy A local server that speaks the OpenAI /v1/audio/speech protocol but synthesises through the free Edge Read Aloud endpoint - a drop-in shim that makes hybrid ? 2 GPL-3.0 M
opendataloader-pdf legacy Open-source PDF parser producing AI-ready structured data, with automated PDF accessibility remediation. local-only ? 28 open source (s L
OpenGuider legacy Desktop AI companion that watches the screen, listens to the user's voice, and guides them step by step with spoken actions. hybrid ? 164 unknown L
OpenReader (richardr1126/openreader) legacy Self-hostable Next.js read-along document reader for EPUB/PDF/DOCX/TXT/MD with word-by-word highlighting derived from Whisper alignment, plus audioboo hybrid ? 489 MIT M
OpenWebTTS legacy Self-described open-source Speechify alternative: read PDFs and EPUBs with local models. local-only ? 68 MIT L
Optelec ClearReader+ (Basic / standard / Advanced) — Vispero legacy Portable platen-camera reading machine: press one button, it photographs the page and reads it aloud; the Advanced model drives an external monitor so local-only commercial-l Commercial har M
OrCam Read 3 legacy Handheld AI reading device: point it at printed or digital text — including a computer screen — press the button, and it reads aloud from that point; local-only unknown commercial V
OrCam Technologies — vision product line (MyEye, MyReader, Read legacy The vendor behind OrCam Read closed its entire low-vision division in July 2024 and pivoted to hearing; a purchase decision here is a decision about a local-only discontinued n/a M
org.freedesktop.portal.GlobalShortcuts legacy The D-Bus portal interface (documented at version 2) through which a Wayland application registers shortcuts that fire 'regardless of the focused stat os-native active M
[OSC 52 clipboard escape sequence (ESC ] 52 ; c ; base64)](https://terminfo.dev/extensions/osc-52-clipboard) legacy A terminal escape sequence that lets a program inside a remote session write to (and optionally read) the LOCAL terminal's system clipboard; the refer local-only active n/a — a contro M
Overlay Translator legacy No-root Android real-time screen translator: OCRs the screen (on-device or cloud), translates, overlays the result in place, and can speak it via TTS. hybrid ? 518 Apache-2.0 L
phonemizer.js legacy eSpeak NG phonemization in JavaScript. local-only ? 49 Apache-2.0 M
Pied legacy Flutter desktop GUI that installs and configures Piper as a Speech Dispatcher back-end on Linux, then downloads and manages voices for it. local-only active 290 GPL-3.0 M
Piper Reader for Obsidian (dCO2/obsidian-piper-reader) legacy Obsidian plugin that POSTs the selected text to a local Python bridge which drives Piper in Docker over Wyoming TCP and plays the returned WAV. local-only ? 0 none declared M
pocket-tts-browser-extension (hiCozyty) legacy Browser extension front-ending the Pocket TTS engine, claiming ultra-fast free synthesis. unknown ? 0 MIT L
Prefab layers and prefab annotations — Dixon et al., UIST 2014 ( legacy Extension of the Prefab pixel-reverse-engineering line adding layered interpretation and annotation of recognised interface structure. local-only dormant research proto L
Prefab: Implementing Advanced Behaviors Using Pixel-Based Revers legacy System that recognises widgets from the pixels a toolkit painted, so behaviours can be added to applications built with any toolkit on any windowing s local-only dormant research proto M
primary-selection-unstable-v1 (Wayland protocol) legacy The Wayland protocol that carries the X11-style PRIMARY (highlight) selection. Its compositor coverage is far wider than data-control's, but it is a n os-native active MIT (Red Hat) M
PRISM (ethindp/prism) legacy Platform-agnostic Reader Interface for Speech and Messages — one API that refracts a string out to whichever screen reader or TTS backend is present, local-only active 58 MPL-2.0 M
pulseaudio-network (ferdiu) legacy 'A simple client-server program to easily share TCP pulseaudio sinks over the network' [vendor], packaged as RPM and DEB. local-only active 0 MIT M
pwWebSpeak (The Productivity Works, later isSound) legacy 1996 non-visual browser built on 'first order design' - HTML converted straight to structured audio via a rule base (the Tag Language Definition), byp local-only discontinued proprietary co M
python-global-shortcut-portal (marvin1099) legacy Pure-Python client for org.freedesktop.portal.GlobalShortcuts; description states it 'Lets any application register and receive global keyboard shortc local-only active 0 AGPL-3.0 M
qt_wayland_globalshortcut_via_portal (slbtty) legacy Minimal Qt demonstration of registering a global shortcut on Wayland through the GlobalShortcuts portal. local-only dormant 1 M
rclipd (pmkap) legacy Clipboard-manager daemon targeting compositors that implement ext/wlr-data-control. local-only active 0 none M
RD Pipe (rd_pipe-rs) legacy 'Windows Remote Desktop Services Dynamic Virtual Channel implementation using named pipes, written in Rust' [vendor] — the library the NVDA rdAccess a local-only active 9 AGPL-3.0 (as r M
react-speech-highlight (albirrkarim) legacy React / vanilla-JS text-to-speech component that highlights the word and the sentence currently being spoken — the reusable implementation of the kara hybrid ? 188 unknown M
read-aloud-best-practices (Readium) legacy Documentation project recording best practices for implementing a read-aloud feature in reading apps. unknown ? 14 see repo L
read-aloud-local legacy Repository named read-aloud-local; carries no description or README summary. unknown ? 6 MIT L
read-aloud.el (gromnitsky) legacy Emacs package that speaks the word at point, the selected region, or the whole buffer through an external CLI TTS engine such as speech-dispatcher or local-only ? 35 MIT M
Read-It-Out (Spartan-71) legacy Reads any webpage or article aloud with natural AI voices. hybrid ? 2 see repo L
ReadEasy Evolve / Evolve ECO / Evolve MAX (VisionAid; sold by Hu legacy The other current standalone reading-machine family: fold-out camera arm over a document, one button, reads aloud — ECO is A4/13 MP, MAX is A3/18 MP. local-only commercial-l Commercial har V
Readest (readest/readest) legacy Cross-platform modern e-book reader with multilingual TTS and read-along narration that highlights text in step with EPUB 3 Media Overlays. hybrid ? 23223 AGPL-3.0 M
reading-for-listeners legacy Deep-learning accessibility application that turns PDFs into audio files, with OCR improvement and inflection-aware TTS. local-only ? 25 AGPL-3.0 L
Readiris Pro (IRIS / Canon) legacy Commercial OCR package on the DSA approved list, used to turn scanned or photographed print into text that a separate reader then speaks. local-only commercial-l Commercial; DS M
readium/speech legacy TypeScript library for implementing read-aloud on the Web, from the Readium ebook-standards project. local-only ? 21 see repo L
ReadSpeaker legacy Commercial text-to-speech service, largely sold to publishers to add read-aloud to their own websites and products. cloud-API ? Proprietary, c L
remiforall/dys-play legacy French PWA reading aid for dyslexic users combining local OCR, speech synthesis, adapted fonts and a stated zero-data-collection design. [lang: French local-only active 0 AGPL-3.0 M
Remmina legacy GTK remote-desktop client for RDP, VNC, SPICE, X2Go, SSH and plain HTTP; its RDP plugin carries a clipboard structure (rf_clipboard) in the published local-only active GPL-2.0-or-lat M
RFB / RFC 6143 ServerCutText + Extended Clipboard pseudo-encodin legacy The VNC wire protocol carries selection text, not only pixels: RFC 6143 section 7.6.4 ServerCutText says 'The server has new ISO 8859-1 (Latin-1) text unknown active IETF RFC (Info M
Rhasspy (v2) and Rhasspy 3 legacy 'Offline private voice assistant for many human languages' [vendor] — carried an HTTP TTS API alongside STT and intent handling; the v3 rewrite is a s local-only archived 2 MIT M
Robust Annotation of Mobile Application Interfaces in Methods fo legacy Methods for identifying the same screen and the same element across app versions, so accessibility annotations attached by third parties survive inter local-only dormant research proto M
Saladict / 沙拉查词 · 沙拉翻译 · Read Frog 陪读蛙 · DualRead legacy Chinese-market select-a-word dictionary and translation extensions covering 中英日韩法德西 with pronunciation playback; the reading is a pronunciation featur hybrid active mixed L
Say It legacy Free browser page that OCRs an uploaded or drawn image and speaks the recognized text. local-only ? not verified V
Scanning for Digital Content: How Blind and Sighted People Perce legacy Journal extension testing the concurrent-speech scanning result across both blind and sighted listeners. local-only dormant n/a (study) M
Scanning Pens Ltd legacy The distributor that puts C-Pen hardware into UK/EU/US schools and workplaces — the reason C-Pen appears under several storefront names. unknown commercial-l n/a L
Screen Point-and-Read (Tree-of-Lens agent) legacy Research system for the 'ScreenPR' task: given a screenshot and a point the user indicates, a multimodal LLM agent reads out the content at that point local-only ? 31 see repo M
Screen Point-and-Read / Tree-of-Lens (ToL) agent — Fan et al., a legacy Research system defining the 'ScreenPR' task — given a screenshot plus a point the user indicated, generate a spoken-style description of the content hybrid dormant 31 see repo M
Screen Recognition: Creating Accessibility Metadata for Mobile A legacy On-device model that detects UI elements from an iOS app's rendered pixels and generates accessibility metadata to feed VoiceOver where the app suppli local-only active not released ( M
Screen2AX — Muryn et al., arXiv:2507.16704 (MacPaw) legacy Framework that builds a tree-structured macOS accessibility hierarchy from a single screenshot using vision-language and object-detection models, to s local-only active 32 see repo M
ScreenTrack — Hu & Lee, CHI 2020 legacy Software that screenshots the computer at regular intervals and turns the capture history into a time-lapse the user scrubs to find and re-open a docu local-only dormant research proto M
SelectON (emvaized/selecton-extension) legacy Browser extension for Chrome and Firefox that shows a configurable popup with actions whenever text is selected on a page. local-only active 128 NOASSERTION M
selsync (Stoica-Mihai) legacy C daemon that mirrors PRIMARY into CLIPBOARD by speaking ext-data-control-v1, wlr-data-control v2 or X11 XFIXES directly (no wl-copy/xclip subprocess) local-only active 0 MIT M
shotkey (phenax) legacy Small X hotkey daemon with modes and key chords. local-only active 47 MIT M
Sikuli — Yeh, Chang & Miller, UIST 2009 legacy Search and automation of graphical interfaces by screenshot: take a picture of a button or icon, and use that image both as a help-system query and as local-only dormant research relea M
Slide Rule — Kane, Bigham & Wobbrock, ASSETS 2008 legacy Audio-based multi-touch interaction techniques that made a touch screen usable without sight — the ancestor of the touch-explore-then-confirm pattern local-only dormant research proto M
speakable (tollwerk) legacy Simple, privacy-friendly on-page screen-reader / TTS player built on the native browser Web Speech API. local-only ? 24 see repo L
speakers (OneNoted) legacy Local Linux TTS daemon plus a Speech Dispatcher bridge built on Qwen3-TTS, in Rust; targets Hyprland/niri/Wayland. local-only ? 3 none declared M
Speech Dispatcher network mode (SPEECHD_ADDRESS=inet_socket:HOST legacy The shipped spd-say man page documents 'SPEECHD_ADDRESS ... specifies TCP endpoint where speech-dispatcher is listening and to which spd-say should co local-only active GPL-2.0-or-lat M
Speech Kit for Obsidian (brittain9/speech-kit-obsidian-plugin) legacy Combined dictation, transcription, translation and note-listening plugin for Obsidian with a managed local model catalog (formerly Local Dictation). hybrid ? 11 MIT M
SpeechCore / UniversalSpeech / Tolk legacy Three older screen-reader abstraction libraries — the prior art that PRISM sets out to unify, still embedded in many accessible games and apps on Wind local-only dormant 104 varies per pro L
speechd-el (brailcom/speechd-el) legacy Emacs speech and Braille output interface that routes Emacs output to Speech Dispatcher. local-only ? 16 GPL-3.0 M
Speechify legacy/mac Commercial cross-platform reading product (web, mobile, browser extension) with an OCR path for scanned/printed text. cloud-API ? Proprietary, f L
speechify.nvim (HmZyy) legacy 'speechify powered text-to-speech inside Neovim' [vendor, repo description] — editor-scoped read-aloud for the current buffer/selection. hybrid active 1 not read V
SPICE VD_AGENT clipboard (spice-vdagent agent protocol) legacy SPICE's guest-agent protocol carries clipboard text both ways with a symmetric GRAB / RELEASE / REQUEST / CLIPBOARD message set, VD_AGENT_CLIPBOARD_UT unknown active SPICE project M
splash-damage (insidewhy) legacy Keyboard remapper daemon for Wayland via evdev/uinput with per-app exclusions. local-only active 0 none M
Stormux (Linux for the blind on Raspberry Pi) legacy Accessible Linux distribution for Raspberry Pi presented at a German accessibility event; a sibling of the accessible-distro class already catalogued local-only unknown open source L
SUGILITE — Li, Azaria & Myers, CHI 2017 legacy Programming-by-demonstration system that automates arbitrary Android apps through the accessibility API, generalising a script from a single spoken co local-only dormant research proto M
sxhkd (baskerville) legacy X11 hotkey daemon: binds chords to shell commands via XGrabKey. X11 only. On Wayland it has no equivalent grab, which is the constraint recorded in th local-only active 2951 BSD-2-Clause M
Tailo legacy Study-support tool carried on the DSA approved list in two categories, OCR and Research. cloud-API commercial-l Commercial sub L
Talkify legacy JavaScript text-to-speech library with text highlighting, for embedding reading into web pages. hybrid ? 240 none declared M
Task Mode: Dynamic Filtering for Task-Specific Web Navigation us legacy System that uses an LLM to filter a web page down to the elements relevant to a stated goal, so a screen-reader user does not traverse minutes of irre hybrid active unknown M
tesseract.js legacy Pure-JavaScript/WASM OCR for 100+ languages; the engine behind browser and Electron OCR tools such as scr-ocr. local-only ? 39 Apache-2.0 M
Text-to-speeches: Evaluating the Perception of Concurrent Speech legacy Earlier experiment in the same line, testing whether blind listeners can pick out the relevant channel among two, three or four simultaneous speech st local-only dormant n/a (study) M
Texthelp OrbitNote legacy Browser-based PDF workspace from Texthelp with read-aloud and annotation, bundled on the DSA list alongside EquatIO. cloud-API commercial-l Commercial sub M
Texthelp ReachDeck (formerly Browsealoud) legacy Website-owner-deployed accessibility toolbar that speaks page content to visitors; the reading capability is bought by the site publisher, not install cloud-API commercial-l Commercial sub M
TextyMcSpeechy legacy Toolkit for training custom Piper voice models from your own recordings or RVC voices, offline and even on a Raspberry Pi. local-only ? 697 see repo L
The accessibility of digital technologies for people with visual legacy Scoping review of first-hand accessibility experiences of blind and visually impaired users of digital technology, organised against the WCAG guidelin unknown active open access (C M
The Impact of Element Ordering on LM Agent Performance — Zhang e legacy Study of how much the ORDER in which on-screen elements are presented matters when an agent has only pixels and no hierarchy to inherit an order from. unknown active unknown M
The State of Modern AI Text To Speech Systems for Screen Reader legacy First-hand January 2026 evaluation by a screen-reader user who built NVDA add-ons for Supertonic and Kitten TTS and documents why modern neural TTS fa local-only ? CC0 1.0 M
Thorium Reader (edrlab/thorium-reader) legacy/mac/lin Cross-platform Readium-based EPUB reading app whose stated accessibility approach is to work WITH NVDA, JAWS or Narrator rather than to embed its own local-only ? 2818 BSD-3-Clause M
Thunder-RJ (RJ Cooper & Associates) legacy Rebadged distribution of the free Thunder Windows screen reader offered by a US assistive-technology reseller. local-only active Free/low-cost M
TTS Arena V2 (TTS-AGI) legacy Crowd-sourced blind A/B benchmark for TTS models with an Elo leaderboard, on Hugging Face Spaces. cloud-API ? see Space M
tts-wrapper (willwade) legacy Unified Python interface over many online and offline TTS engines, with a documented feature matrix covering streaming and word-boundary events per en hybrid ? 39 MIT M
TTSReader for Obsidian (sundy-li/obsidian-ttsreader) legacy Obsidian plugin that reads the selection, the current note, or pasted text, with a 'Read the selected text' command in the palette and the editor righ hybrid ? 0 MIT M
TTSVoicesAvailable (AceCentre) legacy Small API (plus a Streamlit front-end) that enumerates the TTS voices available across providers, including offline voices. hybrid ? 1 open source (A L
Understanding Blind and Low Vision Users' Attitudes Towards Spat legacy Formative study with a custom desktop screen reader that adds spatial input and output to web navigation, and a report on how blind and low-vision use local-only dormant research proto M
US state AT Act lending-library catalogues (TechOWL/myatprogram, legacy Network of state Assistive Technology Act programmes that lend software and devices for trial before purchase; TechOWL alone states its Pennsylvania l unknown active US government- L
vim-oscyank legacy 'A Vim plugin to copy text through SSH with OSC52' [vendor] — makes an editor yank inside a remote session land on the local clipboard. local-only active 740 BSD-2-Clause M
vim-piper legacy Vim plugin that speaks buffer or selected text through Piper. local-only ? 29 see repo L
Virtual Screen Reader (guidepup) legacy A simulated screen reader implemented in JavaScript for unit-testing accessibility, with no real assistive technology involved. local-only ? 400 MIT L
VizLens — Guo et al., UIST 2016 legacy Mobile application that lets a blind user photograph a physical interface (microwave, kiosk, thermostat), has crowd workers label it once, then speaks hybrid dormant research proto M
VMware / Omnissa Horizon clipboard redirection (client-side bloc legacy Horizon's client GPO catalogue exposes a setting described as 'Whether block clipboard redirection to client side when client doesn't support audit' — unknown commercial-l proprietary (O L
Voicing (ainure-git/voicing) legacy VS Code extension that reads SELECTED TERMINAL OUTPUT aloud at ~2x with pause/stop, using the OS local voice, plus dictation into the terminal. os-native ? 1 MIT M
Vorleser XL (in-media KG / MEDIAKG) legacy German commercial Vorleseprogramm marketed for reading PDF, Word, ePub, web pages, e-mails and plain text and for converting them to MP3; a distributo local-only commercial-l proprietary V
VSCode Read Aloud Text (azu/vscode-read-aloud-text) legacy VS Code extension that speaks the whole document, from the cursor, or just the selection, using OS TTS, and highlights the text currently being read. os-native ? 15 MIT M
Wayland cross-application selection read - the privileged-operat legacy On Wayland, reading another application's selection from a background process is a privileged operation, not a normal one. wl-clipboard's man page BUG os-native active M
wayland-clipboard-listener (Decodetalkers) legacy Rust library and CLI that emits an event on every Wayland clipboard or PRIMARY change via the data-control protocols. local-only active 15 GPL-3.0 M
web-speech-recommended-voices (Readium) legacy Curated data set of recommended voices for the Web Speech API, per language and platform. local-only ? 65 see repo L
WebAnywhere — Bigham, Prince & Ladner, W4A 2008 legacy Screen reader that ran inside the browser with nothing installed on the machine, so a blind user could get speech on a computer that was not theirs. hybrid dormant open-source re M
What Frustrates Screen Reader Users on the Web: A Study of 100 B legacy Survey and time-diary study of what actually goes wrong for screen-reader users, and how much of their working time it costs. unknown dormant n/a (study) L
Windows App (Microsoft) — macOS client, formerly Microsoft Remot legacy/win/web Microsoft's own cross-platform feature matrix marks 'Clipboard - bidirectional' supported on macOS and describes it as 'Redirect the clipboard on the hybrid commercial-l proprietary (f M
Wisp AI Assistant (SunnyLich) legacy 'Wisp - A hotkey-driven AI overlay for your desktop. Press a key, pick an intent, and Wisp reads the right context, then streams an answer' [vendor, r hybrid active 8 not read V
wl-clipboard-rs (YaLTeR) legacy Rust reimplementation of the wl-clipboard logic as a library plus wl-clip-persist-style binaries; speaks the data-control protocols directly instead o local-only active 507 Apache-2.0 M
wlr-data-control-unstable-v1 (Wayland protocol) legacy The wlroots-originated predecessor of ext-data-control, same purpose (privileged clipboard/PRIMARY read by an unfocused client); still the version man os-native active MIT-style (pro M
Wood, Moxley, Tighe & Wagner (2018) — 'Does Use of Text-to-Speec legacy Meta-analysis of studies testing whether text-to-speech and read-aloud tools improve reading comprehension for students with reading difficulties. unknown active paywalled (SAG M
wtype legacy 'xdotool type for wayland' - the wlroots-compositor route for synthetic typing, named as the sway/Hyprland option in Handy's paste-methods documentati local-only active 549 MIT M
Wyoming protocol (OHF-Voice/wyoming, formerly rhasspy/wyoming) legacy 'Peer-to-peer protocol for voice assistants' [vendor] — a JSONL-over-TCP framing used to expose TTS (and STT/wake-word) services as network endpoints local-only active 387 MIT M
wyoming-satellite legacy 'Remote voice satellite using Wyoming protocol' [vendor] — a thin networked audio endpoint that plays synthesised speech on a device separate from the local-only archived 1 MIT M
wyoming_openai legacy 'OpenAI-Compatible Proxy Middleware for the Wyoming Protocol' [vendor] — bridges Wyoming clients to any OpenAI-shaped speech endpoint. hybrid active 204 Apache-2.0 M
xdg-desktop-portal-cosmic legacy Per-compositor portal backend for COSMIC. Its src/ directory contains access.rs, app.rs, buffer.rs, documents.rs, file_chooser.rs, screencast.rs and s os-native active 102 M
xdg-desktop-portal-gnome legacy Per-compositor portal backend for GNOME / Mutter. GlobalShortcuts is tracked as work item 47 in the GNOME GitLab project; a GNOME Discourse thread sta os-native active L
xdg-desktop-portal-hyprland legacy Per-compositor portal backend for Hyprland. Its src/portals directory contains GlobalShortcuts.cpp, InputCapture.cpp, Screencopy.cpp and Screenshot.cp os-native active 473 M
xdg-desktop-portal-kde legacy Per-compositor portal backend for KDE Plasma / KWin. Its src/ directory contains globalshortcuts.cpp, inputcapture.cpp, remotedesktop.cpp, screencast. os-native active 83 M
xdg-desktop-portal-lxqt legacy Per-compositor portal backend for LXQt. Interface coverage not inspected. os-native active 31 L
xdg-desktop-portal-wlr legacy Per-compositor portal backend for wlroots compositors (Sway, river and relatives). Its README states 'Currently it only implements the following porta os-native active 725 M
xdotool (jordansissel) legacy X11 fake keyboard/mouse input and window management; the tool a shell-script selection reader uses to synthesise Ctrl+C. local-only active 3837 BSD-3-Clause M
Xpra (persistent remote applications for X11; shadow mode for X1 legacy Remote-application/screen-sharing system whose usage docs list clipboard and audio as independently switchable forwarded features, with documented inv local-only active 2 GPL-2.0 M
XuGaoFeng-Victor/mcp-point-reader legacy An MCP server that captures text via the clipboard and screenshots and offers translation and text-to-speech over it. [lang: Chinese + English descrip hybrid unknown 2 unknown L
Zoomax low-vision devices with OCR read-aloud legacy Chinese low-vision magnifier maker whose devices include an OCR-to-speech function; the budget end of the reading-hardware market. local-only unknown Commercial har L
Zotero TTS Reader (zcyisiee/zotero-tts-reader) legacy Zotero 7 plugin that speaks text you select in Zotero's PDF reader through the OpenAI TTS API, with citation stripping and a side-panel player. cloud-API ? 5 none declared M
Zotero-TTS-Plugin (Echo-Lian) legacy A second, separate Zotero plugin adding a TTS function to the reference manager. unknown ? 0 none declared L
Edge read-aloud endpoint reuse cluster (CN): guozhigq/ReadAloud web/win/mac/lin Chinese-language projects that wrap Microsoft Edge's 大声朗读 speech endpoint: a PWA front end (138 stars), a Cloudflare-Workers/Vercel/Docker HTTP forwar cloud-API active 229 mixed open sou M
Speechify / ElevenReader / Matter / VocalVia / Readox (Product H web Product Hunt's text-to-speech category page as captured in round 1, naming eight commercial products (ElevenLabs, Murf AI, Matter, VocalVia, Cartesia, unknown unknown n/a (directory L
vocodex (C043) web Work-in-progress self-hostable TTS client, surfaced by a 'like Speechify' README search. local-only dormant 22 MIT L
a-haute-voix (LaPelle) ? French accessibility tool described as extracting text from a PDF and re-rendering it for easier reading. unknown unknown 0 unknown L
TuxReader (Savannah) ? Savannah non-GNU project registered as 'TuxReader'; name and hosting confirmed by the Savannah software search, description not retrievable in this pa unknown unknown unknown L

Catalogue — Reads the screen or the selection — owns acquisition and a human trigger

448 entries. Evidence tier: M measured (source read) · V vendor claim · L lead, unverified · D derived.

Acq = acquisition mechanism. Clipboard = does reading a selection clobber your clipboard. Superlatives appearing in these cells sit inside attributed quotations; the catalogue does not rank.

Tool Plat Acq Clipboard Trigger Runtime Status Stars Licence Ev
Android Select to Speak and AX-sel no 2-finger swipe up (3-finger if Tal os-native active Proprietary; s M
Android TalkBack and follow-focus no install the APK, then toggle the T os-native active 512 Apache-2.0 M
ChromeOS Select-to-speak and Android Select to Speak and AX-sel no Select-to-Speak button in the stat os-native active proprietary (b V
Jieshuo (Commentary) screen reader and OCR-full ? touch gestures on the Android devi hybrid commercial-l proprietary, f V
Lector (diet103) and OCR-region no 'Read aloud (Lector)' in the selec hybrid active 0 Apache-2.0 M
orionAIScreenReader and OCR-full no floating 'Read Screen' button over cloud-API active 16 MIT M
Sonata (Arkadia-Oversoul-Prism) and AX-sel no the Android system text-selection local-only active 0 none declared M
SpeakTouch and follow-focus no enabled once as an Android accessi os-native active 9 GPL-3.0 M
Talk Forward (Yannick Plassiard) and follow-focus no explore-by-touch plus one- and two local-only active 1 proprietary — M
Talk Forward (Yannick Plassiard) and follow-focus no ? local-only active free V
TalkBack (DivestOS / divested-mobile fork on Codeberg) and follow-focus no Android accessibility-service gest os-native archived 2 not set on the M
TalkBack FOSS (talkback-foss-team) and follow-focus no Android AccessibilityService - exp local-only active 35 Apache-2.0 M
TTS Util (drmfinlay) and clip-watch no launcher shortcuts and in-app butt local-only active 191 Apache-2.0 M
TTS Util (F-Droid) and clip-watch no In-app buttons for retrieving comm local-only active 191 Apache-2.0 M
天坦读屏 (Tatans / Tiantan Screen Reader) and follow-focus ? touch gestures with customisable g local-only active 60,000 proprietary V
点明读屏 / 点明安卓 (Dianming, 深圳点明软件) and follow-focus ? Android accessibility-service gest local-only active Proprietary (f L
샤인플러스 / Shine Plus (에이티랩 / ATLab) and follow-focus ? gesture and physical-key shortcuts local-only dormant 22,800 proprietary V
copy-to-speech Wl/X11 AX-sel no user-assigned desktop keyboard sho local-only active 0 none declared M
GameVox (repository formerly named GameReader) Wl OCR-region no Two human triggers documented: a c local-only dormant 1 none declared M
GameVox / GameReader Wl OCR-region no Configurable gamepad button, or a local-only active 1 no licence fil M
Karrot (KDE Desktop Environment Narrator) Wl OCR-region yes two hotkeys the user binds themsel local-only dormant 0 MIT (GitHub mi M
Narro — Read Selection Aloud Wl AX-sel no Ctrl+\ = --primary (read the prima hybrid active 0 MIT M
read-selection-tts Wl AX-sel no Ctrl+Alt+R read, Ctrl+Alt+S pause, cloud-API active 0 MIT M
Text to Speech - Piper Reader (GNOME Shell extension) Wl clip-watch no Shift+Super+A by default, editable local-only active 0 MIT (stated in M
VocalPlasma Wl AX-sel no Alt+Esc, written into ~/.config/kg local-only active 0 MIT M
wayread-clipboard-speaker Wl clip-watch no speaks automatically on each new c local-only active 0 MPL-2.0 M
AverVOX X11/Wl ? ? Ctrl+Alt+S (read selected text alo local-only commercial-l 0 MIT (free OSS V
clipboard-speaker (GitLab mirrors: kakafarm/clipboard-speaker, y X11 AX-sel no user-assigned desktop keyboard sho local-only archived 0 none declared M
clipboard-speaker / guile-clipboard-speaker (Yuval Langer) X11 clip-watch no a keybinding the user defines in t local-only active 1 unknown — no l M
Crow Translate X11/Wl/win copy-sel yes Global hotkeys: Ctrl+Alt+S speak s cloud-API archived 1982 GPL-3.0 M
Cthulhu (Orca fork) X11/Wl follow-focus no runs continuously as a screen read local-only active 0 LGPL-2.1 (COPY M
diamondburned/clipboard_reader-translator X11 clip-watch no run ./readtrans after copying; t cloud-API dormant 1 none declared M
espeak-scripts (ZarthKa) X11 AX-sel no None shipped - the author states ' local-only dormant 0 GPL-3.0 M
gnome-speak-selection X11/Wl AX-sel no Super+Shift+K speak, Super+Shift+L local-only active 0 MIT M
HockEye (PoeticKiler) X11 OCR-region no Numlock, then drag to select any s local-only active 0 MIT M
lexaloud (Gustavjiversen01) X11/Wl clip-watch no user presses Ctrl+C themselves, th local-only active 0 MIT M
Light Dict (GNOME Shell extension) X11/Wl AX-sel no acts on the primary selection as y local-only active 40 GPL-3.0 M
LightRead X11 AX-sel no Two X11 root-window key grabs regi local-only dormant 0 MIT M
ocrdesktop X11 OCR-region no no built-in hotkey — the manual in local-only active 20 not declared ( M
OCRdesktop X11 OCR-full no The ArchWiki instruction is explic local-only unknown not verified M
Orca X11/Wl follow-focus no keyboard commands built on the Orc local-only active 33 LGPL-2.1 M
Piper Highlight (impermanent-cc/piper_highlight) X11/Wl AX-sel no hotkey that reads the X11/Wayland local-only active 0 NOASSERTION M
PRIMARY-only recipe (xsel | espeak) - clipboard left untouche X11 clip-watch no a desktop keyboard shortcut the us local-only active n/a - this is M
PRIMARY-to-CLIPBOARD bridge recipe (xclip primary -> xclip clipb X11 AX-sel yes a desktop keyboard shortcut whose local-only active CC-BY-SA (answ M
readaloud (StellaTerra) X11/Wl clip-watch no a desktop keyboard shortcut the us local-only active 0 GPL-3.0 M
ReadClip X11 clip-watch no none beyond leaving the script run local-only dormant 1 GPL-3.0 M
ReadClip recipe - xclip -o | espeak on a GNOME custom shortcu X11 AX-sel no a custom keyboard shortcut created local-only active CC-BY-SA (answ M
screenshot-text-to-speech (KDE) X11/Wl OCR-region no Pause/Break key — an Xlib daemon g local-only active 0 MIT M
Select Reader (MaurerKrisztian) X11/Wl AX-sel no a floating play button appears nea local-only active 0 not declared ( M
selection-tts-app (mishrasubhransu) X11 AX-sel no Ctrl+R by default, installed as a cloud-API dormant 0 none declared M
Speak Selection (GNOME Shell extension) X11/Wl AX-sel no Super+Shift+K speaks the selection local-only active 0 MIT M
speak-selection (HyperCactus/speak-selection) X11/Wl/mac/win clip-watch no a shortcut the user creates per pl local-only active 0 MIT M
speak-selection (nico-schluter) X11/Wl AX-sel no No key is bound out of the box. in local-only active 1 MIT M
Speech Note (dsnote) X11/Wl clip-watch no Settings -> Accessibility -> 'Use local-only active 1558 MPL-2.0 M
sttts X11 OCR-region no launch uv run python capture.py, local-only active 2 none declared V
SVaiva/tools — linux/screen-ocr X11/Wl OCR-region yes global hotkeys via the rdev listen local-only active 0 MIT M
tts-reader (dipta10) X11/Wl/win AX-sel no none is shipped — the daemon expos local-only active 14 GPL-3.0 M
tts-reader (mhazoglou) X11 copy-sel yes F9 while the binary is running in local-only dormant 1 none declared M
urxvt-espeak (grepsuzette) X11 AX-sel no automatic on selection by default; local-only dormant 1 none declared M
xsel/xclip + espeak-ng | spd-say one-liner (Linux shell recipe X11 AX-sel yes a custom desktop keyboard shortcut local-only active the article's M
yapper (maelguimet) X11 AX-sel no Super+Shift+S reads the selection local-only active 1 MIT M
Yggdrasil (albertotirla fork of Odilia) X11/Wl follow-focus no resident screen reader driven by k local-only dormant 0 GPL-3.0 D
BRLTTY lin/win/and follow-focus no Buttons and routing keys on the br local-only active 121 LGPL-2.1 M
clipboard-reader (drhodes) lin clip-watch no clipboard-driven (the user's own c local-only active 0 GPL-3.0 V
ClipSpeak lin clip-watch no tray menu entry 'Pronounce (Clipbo local-only active 0 MIT M
Ergo Vox lin follow-focus no runs as a service and follows focu local-only dormant 1 GPL-3.0 M
Fenrir lin/mac/win follow-focus no Keyboard, through one of two input local-only dormant 57 LGPL-3.0 M
FrontPocket (markd89) lin/mac clip-watch no invoked to read the current clipbo local-only active 6 MIT V
Gnopernicus lin follow-focus ? unknown - not described on the Lau local-only dormant LGPL-2.1 (Laun D
GR for UNIX (grunix) lin follow-focus no ? local-only dormant proprietary M
GR for UNIX (grunix) lin ? ? unknown - the project's own page i local-only archived unknown L
JSpeak lin clip-watch no in-app scan toggle button (diamond local-only active 16 GPL-3.0 M
lazy-reader-nix (timfewi) lin ? ? hotkeys declared through the NixOS hybrid active 0 MIT V
LightRead (lightread-tts) lin ? ? Ctrl-z, per the project's own Laun local-only dormant MIT / X / Expa V
linux-tts-reader (mjakal) lin clip-watch no clipboard-driven cloud-API active 0 MIT V
LIOS 3 (Linux Intelligent OCR Solution) lin OCR-region no in-app menu items ('Take and Recog local-only dormant 5 GPL-3.0 (state M
nvda-linux (abdulazizsalimov fork of NVDA) lin/win follow-focus no resident screen reader (inherited local-only active 1 NOASSERTION (u L
Odilia lin follow-focus no runs as a desktop process started local-only active 167 MIT OR Apache- M
sirvim.nvim lin doc Ctrl+Space stops speech; a local-only active 1 MIT M
Speakup lin follow-focus no numeric-keypad review commands; ru local-only active GPL-2.0 (Linux M
speakup + espeakup lin/hl follow-focus no speakup's own console review keys local-only active 39 GPL-3.0 (espea M
SpectreTTS (Spectral-Kaburu) lin ? ? global hotkey over the highlighted local-only active 0 none declared V
YASR (Yet Another Screen Reader) lin/hl follow-focus launched as a wrapper around a she local-only dormant GPL-2.0 L
2nd Speech Center (Zero2000 Software) win clip-watch no resident player window watching th local-only dormant proprietary sh V
95Reader (95リーダー) win ? ? unknown — the only source read is local-only discontinued proprietary co L
AACSpeakHelper (AceCentre) win clip-watch no No global hotkey. AACSpeakHelperSe hybrid active 0 MIT M
ahk-clipboard-tts win copy-sel yes Ctrl+Enter (^Enter:: in the scri os-native dormant 1 none declared M
aivis-clipboard-reader (ohtori222) win/mac/lin clip-watch no passive clipboard monitor; each co local-only active 0 MIT V
Alinea / Alinea Cloud (Sensotec) win/ext/web/ios/and doc ? in-suite reading toolbar / browser hybrid commercial-l Commercial (Le M
araiai9801/yomiage win copy-sel yes Global hotkeys via RegisterHotKey cloud-API active 1 none declared M
Assorted small clipboard-TTS implementations (Go/Rust/Python/C#) win/mac/lin clip-watch no varies by repo: jorkle's README in hybrid active 0 mixed: jorkle/ M
ATbar for Windows (desktop edition) win/ext clip-watch no the user's own Ctrl+C (the tool sp local-only dormant free of charge M
AutoHotkey SAPI.SpVoice recipe class win copy-sel yes User-defined AutoHotkey hotkey; th os-native active Forum snippets M
AutoHotkey SAPI.SpVoice sentence-splitting clipboard recipe win copy-sel yes Ctrl+W (^w::) as written in both local-only dormant 2 n/a (forum pos M
Balabolka win clip-watch no system tray controls or global hot os-native commercial-l Freeware (prop M
bijiofzxx/clipear win/ios clip-watch no Ctrl+Shift+S to push and read; Ctr hybrid active 0 none declared M
brandless-tts-desktop (gionin) win/lin ? ? unread unknown active 0 none declared L
Capture2Text win OCR-region yes global hotkeys: Windows+Q box OCR, local-only dormant , GPL-3.0 (Sourc M
ClaroRead (Everway, formerly Claro Software / Texthelp group) win/mac/ext OCR-region ? Not published on the product page. hybrid commercial-l proprietary, p V
ClaroRead (Screen Capture / Scan Screen) win/mac/ext OCR-region ? buttons on the ClaroRead toolbar; hybrid commercial-l proprietary, p V
ClintReads win copy-sel yes Ctrl+Shift+Space, plus separate de local-only active proprietary, f V
Clipboard-TTS-V1 (leytonoday) win/mac/lin clip-watch no no hotkey documented — the residen cloud-API archived 0 none declared M
clipspeak (taichuyt) win clip-watch no run the script (bindable to a shor local-only active 0 MIT V
cliptalk win clip-watch no no hotkey — copying text to the cl hybrid active 0 GPL-3.0 M
COBRA (BAUM Retec AG, now VisioBraille GmbH) win follow-focus ? unknown — no source read describes local-only discontinued proprietary D
Connect OutLoud (Henter-Joyce / Freedom Scientific) win follow-focus ? Not documented in any source I cou local-only discontinued proprietary co L
CoolSpeech (ByteCool Software / Ziyuan Yao) win clip-watch no resident player window; copying te local-only discontinued proprietary sh M
CopySpeak (ilyaizen) win clip-watch no double-copy inside a 1.5 s window hybrid active 8 MIT M
CSRA (LeonardoBlancoSerna fork of NVDA) win follow-focus no resident screen reader with NVDA's local-only active 0 NOASSERTION (G L
Dolphin HAL / SuperNova / LunarPlus (and the Dolphin Pen) win follow-focus ? unknown — the page read is a produ local-only commercial-l proprietary co D
Dolphin ScreenReader (standalone product) win follow-focus no Keyboard exploration of the screen local-only commercial-l Commercial. GB M
Dolphin ScreenReader / SuperNova win OCR-full ? ? local-only ? proprietary, p V
Dolphin ScreenReader / SuperNova win follow-focus no keyboard commands driving a follow local-only commercial-l proprietary, p V
Easydict Windows port + Raycast-Easydict win/mac copy-sel yes Windows port: floating pop button hybrid active 63 GPL-3.0 (easyd M
f5-tts-hotkey win copy-sel yes Alt+X global hotkey (Windows Regis local-only active 1 not declared ( M
FocusTalk (フォーカストーク) win follow-focus ? Its own screen-reader key commands local-only dormant Proprietary (a V
free-clipboard-reader-for-text-help (calebbyersschool-crypto) win OCR-region ? ShareX capture hotkey feeding OCR, local-only active 0 none declared V
Freedom Scientific Fusion (winget) win follow-focus no JAWS layered keystrokes — INSERT+S local-only commercial-l Proprietary (m M
g-narrator win OCR-region no ALT+A+1 launches Region mode (then local-only dormant 4 MIT M
Game Voice Reader win OCR-region ? hold F10 (remappable by running 'R hybrid dormant 1 MIT M
game-reader (baylic) win OCR-region no hotkey-triggered OCR capture over local-only active 1 none declared V
GameReader win OCR-region ? ? local-only ? 23 none declared M
GameTextReader win OCR-region no Per-area configuration: 'Auto Read hybrid active 15 none declared M
Ghotit Real Writer & Reader win/mac ? ? the Reading Button on the Ghotit F hybrid commercial-l commercial; DS V
Herald Pro win OCR-region ? Global hotkeys, all reconfigurable local-only commercial-l Proprietary; t V
HighlightLogger (nodeblackbox/highlightedtextfocusedlogger) win AX-sel no Alt+R in v4/v5 and Ctrl+R in v3, r local-only active 0 none declared M
hover-translate win OCR-region no hold Ctrl (configurable to Alt or local-only active 1 MIT M
HoverSpeak win/mac/lin/ext DOM ? ? local-only ? proprietary (f V
icecream2015p/OCR-Read win OCR-region no System-tray menu item 'スクリーンショット取得 local-only dormant 0 GPL-3.0 M
Image TTS (Microsoft Store) win OCR-region no system-tray resident app; the user unknown commercial-l proprietary (M V
IVONA MiniReader win ? ? Ctrl+Shift+Space, or the Play butt local-only discontinued freeware (disc M
IVONA MiniReader win ? ? Play button on the floating toolba local-only discontinued proprietary fr M
iZoom Magnifier / Reader (Issist Assistive Technologies) win follow-focus ? unknown - no vendor documentation local-only dormant Commercial, pe D
JAWS (Freedom Scientific) win follow-focus ? JAWS-key modifier command set (Ins local-only commercial-l proprietary (c D
JAWS (Job Access With Speech), Freedom Scientific / Vispero win follow-focus ? A large keyboard command set built os-native commercial-l Proprietary, p L
Kokoro Clipboard TTS win/mac clip-watch no Super+Shift+Q on Windows, Control+ local-only active 9 MIT stated in M
Lingit (Lingdys / Lingright) win/mac/ext/ios ? ? floating toolbar ('verktoylinja') hybrid commercial-l commercial; pe V
LION Live OCR (NVDA add-on) win OCR-region ? ? local-only ? unknown L
LION Live OCR (NVDA add-on) win OCR-full no NVDA+alt+n toggles the live OCR lo local-only active 4 GPL-2.0 M
LunaTranslator win OCR-region ? floating always-on-top window with hybrid active 12659 GPL-3.0 M
LurkReader (the-secanto) win ? ? unread local-only active 0 none declared L
Microsoft Edge Read Aloud (built-in browser feature) win/mac/lin/and/ios DOM no Settings and more menu > More tool hybrid commercial-l proprietary (f V
Microsoft Edge — Read Aloud win/mac/lin/and/ios DOM ? ? hybrid ? proprietary (f V
Microsoft Edge — Read Aloud win/mac/lin/and/ios DOM no Settings and more > More tools > R hybrid commercial-l proprietary (f M
Microsoft Narrator, pre-Windows-10 form (Windows 2000 / XP / Vis win follow-focus no unknown - the cited Wikipedia arti os-native discontinued proprietary, b D
Mimir (MiniDraco) win clip-watch ? tray app watching the clipboard, w local-only active 0 MIT V
MOSpeech win clip-watch no Resident clipboard monitor - the u local-only dormant freeware (Vect M
mouse-tts (reverieline) win copy-sel no global mouse hook on a user-chosen local-only active 0 MIT M
MWS Reader 5 (directINNOVATION UG) win OCR-region ? Vendor text: 'The ComfortRead (OCR local-only commercial-l proprietary, p V
MyFreeSpeech App Reader win AX-sel yes global hotkeys registered with the local-only active 1 GPL-3.0 M
NAO — NVDA Advanced OCR win OCR-full no NVDA+Shift+R OCRs the focused file local-only active 21 GPL-3.0 M
Natural-Voice-TTS (pawelpc) win ? ? global hotkey over the current sel local-only active 0 Apache-2.0 V
NeoPot (shirumesu fork of pot-desktop) win/mac/lin copy-sel ? global hotkeys for selection-trans hybrid active 13 GPL-3.0 M
NVDA "Enhanced Clipboard Reading" add-on win clip-watch no ? local-only active unknown (NVDA L
NVDA "Enhanced Clipboard Reading" add-on win clip-watch no NVDA+C (three quick presses opens local-only active 0 GPL-3.0 M
NVDA 'tesseractOCR' add-on win OCR-region ? ? local-only ? GPL-2.0 (NVDA V
NVDA (NonVisual Desktop Access) win follow-focus no NVDA+downArrow (desktop) / NVDA+a os-native active 2615 GPL-2.0 per th M
NVDA Advanced OCR (NAO add-on) win OCR-full no NVDA gestures: NVDA+Shift+R (file/ local-only active 21 GPL-3.0 M
NVDA Autoclip add-on win clip-watch no NVDA+Control+Shift+K toggles the w local-only active 10 GPL-2.0 M
NVDA built-in Remote Access (NVDA 2025.1+) win follow-focus no NVDA's own key commands plus a Rem hybrid active , GPL-2.0 M
NVDA OCR add-on (Tesseract-based) win OCR-region no NVDA+r, after moving to the target local-only dormant 2148 unknown (the a M
nvda-ocr (Tesseract add-on for NVDA) win OCR-region no unknown - the archived README is t local-only archived 10 none declared L
NVDA日本語版 (nvdajp) win follow-focus no runs continuously and speaks as fo local-only active 39 NOASSERTION pe M
OCR_TextToSpeech (henrywerner) win OCR-region no Launch the script, then press Ctrl local-only dormant 2 none declared M
OCRElevenLabs win OCR-region no ALT+SPACE global hotkey, or the in hybrid dormant 1 none declared M
Orato win clip-watch yes Speak button in the Orato window a local-only dormant Free of charge M
PandaOCR.Pro (miaomiaosoft) win OCR-region ? screenshot capture; the README nam hybrid active 1916 no licence fil V
Panopreter Basic / Panopreter (Standard) win clip-watch no Standard edition: the user copies os-native commercial-l proprietary; B V
Panopreter Basic / Panopreter (Standard) win/ext clip-watch no the user's own Ctrl+C while 'Read local-only commercial-l freeware (Basi M
PC-Talker Neo / NetReader Neo (Kochi System Development) win follow-focus ? Its own screen-reader key commands local-only commercial-l Commercial; th V
Penfriend XL / XP / Portable win clip-watch yes Ctrl+C into the Penfriend Clipboar local-only commercial-l Commercial, pe M
piper-tts-hotkey (edvinklaebo) win clip-watch no Global hotkey ctrl+alt+s, set as t local-only active 0 MIT M
piper_clipboard_tts (GustJc) win/lin clip-watch no the user's own Ctrl+C is the trigg local-only dormant 0 MIT M
pocket-tray (jame25) win clip-watch no passive clipboard monitor - the us local-only active 1 none declared M
PointRead (GenGu233) win AX-sel no global hotkeys, all reconfigurable local-only active 1 MIT M
Pot (pot-app/pot-desktop) win/mac/X11/Wl AX-sel ? user-configured global shortcuts f hybrid active 19213 GPL-3.0 M
Pot Forge (aabiberyi-prog fork of pot-desktop) win/mac/lin copy-sel ? Pot's global hotkeys for selection hybrid active 0 GPL-3.0 V
pot-desktop-with-OCR-translator (ClanTri fork) win/mac/lin OCR-region ? Pot's hotkeys plus the added alway hybrid active 0 GPL-3.0 V
PRAA (fadhiilahahmadzikri) win OCR-region ? global hotkey selecting between cl hybrid active 0 none declared V
QTranslate (ahatem rewrite) win copy-sel no Ctrl+E listen to the selected text cloud-API active 125 MIT M
qualquer-texto-para-voz (caiobuni) win clip-watch ? hotkey over the selection or the c cloud-API active 0 MIT V
quick_read (luntar) win clip-watch no passive clipboard monitor; the use local-only active 0 none declared V
Read The Stupid Text win clip-watch ? three modes: auto-on-selection, au local-only commercial-l 0 proprietary Mi V
Read&Write (Texthelp / Everway) win/mac/ext/ios DOM ? buttons on the floating Read&Write hybrid commercial-l proprietary su V
Read&Write Screenshot Reader (Texthelp / Everway) win/ext OCR-region ? A Screenshot Reader button on the hybrid commercial-l Proprietary, s V
read-aloud-tts-windows (LE-VAI) win copy-sel no Ctrl + right-click over the curren local-only active 1 MIT M
read-aloud-windows (jwat1461) win/ext copy-sel no Ctrl+Alt+R reads the selection, Ct local-only active 0 none declared M
Read4Me TTS Clipboard Reader win clip-watch ? ? local-only unknown MIT (SF catego V
Read4Me TTS Clipboard Reader win copy-sel yes Multiple user-configured global ho local-only dormant 4 MIT M
Read4Me TTS Clipboard Reader (Yassen Dobrev) win clip-watch no user-configured hotkeys; multiple local-only dormant 4 MIT M
Readable - Text Extractor (Sensory Software / Sensory Readable v win OCR-region yes Documented as a five-step manual s hybrid commercial-l proprietary (c M
readallowedtts (digitaldingus) win/mac/lin DOM no Ctrl+Alt+S over the highlighted te unknown active 2 none declared V
ReadClip (with Hotkeys Macros) win clip-watch yes left-click the ReadClip icon to pu local-only dormant TTS reader fre M
ReadPlease 2003 / ReadPlease PLUS (ReadPlease Corporation) win clip-watch ? persistent on-screen player window local-only discontinued freeware (Read L
ReadToMe-TTS win copy-sel yes configurable global hotkey, defaul local-only active 2 not declared ( M
Readwave win ? ? One global hotkey, Ctrl+Alt+R, sta local-only commercial-l proprietary; f V
RigelA (雷革读屏) win follow-focus no unknown — a keyboard-driven screen os-native dormant 153 Apache-2.0 M
RightSpeak win ? ? Per the listing: the main app wind unknown commercial-l Proprietary (M V
Sayz Me win clip-watch yes its own GUI window (per the incomi local-only unknown BSD (per the i L
Sayz Me win clip-watch no an in-application control that rea local-only archived BSD M
Screen Read-Aloud (Z3n1thh/Speech) win OCR-region no Ctrl+Shift+R = '+ New' region capt hybrid active 0 MIT M
Simple TTS Reader win clip-watch no the user's own copy — any clipboar local-only active 0 unclear — Sour M
Simple TTS Reader (SourceForge) win clip-watch no Tray-resident watcher - it speaks local-only active 85 Apache-2.0 (pe M
SoftSpoken (Prateek-LN2002) win ? ? a floating play button that appear local-only active 1 MIT M
speak-helper (archoor) win/mac/lin copy-sel yes Ctrl+Alt+R global hotkey (pynput G hybrid active 0 MIT M
speak-selected-text (AnaghAgarwal56) win/mac/lin clip-watch no the README's own two-step sequence cloud-API active 0 none declared M
SpeakAnywhere win clip-watch no a '🔊 Speak Clipboard' label button local-only active 3 NOASSERTION (a M
SpeakFlow (wangpeng76) win ? ? tray menu plus hotkeys over the se hybrid active 0 MIT V
Speakonia (CFS-Technologies) and ReadPlease win clip-watch no ReadPlease speaks what you have co local-only discontinued freeware, both M
SpeakSelectedText (lucaspecina) win/mac copy-sel yes global hotkey, default ctrl+alt+l cloud-API active 0 none declared M
SpeakShot win OCR-region ? 'Global hotkeys' [vendor]; no chor unknown unknown Proprietary (a V
SpeakText (jieme54) win copy-sel no hotkey over the current selection, local-only active 0 MIT M
SprintPlus (Jabbla) win/mac/web ? ? Vendor sentence: 'Click on a word hybrid commercial-l Commercial (Ja V
SteadyVoice win AX-sel yes Ctrl+Shift+R global hotkey; pressi local-only active 0 MIT M
sttts win/lin/mac OCR-region ? ? local-only ? unknown L
SuperNova / Dolphin ScreenReader win follow-focus no screen-reader keystrokes and the S local-only commercial-l proprietary, p V
SuperNova Enterprise (Dolphin Computer Access) win follow-focus ? not described on the requirements local-only commercial-l Commercial; se V
supertonic-reader (Yxnt) win/mac/lin ? ? Ctrl+~ speaks the current selectio local-only active 1 none declared M
System Access / System Access To Go (Serotek) win follow-focus ? Screen-reader key commands; an ins hybrid dormant Proprietary; t L
Text Grab win OCR-region yes global hotkeys served by the optio local-only active 4852 MIT M
Text-Grab-TTS (kmcnaught fork of TheJoeFin/Text-Grab) win OCR-region ? Win+Shift+K global hotkey opens th local-only active 0 MIT (inherited M
Text-to-speech-Visaul-Novel win OCR-region no an always-on-top draggable overlay hybrid active 2 none declared M
Text2Speech (IlyaLts) win/X11 copy-sel no a user-configured global hotkey pe cloud-API active 0 GPL-3.0 M
TextAloud (NextUp) win clip-watch no user-configured global hotkeys (Se local-only commercial-l proprietary, p V
TextAloud 4 (NextUp.com) win clip-watch ? Floating Toolbar that acts on the local-only commercial-l proprietary co V
TextExtractorWin win OCR-region yes global hotkeys that work from any local-only active 0 not declared ( M
TextToSpeech (appinn-featured Windows tool) win ? ? Alt+S, with multi-press semantics: unknown unknown unknown V
Thunder screen reader (Screenreader.net / WebbIE) win follow-focus ? a set of keyboard shortcuts docume local-only dormant freeware, clos M
TinyReadAloud win copy-sel yes Global hotkeys, all configurable w hybrid active 2 None declared M
TinySpeech (DannyBen) win copy-sel yes F1 speak selected text, F3 pause/r local-only dormant 5 MIT M
Translumo win OCR-region Alt+Q defines the capture area on hybrid active 5600 Apache-2.0 M
Translumo Enchanced (MixeroTN fork) win OCR-region no user marks a screen area, then a h local-only dormant 5 Apache-2.0 L
tts-hotkey (jborza) win/mac/lin copy-sel yes global shortcut, default Ctrl+[ , local-only dormant 0 not declared ( M
TTS-Hotkey (KarolStoinski) win copy-sel yes A single global hotkey registered os-native dormant 0 MIT M
tts-reader-local win/mac/lin copy-sel yes global hotkeys, all configurable i local-only active 0 none declared M
TTS_selected_text_globally_in_Windows (DarwishCS) win copy-sel ? hotkey binding that copies the sel local-only active 2 MIT M
UGTLive win OCR-region drag the main window rectangle ove hybrid active 104 NOASSERTION (G M
Virtual Vision (MicroPower) win follow-focus no unknown — no source I could open n local-only unknown proprietary, c L
Vocal-Eyes (GW Micro) and the DOS-era screen-reader cluster win OCR-full no ? local-only discontinued proprietary co L
VoiceBoard (YohanCS) win/mac/lin clip-watch no passive clipboard monitor unknown active 0 none declared L
VoivoClip / CoeiroClip / AivoClip (led-mirage) win clip-watch no the user's own copy while clipboar local-only active 8 MIT M
Vovsoft Clipboard Reader win clip-watch no Ctrl+Alt+C global hotkey by defaul local-only commercial-l proprietary fr V
Windows Narrator win follow-focus no Win+Ctrl+Enter starts and stops Na os-native active Proprietary; b M
Windows Narrator - read the current selection on a keystroke win follow-focus no Keyboard commands from Microsoft's os-native active Microsoft prop M
Windows Narrator Ctrl+Alt+Spacebar (read items selected in the c win follow-focus no ? os-native active Microsoft prop M
Windows Speech Recognition Macros "read that" voice command win copy-sel yes the spoken phrase 'read that' reco os-native dormant Microsoft prop M
Windows System Tray Text-to-Speech (mukibulh) win copy-sel ? Ctrl+Shift+Q global hotkey; the to local-only active 0 none declared M
windows-speak-selection (onebytegone) win copy-sel yes Ctrl+Esc, registered by copy-selec os-native dormant 0 MIT M
WinPopclip (millionart) win copy-sel yes the action bar pops up at the curs local-only dormant 118 none declared M
WordQ (and WordQ & SpeakQ), Quillsoft win/mac/ext copy-sel yes F6 on the current selection, then local-only commercial-l Commercial; in M
Zabaware Text-to-Speech Reader win clip-watch no The program runs resident (a Start os-native commercial-l Proprietary; f M
ZDSR (Zhengdu Screen Reader) win follow-focus no screen-reader hotkey groups (the v hybrid commercial-l proprietary; f V
ZoomText / Fusion (Vispero) win follow-focus ? not re-verifiable this pass local-only commercial-l proprietary, p L
ZoomText Fusion win follow-focus no AppReader and DocReader commands p local-only commercial-l proprietary, p V
zotero-edge-tts (ccwss-maker) win/mac/lin doc no select text inside Zotero's reader cloud-API active 0 none declared V
إبصار / Ibsar (شركة صخر للبرمجيات / Sakhr Software) win ? ? keyboard commands — the page state local-only unknown proprietary V
هال العربي / Arabic Hal (الناطق للتكنولوجيا / Nattiq Technologie win follow-focus ? unknown - no reachable documentati local-only unknown proprietary L
晨光读屏 (Chenguang Screen Reader) · 布莱叶读屏 (Braille Screen Reader) · win/and ? ? unknown local-only unknown unknown L
棒読みちゃん (Bouyomi-chan) win clip-watch no resident application monitoring th local-only dormant freeware (dona M
永德读屏 (Yongde Screen Reader) win ? ? unknown — the source read document local-only discontinued proprietary L
드림보이스 (DreamVoice) — 실로암시각장애인복지관 소프트웨어개발원 win ? ? unknown — no product documentation local-only dormant unknown; the i L
센스리더 (Sense Reader) — (주)엑스비전테크놀로지 / XVision Technology win follow-focus ? unknown - the vendor's product pag local-only commercial-l proprietary V
AdaptAble (kanjustin) ext DOM no natural-language request in the ex hybrid active 1 none declared V
apollo-reader (DigitalCyberSoft) ext DOM no cursor position or the selection unknown active 1 none declared V
Assorted Chrome/Edge read-aloud extensions (selection-scoped) ext DOM no right-click context-menu item on t hybrid active 0 Apache-2.0 (re M
audio-reader (HasanResul) ext DOM no extension action over the selectio local-only active 0 MIT V
bluevisor/Kokoro-tts (Chrome extension) ext DOM no Floating 'Read' button that appear local-only active 0 none declared M
CastReader ext DOM no right-click context menu 'Read Sel cloud-API commercial-l proprietary V
CastReader ext/ios/and DOM no Right-click context menu 'Read Sel cloud-API commercial-l 1 Proprietary; f V
Chinese 划词朗读 browser/desktop cluster: NOime22/Web-listen · NiroD ext/win DOM no floating button on the selection o hybrid active 0 MIT: Web-liste M
chocoa/Yukkureader ext DOM no right-click context-menu item on t local-only dormant 0 none declared M
Chrome TTS Reader (liuzan678/chrome-tts-reader) ext DOM no right-click context menu on a sele unknown active 2 Apache-2.0 M
chrome-tts-extension (KP3530) ext DOM no selection detection (debounced) pl local-only active 0 MIT V
chrome_readaloud_extension (otischan-dev) ext DOM no extension action over page content unknown active 0 none declared L
ChromeVox ext follow-focus no Ctrl+Alt+z toggles ChromeVox on or os-native active BSD-3-Clause ( M
ClearPath (clearpath-ext) ext DOM no extension toolbar over the current unknown active 1 MIT V
cloud-speech (Vivswan/cloud-speech) ext DOM no Context menu, keyboard shortcut Ct cloud-API active 2 MIT M
dream_speaker / 梦想小说朗读助手 (ryapp) ext DOM no click the extension icon beside th local-only dormant 42 none declared M
Edge TTS Reader browser extension (travisvn/edge-tts-extension) ext DOM no right-click context menu (selectio cloud-API active 75 AGPL-3.0 M
Firefox AMO read-aloud cluster (Read Aloud, 'Read Aloud: Text to ext DOM no toolbar button; the same product's hybrid active 215,353 GPL-3.0-only M
fox-howl (littleoffice) ext DOM no selection in the page local-only active 0 GPL-3.0 V
FreeVoice Reader (Chrome extension + freevoicereader.com) ext DOM no Cmd+Shift+K (Mac) / Ctrl+Shift+K ( local-only active 2 MIT (CORDOC-LL M
gentle-reader ext DOM no right-click context-menu item 'Gen cloud-API active 0 MIT M
hearvox (Adamovix, formerly read-aloud-tts) ext DOM no right-click context menu entry 'He cloud-API active 0 MIT M
Helperbird (OCR / Screenshot Reader) ext OCR-region ? extension toolbar / feature menu; unknown commercial-l proprietary, f V
HoverSpeak ext DOM no hover over text, or select and pre hybrid commercial-l 2,000 proprietary, f V
inworld-selection-tts-extension (YichengDWu) ext DOM no selection in the page cloud-API active 0 MIT V
koko-ext (lucataco) ext DOM no highlight text in the page unknown active 1 none declared L
kokoro-read-aloud-chrome ext/win/mac/lin DOM no right-click context-menu item 'Rea local-only active 0 MIT M
kokoro-reader (rickyraymond) ext DOM no extension action over the page or local-only dormant 0 none declared V
kokoro-tts-extension (alhelal-0) ext DOM no Headphones button that pops up nex local-only active 0 none declared M
Linguist (translate-tools) ext/and DOM no highlight text in the page, then u hybrid active 1045 BSD-3-Clause M
LocalReadTranslate (Yan-ShiBo) ext DOM no select text in the page; the exten local-only active 1 MIT V
Milan_AI (mkchand02) ext DOM no voice command; the agent then narr hybrid active 0 MIT L
MouseTooltipTranslator ext DOM no hover the pointer over text; hold hybrid active 1286 MIT M
MouseTooltipTranslator (neoOpus fork) ext DOM no mouse hover over text in the page, hybrid active 3 MIT D
MS Edge TTS Extension (yacine-bens) ext ? no extension UI (selection scope not cloud-API active 83 none declared L
My Little Chrome Reader (vanja-ivancevic/My-Little-Chrome-Reader ext DOM no right-click context menu — 'Read t cloud-API dormant 1 MIT M
Namida OCR (Leapward-Koex/Namida-OCR) ext OCR-region yes Alt+Q on Windows, Option+Q on Mac, local-only active 15 GPL-3.0 M
NaturalReader browser extension ext DOM no extension toolbar play button on t cloud-API commercial-l 500,000 proprietary, f V
Oribi Speak ext DOM no Select text, then click the green hybrid unknown Commercial (Or V
perch-reader ext/web DOM no click the Perch icon in the Chrome local-only active 2 Unlicense M
Pericles (calinalexandru/pericles) ext DOM no extension popup — the README's own unknown dormant 14 MIT M
piper-tts extension (n8watkins) ext DOM no selection in the page local-only active 0 MIT V
PNL Reader (pnlpal/pnl-reader) ext DOM no Click the extension icon on a page local-only active 15 GPL-3.0 M
pocket-reader ext DOM no extension toolbar icon opens a pop local-only active 98 none declared M
qwen-read-aloud ext DOM no Floating read button next to the p cloud-API active 5 none declared M
Read Aloud (ken107/read-aloud) ext DOM no Extension toolbar button, right-cl hybrid active 1723 MIT M
Read Aloud: A Text to Speech Voice Reader (Chrome/Firefox extens ext DOM no toolbar icon; right-click context hybrid active 1723 MIT (source re M
read-aloud (beanwl) ext/win/X11 DOM no right-click a selection in Chrome/ hybrid active 0 none declared M
read-aloud-tts-with-kokoro (gabor-minya) ext DOM no extension action; click a sentence local-only active 0 MIT V
Read-Selected-English (WayneCYChang) ext DOM no an inline speaker icon appears nex local-only active 0 none declared V
ReadAloud (mystilleef) ext DOM no toolbar icon to start/stop; triple unknown active 2 GPL-3.0 M
readaloud-pro (einadid) ext DOM no selection in the page unknown active 1 none declared V
Reader (oliver-moran/reader) ext DOM no Ctrl+Shift+Space (manifest.json co unknown dormant 0 MIT M
ReadVox ext DOM no unread cloud-API unknown proprietary fr V
Recito (allgemeiner-intellekt) ext DOM no extension popup/toolbar (selection unknown active 1 MIT L
Riddi (pmbstyle/Riddi) ext DOM floating widget in the page corner local-only active 9 MIT M
Select and Speak (iSpeech) Chrome extension ext DOM no Right-click context menu entries ' local-only active Proprietary / V
select-and-speak (annmariatech) ext DOM no selection in the page local-only active 0 none declared L
Select_To_Speak (devansh-jagtap) ext DOM no selection in the page local-only active 0 none declared V
Selection Assistant (vikaschauhan123) ext DOM no A floating toolbar injected by a c hybrid active 0 none declared M
SelectionSpeaker (DVLP) ext DOM no clicking the 'READ SELECTED' bookm local-only dormant 16 MIT M
simple-read-aloud-extension (tobiasGuta) ext DOM no extension action over page content local-only active 0 none declared V
Snap&Read Universal ext OCR-region ? toolbar controls inside the Chrome cloud-API commercial-l proprietary, s V
speak (wis/speak) ext DOM no Speak-on-select and speak-on-click local-only dormant 16 none declared M
Speakit-Chrome-extension (enoshjoseph) ext DOM no selection in the page local-only active 1 none declared V
Speakoala ext DOM no A floating in-page button that app cloud-API commercial-l proprietary (f M
Speechify browser extension ext/ios/and/mac DOM ? Sidebar player on any website, in- cloud-API commercial-l Proprietary, f V
Spiel (preet01) ext/mac DOM no toolbar Play button; click any par local-only active 3 MIT M
Talkie (joelpurra/talkie) ext DOM no Talkie toolbar button, or right-cl local-only active 78 GPL-3.0 (Talki M
Text Reader: Free TTS Selected Text Reader (Chrome extension) ext DOM no Click the extension's toolbar butt local-only active Proprietary (C M
text-reader-extension (sokol-matija) ext DOM no selection in the page hybrid active 0 none declared V
Translator-UNI (vanppsa) ext DOM no selection in the page, with a floa hybrid active 0 MIT V
tts-reader-extension (jSayal) ext DOM no selection in the page cloud-API active 1 MIT V
unsilent-reader (themez) ext DOM no extension action over page content cloud-API active 0 MIT L
vocalize-google-extension (fleizean) ext DOM no selection in the page unknown dormant 0 MIT L
Voice Instead (Chrome extension) ext ? ? Never documented in any source I c unknown discontinued proprietary (a L
voice-reader (romkakn) ext DOM no right-click on the selection local-only active 0 MIT V
VoiceOne (RohitWaghire/VoiceOne) ext DOM right-click context menu on a sele local-only active 2 MIT M
voxlight (alessandroarioli) ext DOM no selection in the page local-only active 0 none declared V
XTTS-Read-Aloud (psdwizzard/XTTS-Read-Aloud) ext DOM no extension popup — choose a voice, hybrid active 48 MIT M
Apple VoiceOver Recognition (Text Recognition) ios/mac OCR-full no VoiceOver gestures / rotor (VoiceO os-native unknown proprietary, b L
iOS/iPadOS Speak Selection + Accessibility Reader ios AX-sel no select text then tap Speak (Speak os-native commercial-l proprietary (b M
iOS/iPadOS Speak Selection and Speak Screen ios AX-sel no Speak Selection: select text, then os-native active proprietary, b M
Aloud (BuckyMcYolo) mac AX-sel ? Opt-Shift-S global hotkey over the local-only active 0 none declared M
aloud-tts mac copy-sel yes Control+Option+S global hotkey (co local-only active 0 MIT M
Apple VoiceOver mac/ios follow-focus ? ? os-native ? Proprietary, b L
Apple VoiceOver mac/ios follow-focus no Command-F5 toggles VoiceOver; Comm os-native active Proprietary; b M
better-macos-speak-selection mac AX-sel no Option+Escape (Carbon RegisterEven local-only active 0 none declared M
Bob (ripperhe) mac ? ? selection hotkey / screenshot hotk hybrid active 9718 none declared M
BoxTalk mac/win/lin/ext DOM no right-click a selection -> 'Speak local-only active 0 not declared ( M
btt-read-selection mac ? ? whatever BetterTouchTool trigger t os-native dormant 1 none declared M
chatter mac clip-watch no modifier chord, default both Comma cloud-API dormant 0 none declared M
chatterbox-readaloud (dhl84) mac clip-watch ? menu-bar hotkeys over the clipboar local-only active 0 MIT V
clearspeaker (OctavianTocan) mac AX-sel ? Raycast command over the current s cloud-API active 0 MIT V
ClipboardTTS (liboyin) mac clip-watch no menu-bar dropdown; plus a macOS Se cloud-API active 0 AGPL-3.0 M
clipread / ClipRead (rhizome88) mac clip-watch no hotkey after the user copies (the cloud-API active 0 none declared V
Dictater mac AX-sel no right-click > Services > Dictate ( os-native dormant 227 MIT M
Easydict (tisfeng) mac AX-sel yes Option+D selection translate, Opti hybrid active 14160 GPL-3.0 M
EchoPad (don-miguel) mac copy-sel yes Option+Command+S speaks the select hybrid active 0 MIT M
Fish Screen Reader mac OCR-full no hotkeys over the recognised list ( hybrid commercial-l 0 proprietary; A V
Flick (rshome1030) mac AX-sel no the bar pops up at the cursor when local-only active 0 none declared M
GhostReader / GhostReader Plus (Convivo) mac ? ? unknown - the listing says 'Read s local-only dormant 9,993 proprietary; M V
hibiki (jsap7 fork) mac AX-sel no global hotkeys Option+F (speak) an cloud-API active 0 not declared ( M
Keyboard Maestro (talking-maestro macro) mac copy-sel yes Keyboard Maestro HotKey trigger, s os-native dormant 2 Unlicense (the M
LivingTTS mac AX-sel no default global hotkey Control+Opti local-only dormant 2 MIT M
macOS Automator Quick Action / Services 'Speak text' route (nati mac AX-sel no user-assigned keyboard shortcut un os-native active OS feature D
macOS legacy 'Speak selected text when the key is pressed' + the mac copy-sel yes A user-set key combination under S os-native discontinued OS feature L
macOS Services item 'Speech > Start Speaking Text' (com.apple.sp mac AX-sel no Services menu item 'Speech > Start os-native active proprietary, b M
macOS Shortcuts.app 'Get Clipboard -> Speak' recipe mac clip-watch no A Shortcut run from the Shortcuts os-native active n/a (a recipe, M
macOS Spoken Content / Speak Selection mac AX-sel no Option-Esc by default, user-config os-native active proprietary, b M
macOS Spoken Content / Speak Selection (Accessibility) mac AX-sel no Option-Esc by default, re-recordab os-native active proprietary (p M
macOS-OpenAI-Text-to-Speech (Saiko-Seiko) mac ? ? keyboard shortcut over the current cloud-API active 8 none declared V
manga-voice-reader mac/ext OCR-region no Play button in a floating in-page local-only active 1 NOASSERTION (G M
MLXRead mac AX-sel no Option+Escape event tap (press aga local-only active 1 MIT M
MoePeek (cosZone) mac AX-sel yes Option+D translate selection, Opti hybrid active 710 AGPL-3.0 M
Murmur (latent-variable) mac AX-sel no global hotkey Cmd-Shift-R, plus 'S local-only active 1 MIT M
Myna mac copy-sel yes global hotkeys ⌘⌥⇧S / ⌘⌥⇧A (rebind local-only active 2 MIT M
Narrateify (yasarkaancan) mac AX-sel ? Ctrl-Opt-R narrate selection; Ctrl hybrid active 0 MIT M
Omi 朗读小助手 (omi-read-aloud) mac clip-watch no global hotkey ⌥⇧Q after the user's cloud-API active 58 MIT M
Orate mac/ios ? ? Option+Cmd+L global hotkey; right- local-only commercial-l proprietary, $ V
Orator (orator-macos) mac copy-sel yes Option+' (also Option+Return) glob local-only active 2 MIT M
outSPOKEN (Berkeley Systems, later ALVA Access Group) mac/win follow-focus ? Not documented in any source I cou local-only discontinued proprietary co L
personal-helper / Osobny pomocnik (matuskarak) mac ? ? menu-bar app (unread) unknown active 0 none declared L
popclip-azure-text-to-speech mac AX-sel no PopClip's floating popup bar, whic cloud-API dormant 24 AGPL-3.0 M
quoth mac copy-sel yes Option+Shift+/ global hotkey to sp hybrid active 0 Unlicense M
Raycast extension: AI Voice Studio mac AX-sel ? Raycast launcher commands ('Quick cloud-API active 20 MIT M
Raycast extension: Azure Speech TTS (liualexiang) mac/win AX-sel ? One Raycast command, 'Azure Speech cloud-API active see the raycas M
Raycast extension: Doubao TTS mac AX-sel yes the Raycast command 'Quick Read Se cloud-API active 46 MIT M
Raycast extension: ElevenLabs TTS mac ? ? a Raycast command invoked from the cloud-API active 2,129 MIT (extension M
Raycast extension: Gemini TTS mac ? ? run the 'Quick Read Selected Text' cloud-API active 52 see store list M
Raycast extension: MiMo TTS mac AX-sel no Raycast commands run from the Rayc cloud-API active 6 MIT M
Raycast extension: MiniMax TTS mac AX-sel ? the Raycast command 'Quick Read Se cloud-API active 18 unknown (the s M
Raycast extension: OpenAI Speak mac ? ? the Raycast launcher command 'Spea cloud-API active 1,275 MIT (extension M
Raycast extension: Read AI mac AX-sel ? run the 'Read Selected Text | Bac cloud-API active 2,717 MIT M
Raycast extension: Say mac/win ? ? the Raycast launcher hotkey then t os-native active 2,584 MIT M
raycast-doubao-tts (semantic-craft) mac AX-sel ? Raycast command invoked over the c cloud-API active 3 MIT V
Raycast-Minimax-TTS (semantic-craft) mac AX-sel ? Raycast command invoked over the c cloud-API active 0 MIT V
raycast-tts-reader mac AX-sel ? the Raycast command 'Read Selected hybrid active 0 not declared ( M
read-aloud-macos mac copy-sel yes Option+Cmd+R read selection, Optio local-only dormant 0 MIT M
read-this-macos (bacharyehya) mac clip-watch no a single global keyboard shortcut hybrid active 0 MIT V
ReadAloud (readaloud-sigma) mac ? ? one user-set global shortcut: 'Set cloud-API commercial-l proprietary; 3 V
ReadMe (valllabh/readme-tts) mac AX-sel ? Cmd-Opt-R global shortcut or the m local-only active 0 MIT M
SayIt mac copy-sel yes Option+S global hotkey os-native dormant 0 MIT per the RE M
SimpleTTS / kokoro-hotkey (FatherMarz) mac copy-sel yes Cmd+I speak selection, Cmd+Shift+I local-only dormant 0 MIT M
Skidudeaa/speak11 (detached 2026 derivative of smcantab/speak11) mac copy-sel no global hotkey Option-Shift-/ regis hybrid active 0 Unlicense M
Sotto mac ? ? ? local-only ? unknown L
Sotto mac AX-sel no configurable global shortcut, Cmd+ local-only active 4 Apache-2.0 M
speak-selection-mac (HyperfocuSam) mac copy-sel no Raycast script commands with user- cloud-API active 0 MIT M
Speak11 mac ? ? ? cloud-API ? unknown L
speak11 mac copy-sel yes Option+Shift+/ registered as a glo hybrid active 17 Unlicense M
SpeakCopy mac copy-sel yes Hardcoded hotkey F + Option + Cont os-native dormant 2 none declared M
SpeakEasyTTS (JrPribs) mac ? ? always-on-top widget invoked over hybrid active 0 none declared L
SpeakHUD (chris-jk) mac clip-watch no Ctrl-Opt-S global hotkey (user-con local-only active 0 none declared M
SpeakIt (Atemndobs) mac copy-sel yes global hotkey, default Control+Com local-only active 1 MIT M
SpeakPro (jaysidd) mac clip-watch no Cmd-Ctrl-S bound as a macOS Shortc local-only active 1 MIT M
SpeakRate mac copy-sel yes Option+Command+R read selection / os-native active 2 MIT M
speed-read (sr) — OneRedOak mac AX-sel no global hotkey, default Option+Shif hybrid active 6 MIT M
Subvocal mac AX-sel no Global hotkey Cmd+Shift+R by defau local-only dormant 0 MIT M
Supertonic Read Selection (TypeWhisper plugin) mac AX-sel yes a shortcut the user records in the local-only active 1 GPL-3.0 M
SuperUtter mac clip-watch no Ctrl+Option+U read clipboard, Ctrl hybrid active 0 proprietary — M
TDSR mac/lin/hl follow-focus no Alt-key review commands inside the local-only active 102 GPL-3.0 M
text-listener-app (motaterry) mac AX-sel no global capture over the current se local-only active 1 none declared M
TextGO (C5H12O5) mac/win AX-sel no README: 'Multiple Triggers: Config hybrid active 327 GPL-3.0 M
tianye20280815/mac-multilang-tts mac copy-sel yes global hotkeys ⌃⌥⌘D / ⌃⌥⌘E / ⌃⌥⌘F, local-only active 0 MIT M
TrayTalk mac AX-sel yes a global hotkey the user records i cloud-API active 2 none declared M
Voice Reader (liuno6) mac follow-focus ? floating speaker button next to th local-only active 0 none declared M
voice-out (hileix) mac/win/lin copy-sel yes Option+V on macOS, Alt+V on Window local-only active 1 MIT M
Voices (goodsnooze) mac ? ? unread unknown unknown proprietary (G L
Vosh mac follow-focus ? ? unknown ? unknown L
Vosh mac follow-focus no CapsLock is the 'Vosh key' (CapsLo local-only dormant 32 BSD-2-Clause M
wangz-code/read-screen mac/win/lin OCR-region run python main.py, drag a regio local-only active 0 MIT M
whisper-shortcut (mgsgde) mac copy-sel yes Cmd+4 Read Aloud by default; every cloud-API active 68 AGPL-3.0 M
WithAudio mac/win ? ? vendor calls it 'Global Capture' o local-only active proprietary, o V
WordWand mac ? ? a keyboard shortcut in any applica unknown commercial-l proprietary; f V
Xpop (DongqiShen) mac AX-sel no the popup menu appears automatical local-only dormant 8 GPL-3.0 M
Yap (latent-variable) mac AX-sel ? global hotkey (inherited Murmur mo local-only active 3 MIT V
Yapper (repository formerly kokoro-speak, ACNoonan) mac AX-sel yes A global hotkey (README documents local-only active 0 MIT M
Yapper / kokoro-speak mac AX-sel ? ? local-only ? check repo M
Yaps mac/win/lin/and/ext ? ? Option+Fn on desktop, per the vend hybrid commercial-l proprietary, p V
ydna564/Screen-Reader mac OCR-region no global hotkey ⇧⌘1 caught by pynput local-only active 1 MIT M
Desktop Reader (hlindquist/bookreaderpackages) legacy OCR-region ? ? unknown ? 0 none declared L
Nuance TALKS / TALKS&ZOOMS and Code Factory Mobile Speak legacy/win follow-focus ? Handset key commands on Symbian S6 local-only discontinued proprietary co L
ReadSpeaker TextAid web/ext/ios/and DOM no Browser-extension toolbar, includi cloud-API commercial-l Commercial sub V
IBM Screen Reader (DOS, 1986) and IBM Screen Reader/2 (OS/2) ? OCR-full no a dedicated separate 18-key keypad local-only discontinued proprietary co M
jmdaweb/habla ? OCR-full resident program activated with `h local-only dormant 0 GPL-2.0 D
Vocal-Eyes (GW Micro) and the DOS-era screen-reader cluster ? OCR-full Resident TSR key commands on the D local-only discontinued proprietary co L

Catalogue — Synthesis engines — hand them a string, get audio

279 entries. Evidence tier: M measured (source read) · V vendor claim · L lead, unverified · D derived.

Acq = acquisition mechanism. Clipboard = does reading a selection clobber your clipboard. Superlatives appearing in these cells sit inside attributed quotations; the catalogue does not rank.

Tool Plat What it is Runtime Status Stars Licence Ev
Android TextToSpeech (android.speech.tts) and Android's pluggable TTS façade: enumerate installed engines and voices, queue or flush utterances, synthesize straight to a file, and swap the backing os-native ? proprietary (p M
android-yandex-tts (axet) and 'Android TTS engine using Yandex voice REST API' — installs as a system TTS engine on Android. cloud-API unknown 1 unknown L
AndroidMaryTTS and Offline HMM MaryTTS port for Android. local-only ? 201 none declared M
ChineseTtsTflite (F-Droid) and "Chinese TTS Engine Based On Tensorflow TTS" [vendor]. local-only active unknown V
CloneTTS and Offline Android TTS engine that registers system-wide as the device's TTS provider. local-only ? 764 none declared L
Muse - Text to Speech (F-Droid) and "Convert text to natural-speaking audio with custom voices and pauses" [vendor]. local-only active 52 GPL-3.0 V
NekoSpeak and Private offline AI text-to-speech for Android supporting Kokoro, KittenTTS, Pocket-tts and Piper models. local-only ? 132 see repo L
SherpaTTS and Android system TTS engine built on Next-gen Kaldi (sherpa-onnx) that exposes Piper and Coqui voices to any Android app through the platform TTS API. local-only ? open source (r L
SherpaTTS (F-Droid) and "Text-to-Speech engine based on Next-gen Kaldi" [vendor] — installs as an Android system TTS engine. local-only active 749 GPL-3.0 V
Supertonic TTS (F-Droid) and "Local AI Text-to-Speech using Supertonic ONNX" [vendor]. local-only active unknown V
SVOX (Classic TTS, Pico) and/legacy Swiss embedded TTS house whose Pico voices shipped preinstalled on a generation of Android phones and whose Classic TTS engine was a common third-part local-only discontinued proprietary, p M
VoxSherpa-TTS and Offline neural TTS engine for Android built on sherpa-onnx. local-only ? 192 see repo L
Amphion lin Toolkit for audio, music and speech generation (includes MaskGCT and other TTS systems). local-only ? 10 MIT M
aspeak lin "A simple text-to-speech client for Azure TTS API." [vendor, AUR description] cloud-API dormant unknown V
baratinoo2pcm (Hypra) lin 'Command-line interface for the Baratinoo/Voxygen TTS system' — the bridge that lets Linux screen readers use the commercial French Voxygen voices. local-only unknown 0 unknown V
Bark lin/win Text-prompted generative audio model (speech, music, sfx, nonverbals). local-only ? 39 MIT M
Brasil TTS lin Brazilian-Portuguese speech synthesizer set that reads screens for visually impaired users, explicitly also aimed at people with dyslexia and other re local-only ? 69 see repo L
Chatterbox lin/win/mac Resemble AI's open TTS family, including Turbo (350M) and Nano (110M) variants with paralinguistic tags. local-only ? 25 MIT M
ChatTTS lin/win Generative speech model tuned for conversational dialogue. local-only ? 39 AGPL-3.0 M
Code Factory — Cerence TTS SDK lin/and/win/ios/legacy Code Factory's remaining Cerence business is an integrator SDK, not a consumer voice pack — Linux, Android, Windows, iOS, plus a WebAssembly build for local-only commercial-l Proprietary OE M
Coqui TTS (coqui-ai/TTS) lin/win/legacy Deep-learning toolkit for text-to-speech with a large model zoo, commonly used as a research and production synthesis engine. local-only ? 40 MPL-2.0 L
CosyVoice lin Multilingual large voice generation model with inference, training and deployment. local-only ? 22 Apache-2.0 M
DECtalk — modern builds (dectalk/dectalk) lin/win/mac/ios/legacy The 1983 Klatt-formant synthesizer, rebuilt from source dumped by its original developer, now compiling for Linux/Windows/macOS/iOS on i386, x86_64 an local-only active Unresolved. Th M
Dia lin/mac 1.6B dialogue TTS generating multi-speaker conversation in one pass. local-only ? 19 Apache-2.0 M
docker-qwenspeak / docker-talkies / aigate / docker-audiolla (ps lin Self-hosted container line: Qwen3-TTS over SSH with YAML-piped voice config (docker-qwenspeak), an OpenAI-compatible /v1/audio/speech + /v1/audio/tran local-only unknown 0 unknown V
eflite lin Festival-Lite-based speech server used by Speakup and Emacspeak on Linux; Debian keeps it alive at 0.4.1-14 on Salsa. local-only dormant unknown V
Ekho lin Multilingual synthesizer for Cantonese, Mandarin, Toisanese, Zhaoan Hakka, Tibetan, Ngangien, Korean and English. local-only active unknown V
EmotiVoice lin/win Multi-voice, prompt-controlled emotional TTS (2000+ voices). local-only ? 8 Apache-2.0 M
Epos lin Language-independent rule-driven speech synthesis system from the Czech Academy of Sciences. local-only dormant unknown V
Epos TTS System lin/win 'Epos is a language independent rule-driven Text-to-Speech (TTS) system primarily designed to serve as a research tool', independent of the language p local-only dormant GPL-2.0 (SF ca V
eSpeak NG lin/win/mac/and/legacy Compact formant-synthesis engine for 100+ languages, the default fallback voice behind much of the Linux and screen-reader stack; the original eSpeak local-only discontinued 5 GPL-3.0 M
espeakbox lin/legacy eSpeak wrapped as an HTTP service in a 17.2MB Docker image. local-only ? 137 MIT M
F5-TTS lin/win/mac Flow-matching zero-shot TTS ('A Fairytaler that Fakes Fluent and Faithful Speech'). local-only ? 15 MIT (code); ch M
Festival lin/mac The classic full Festival Speech Synthesis System. local-only ? 458 NOASSERTION (B M
Fish-Speech / OpenAudio lin/win Multilingual TTS with a slow-AR 4B + fast-AR 400M split architecture. local-only ? 32 NOASSERTION (c M
Flite lin/mac/win/legacy Small, fast, portable run-time synthesis engine from CMU (Festival Lite). local-only ? 1 NOASSERTION (B M
FreeTTS lin/mac/win 'FreeTTS is a speech synthesis engine written entirely in the Java programming language... written by the Sun Microsystems Laboratories Speech Team an local-only dormant BSD (SF catego V
Gespeaker (muflone) lin GTK+ front end for eSpeak and MBROLA that plays text in many languages with per-language voice settings; long-standing Linux desktop TTS utility. local-only ? 76 GPL M
Glate (Flathub) lin Linux desktop app that translates text and generates speech audio from it. hybrid ? unknown L
GNUspeech (Articulatory Speech Synthesis) lin/mac GNU project hosted on Savannah, registered under the group title 'Articulatory Speech Synthesis' — a tube-model articulatory synthesiser rather than a local-only dormant GPL (GNU proje V
GNUstep say (gnustep-gui-runtime) lin The +183 accepted Ask Ubuntu answer lists say from gnustep-gui-runtime first; a later benchmark answer in the same thread rates it 'n' for sounding local-only active LGPL (GNUstep) M
Higgs Audio lin Text-audio foundation model from Boson AI. local-only ? 8 Apache-2.0 M
IMS-Toucan lin Controllable, fast TTS covering over 7000 languages. local-only ? 2 Apache-2.0 M
IndexTTS lin/win Industrial zero-shot controllable TTS from Bilibili. local-only ? 22 NOASSERTION (c M
KaniTTS lin Small fast TTS (~370M class per a Vietnamese fine-tune) with a PyPI package for v2. local-only ? 459 NOASSERTION L
kokoro-server (kira) lin 'HTTP server interface to the speech synthesis program, kokoro.' local-only unknown 0 unknown L
Kyutai delayed-streams-modeling lin/mac Kyutai's streaming STT and TTS models (the TTS side of the Moshi line). local-only ? 3 Apache-2.0 M
Larynx lin Rhasspy's pre-Piper end-to-end TTS using gruut + ONNX. local-only ? 829 MIT M
LightTTS lin Lightweight inference framework optimized for CosyVoice2/CosyVoice. local-only ? 48 Apache-2.0 L
LLaSA lin LLaMA-based speech synthesis; train-time and inference-time compute scaling. local-only ? 662 NOASSERTION M
LuxTTS lin/win Voice-cloning TTS advertising ~150x realtime and 48kHz output. local-only ? 4 Apache-2.0 L
MARS5-TTS lin CAMB.AI's MARS5 speech model. local-only ? 2 AGPL-3.0 M
MaryTTS lin/win/mac Multilingual Java TTS platform with a client/server architecture. local-only ? 2 NOASSERTION (L M
Matcha-TTS lin/mac Fast non-autoregressive TTS using conditional flow matching (ICASSP 2024). local-only ? 1 MIT M
MBROLA lin/win Classic diphone speech synthesizer and its multilingual voice database, still used as a back-end for espeak-ng. local-only ? 500 AGPL-3.0 (reli L
MetaVoice-1B lin 1.2B foundational expressive TTS model. local-only ? 4 Apache-2.0 M
Mimic 3 (Mycroft) lin/legacy Mycroft's fast local neural TTS engine, designed to run on low-end hardware including Raspberry Pi. local-only ? 1 AGPL-3.0 L
MisoTTS lin 8-billion-parameter highly emotive TTS model. local-only ? 3193 NOASSERTION M
MOSS-TTS lin MOSS-TTS family including a realtime multi-turn context-aware variant; publishes TTFB and RTF. local-only ? 4 Apache-2.0 M
MOSS-TTS-Nano lin/win/mac 0.1B-parameter multilingual streaming speech model that runs on CPU without a GPU. local-only ? 4070 Apache-2.0 M
Mozilla TTS lin Mozilla's deep-learning TTS - the direct predecessor of Coqui TTS. local-only ? 10 MPL-2.0 M
nanotts lin 'Improved SVOX PicoTTS speech synthesizer' - the streaming/CLI-ergonomics fork named in the Ask Ubuntu thread. local-only dormant 126 Apache-2.0 M
nanotts (ky1e fork) lin 'Fork of nanotts, with enhancements that include speech-dispatcher configuration' — a small SVOX-pico-derived engine. local-only unknown 0 unknown L
nazdridoy/kokoro-tts (Codeberg copy) lin/mac/win 'A CLI text-to-speech tool using the Kokoro model, supporting multiple languages, voices (with blending)'. local-only unknown 0 unknown L
NVIDIA NeMo Speech lin NVIDIA's scalable speech framework (ASR + TTS), formerly NVIDIA/NeMo. local-only ? 18 Apache-2.0 M
Omilo Screen Reader lin GitLab repository whose only code is omilo-cli, a Qt command-line program that writes the text it is handed to /tmp and speaks it by shelling out to F local-only dormant 0 A LICENSE file M
Omni Text To Speech lin "Its primary goal is to provide an instant, hassle-free way to transform written text into natural-sounding voice audio... Type or paste your text int unknown unknown unset in store V
OmniVoice (k2-fsa) lin/mac/win Voice-cloning TTS covering 600+ languages. local-only ? 8 Apache-2.0 M
openedai-speech lin/legacy OpenAI-compatible TTS server over Coqui XTTS and Piper. local-only ? 859 AGPL-3.0 M
Orpheus-TTS lin Llama-backboned speech model aimed at realtime agents. local-only ? 6 Apache-2.0 M
PaddleSpeech lin/win Baidu's speech toolkit (ASR + TTS) on PaddlePaddle. local-only ? 12 Apache-2.0 M
Piper (rhasspy/piper) — ARCHIVED lin/win/mac/legacy The original, now-archived Piper repository — still the top search result for Piper by stars. local-only ? 11 MIT (the archi M
Piper — CURRENT upstream (OHF-Voice/piper1-gpl) lin/win/mac/legacy The maintained Piper: fast local neural TTS, now developed under the Open Home Foundation and relicensed GPL-3.0. local-only ? 5 GPL-3.0 M
piper-speak lin Simple text-to-speech wrapper for Piper TTS on Linux. local-only ? 6 MIT M
piper-tts -> pw-play streaming hotkey recipe (PipeWire) lin A single r/linux4noobs comment by u/Far-Cat (2023) giving a shell pipeline that streams Piper's raw output into PipeWire: `echo test | piper-tts --mo local-only active n/a (forum com M
Qwen3-TTS lin Alibaba Qwen's open TTS series with a dual-track hybrid streaming architecture. local-only ? 12 Apache-2.0 M
sapo (christosangel) lin 'A bash script that can convert txt to wav using Coqui TTS'. local-only unknown 3 unknown L
say (tts-say, Waser Technologies) lin 'echo but with TTS' — a pip-installable say command that mirrors echo's flags (-n/-e/-E/-L LANG/--out_path) and starts a local model server backed b local-only active 2 unknown M
Sesame CSM lin/win Conversational Speech Model; 1B backbone released as open weights. local-only ? 14 Apache-2.0 M
Soprano lin Instant ultra-realistic TTS; companion repo soprano-factory trains 2000x-realtime models. local-only ? 1398 Apache-2.0 M
Spark-TTS lin/win LLM-based TTS with a single-stream decoupled speech token design. local-only ? 11 Apache-2.0 M
Speak (Sugar Labs) lin "An animated face that speaks whatever you type" [vendor] — Sugar learning-environment activity. local-only unknown unknown V
Speech-AI-Forge lin/win Multi-model TTS project with API and WebUI around ChatTTS and friends. local-only ? 1 AGPL-3.0 M
speech-dispatcher-voxin (Hypra) lin Speech-dispatcher output module for Voxin, the commercially licensed IBM ViaVoice/Eloquence-derived voice pack used on Linux. local-only unknown 0 unknown L
Speect lin 'Speect is a multilingual text-to-speech (TTS) system... offers a full TTS system with various APIs, as well as an environment for research and develo local-only dormant MIT / X / Expa V
Step-Audio-EditX lin 3B LLM-based audio EDITING model (emotion/style/speed edits on existing speech). local-only ? 961 Apache-2.0 M
StyleTTS 2 lin/win Style-diffusion + adversarial training TTS; a common backbone for other projects. local-only ? 6 MIT M
SVOX Pico (libttspico / pico2wave) lin/legacy/and The one commercial-origin AT voice engine that ended up freely licensed: SVOX's compact engine was released in AOSP under Apache-2.0 and is packaged b local-only dormant , Apache-2.0 (AO M
TensorFlowTTS lin/win/and/ios Real-time TTS in TensorFlow 2 (Tacotron2, FastSpeech, MelGAN...), with mobile export. local-only ? 4 Apache-2.0 M
texttospeech (posktomten) lin/win 'A library that uses texttospeech (text to speech). For Qt5 and for Qt6' — a Qt TextToSpeech wrapper library. os-native unknown 1 unknown L
Tortoise-TTS lin/win/mac Multi-voice quality-first TTS; historically very slow, later optimized. local-only ? 14 Apache-2.0 M
tts-api (pedroetb) lin/legacy Node REST API fronting multiple local TTS engines (festival, espeak, google). hybrid ? 35 MIT M
tts-overlay (j-junckes) lin A TTS overlay built for Wayland. local-only ? 0 unknown L
TuxTalk lin 'TuxTalk is a software only speech synthesizer toolkit under the GPL. Its main goal is to allow the blind an open sourced and maintained [interface] a local-only dormant GPL-2.0 (SF ca V
TypeTalk lin "MaryTTS (Text2Speech) frontend with batteries included." [vendor, AUR description] local-only dormant unknown L
vall-e (lifeiteng) lin PyTorch VALL-E reproduction. local-only ? 2 Apache-2.0 M
VALL-E-X lin/win Open implementation of Microsoft's VALL-E X zero-shot TTS. local-only ? 7 MIT M
VibeVoice (community fork) lin/win Community-maintained fork of Microsoft VibeVoice. local-only ? 1 MIT M
VibeVoice (Microsoft) lin/win Microsoft's open frontier voice model; long-form multi-speaker synthesis. local-only ? 52 MIT M
VITS (original) lin The reference VITS paper implementation; ancestor of a large share of the local-TTS field. local-only ? 7 MIT M
voiced (sdelcore) lin A combined STT and TTS daemon written for Linux/Wayland specifically. local-only ? 0 MIT L
VoiceGen lin Qt6/CMake desktop text-to-speech converter supporting multiple offline/online engines such as SVOX pico and Amazon Polly, distributed via Snap and Fla hybrid active 12 unknown (READM M
VoiceGen (Flathub / GitLab) lin Linux Flatpak that converts text to speech; hosted on GitLab rather than GitHub. hybrid ? unknown L
VoiceStudio lin/win/mac Open-source ElevenLabs alternative: voice clone, dub, dictate, transcribe, audiobook creator and voice workflow studio. hybrid ? 9751 AGPL-3.0 M
vox-box lin/mac/win OpenAI-API-compatible TTS+STT server supporting Whisper, CosyVoice, Bark and others. local-only ? 215 Apache-2.0 M
VoxCPM / VoxCPM2 lin/mac Tokenizer-free multilingual TTS with voice design and cloning; 30 languages, 48kHz. local-only ? 35 Apache-2.0 M
WhisperSpeech lin TTS built by inverting Whisper; fully open training pipeline. local-only ? 4 MIT M
wyoming-piper lin/mac/legacy 'Wyoming protocol server for Piper text to speech system' [vendor] — wraps the Piper engine as a network daemon addressable from other machines. local-only active 195 MIT M
xtts-streaming-server lin/legacy Reference streaming server for XTTS. local-only ? 367 MPL-2.0 M
ZipVoice lin Fast zero-shot TTS with flow matching, from the k2/sherpa group. local-only ? 1 Apache-2.0 M
Zonos lin/win/mac Open-weight multilingual TTS with a transformer and a hybrid (Mamba) variant. local-only ? 7 Apache-2.0 M
Zonos2 lin Open-weight text-to-speech mixture-of-experts model. local-only ? 294 MIT M
Acapela Group win/mac/lin/legacy Voice vendor stating on its own French site '+de 30 langues et 200 voix disponibles + voix sur mesure' built on neural synthesis; a French blind-users hybrid commercial-l proprietary V
Acapela TTS Voices for NVDA win Acapela's own NVDA voice pack — the counterexample to the Code Factory story, because it shipped a build for NVDA 2026.x. local-only commercial-l Proprietary. ' M
AllTalk TTS win/lin/legacy TTS server built on the Coqui engine with a settings page, low-VRAM mode, DeepSpeed, a narrator mode, model finetuning and 'JSON calls' for third-part local-only active 2 AGPL-3.0 M
amitybell/piper win/mac/lin Embedded distribution of rhasspy/piper for Go — ships the engine inside a Go binary. local-only ? 16 MIT M
AT&T Natural Voices (AT&T Labs, licensed through Wizzard Softwar win/lin/legacy AT&T Labs' unit-selection voices, never sold by AT&T to end users - all sales and support were pushed to reseller Wizzard Software, which is why the v local-only discontinued proprietary, p M
Balcon (Balabolka Command Line Utility) win "Balabolka (Command Line Utility)... contains no graphical user interface and works only from the command line. This is useful to integrate the Text-T local-only active freeware per v V
Cepstral (Swift / SwiftTalker) win/mac/lin Small US voice house whose Swift engine was the premium voice option inside a generation of third-party readers (TextAloud, iSpeak It, Asterisk app_sw local-only commercial-l proprietary, p M
Cerence Inc. — Cerence Embedded TTS / Cerence Vocalizer Embedded win/lin/and/ios/legacy Successor engine to Nuance Vocalizer Expressive; the upstream licensor behind Tiflotecnia Voices for NVDA, Runa TTS, Voxin and NextUp's voice store. local-only commercial-l Proprietary, p M
Code Factory — Eloquence for Windows / Voices for NVDA win Commercial SAPI 5 synthesizer exposing the ETI-Eloquence voices to any SAPI-consuming application, plus a Voices-for-NVDA add-on; the vendor has annou local-only commercial-l commercial V
Code Factory — Voices for NVDA (Eloquence + Vocalizer add-on) — win The voice pack a large share of NVDA users bought; Code Factory's own product page is now headed 'Not available anymore' and announces discontinuation local-only discontinued Proprietary; w M
Echogarden win/mac/lin Cross-platform speech toolset (CLI + Node library) bundling many synthesis, recognition, forced-alignment and translation engines. hybrid ? 447 none declared M
First Byte SmoothTalker / Monologue win/legacy 1984 SmoothTalker and its later Monologue release - the engine behind Creative's Dr. Sbaitso and the default TTS bundled with early Sound Blaster soft local-only discontinued proprietary; a M
Genie-TTS win/lin GPT-SoVITS ONNX inference engine and model converter. local-only ? 1 MIT M
Google TTS For NVDA win NVDA synthesizer add-on exposing Google's Chrome WASM text-to-speech voices to the NVDA screen reader. local-only ? 39 see repo L
Kokoro-TTS-windows (mirbehnam) win 'Easy-to-use, zero-setup Kokoro TTS for Windows ... with a simple web interface. Just unzip and run!' local-only active 94 Apache-2.0 M
KokoroSharp win/lin/legacy Local Kokoro inference engine for .NET via ONNX runtime, shipped as a plug-and-play NuGet package with all voices included. local-only ? 236 see repo L
Lernout & Hauspie speech assets (TruVoice, RealSpeak, TTS3000) win/legacy Belgian speech company whose engines sat under a large share of late-1990s TTS - including the Michael/Michelle voices Microsoft shipped in Office - a local-only discontinued proprietary, l M
Loquendo TTS (engine) win/lin/legacy Turin-based TTS engine spun out of Telecom Italia in 2001, sold to Nuance in 2011; TTS 7.20 had added Linux (SUSE 11, Ubuntu 10) and ALSA support shor local-only discontinued proprietary, l M
Nuance Vocalizer / Vocalizer Expressive (Nuance Communications → win/lin/legacy The engine name carried by a large share of AT voice packs; Nuance was acquired by Microsoft (deal announced 2021, closed 2022) and the enterprise Voc hybrid unknown Proprietary OE V
NVDA IBMTTS Driver win NVDA add-on maintaining a driver for IBMTTS, a synthesizer in the Eloquence family favoured by experienced screen-reader users for its speed. local-only ? 76 see repo L
OutLoud Text Reader (FairPlay137) win Open-source free Windows text reader written explicitly as a Speakonia successor; a 'Speakalive' revival project exists separately. local-only ? 6 MIT M
Piper-Read (jame25) win Lightweight C# GUI for Piper TTS on Windows. local-only ? 20 check repo L
PiperUI win Windows desktop GUI for Piper. local-only ? 115 none declared M
Read Aloud - Text to speech (Microsoft Store) win Microsoft Store text-to-speech app published by aidoudxr; surfaced through the winget/msstore manifestSearch index. unknown unknown proprietary L
RHVoice win/legacy Free/open-source statistical-parametric synthesizer that plugs into the standard TTS interfaces on three platforms — SAPI5 on Windows, Speech Dispatch local-only ? 1 GPL (voices un M
sapi4out (bmonty) win 'Install script and script wrapper around SAPI4' — keeps the pre-SAPI5 Microsoft voices usable. os-native unknown 0 unknown L
SayIt win "A text-to-speech command line tool backed by Azure Cognitive Services." [vendor, repo description] cloud-API active 19 MIT V
Sonata (mush42) win/lin/legacy Cross-platform Rust inference engine for neural TTS models (Piper), with C, Python and gRPC bindings and Sonic-based prosody control. local-only ? 74 open source (s M
Text to Speech - AI Voice Generator (Microsoft Store) win Microsoft Store text-to-speech app published by NO FRIENDS LTD; surfaced through the winget/msstore manifestSearch index. unknown unknown proprietary L
Text to Speech - Natural AI Voices (Microsoft Store) win Microsoft Store text-to-speech app published by NxeCcde24 Labs; surfaced through the winget/msstore manifestSearch index. unknown unknown proprietary L
Text to Speech - Text Reader (Microsoft Store) win Microsoft Store text-to-speech app published by Rain Service; surfaced through the winget/msstore manifestSearch index. unknown unknown proprietary L
Text to Speech Free (Microsoft Store) win Microsoft Store text-to-speech app published by Free Software Tools; surfaced through the winget/msstore manifestSearch index. unknown unknown proprietary L
Text to Speech Voice Reader (Microsoft Store) win Microsoft Store text-to-speech app published by Some Media Apps; surfaced through the winget/msstore manifestSearch index. unknown unknown proprietary L
Tiflotecnia Vocalizer voices for NVDA win Vocalizer driver add-on plus 100+ commercial Nuance/Cerence Vocalizer voices in 60+ languages, sold through NV Access as well as the vendor. local-only ? commercial V
VOICEVOX ENGINE win/mac/lin/legacy The synthesis engine behind VOICEVOX, distributed as a standalone HTTP server; the project describes itself as the speech-synthesis engine of a free J local-only active 1 NOASSERTION on M
VOICEVOX · COEIROINK · SHAREVOX · LMROID · TALQu · VOICEPEAK · 音 win/mac/lin/web The Japanese-language consumer TTS engine cluster that English queries do not surface: free local neural engines (VOICEVOX, COEIROINK, SHAREVOX, LMROI local-only active mixed (free-fo L
Windows SAPI 5 (System.Speech.Synthesis / ISpVoice) win The classic desktop Windows speech interface: any SAPI 5 voice, driveable from PowerShell/.NET in two lines, with SpeakProgress events for word positi os-native ? proprietary (p M
Loquendo ios/web A speech-synthesis brand with strong recognition in Spanish-speaking markets; note that today's loquendo.io, loquendo.online and the App Store 'Loquen cloud-API unknown proprietary D
piper-app (IhorShevchuk) ios/mac Piper ported to iOS and macOS, packaged as an app. local-only ? 52 GPL-3.0 L
chatterbox-tts-api mac/win/lin OpenAI-compatible local TTS API using Chatterbox. local-only ? 661 AGPL-3.0 M
Chatterbox-TTS-Server mac/win/lin Self-hosted Chatterbox server with web UI and large-text chunking. local-only ? 1 MIT M
coqui-ai-TTS (idiap fork) mac/win/lin Maintained community fork of Coqui TTS by Idiap Research Institute. local-only ? 2 MPL-2.0 M
Crane mac/win/lin Pure-Rust inference engine (Candle) for LLM, VLM, TTS and OCR. local-only ? 448 MIT L
ESPnet mac/win/lin End-to-end speech processing toolkit (ASR, TTS, SE, ST) with reproducible recipes. local-only ? 9 Apache-2.0 M
flite (Homebrew formula) mac/lin "Small fast and portable speech synthesis system" [vendor] — CMU Flite. local-only active MIT-Festival A V
GPT-SoVITS mac/win/lin Few-shot voice cloning/TTS trainable from ~1 minute of audio; the highest-starred TTS repo in the sweep. local-only ? 60 MIT M
gTTS mac/win/lin Python library and CLI for Google Translate's TTS endpoint. cloud-API ? 2 MIT M
hibiki (upstream) mac Agent-first text-to-speech macOS app and CLI. unknown ? 3 none declared M
isimud-text-to-speech (crates.io) mac AI-native macOS menu-bar text-to-speech that also exposes itself as an MCP server for agents. hybrid ? , unknown L
Kitten-TTS-Server mac/win/lin Self-hosted Kitten TTS API server with a web UI. local-only ? 272 MIT M
kitten_tts_rs mac/win/lin Rust implementation of KittenTTS with a CLI and an API server. local-only ? 311 none declared M
KittenTTS mac/win/lin ONNX TTS family from 15M to 80M params, 25-80MB on disk, CPU-only, 8 built-in voices. local-only ? 15 Apache-2.0 M
Kokoro (hexgrad) mac/win/lin Inference library for Kokoro-82M, an 82M-parameter Apache-2.0 TTS model. local-only ? 8 Apache-2.0 M
kokoro-onnx mac/win/lin ONNX-runtime inference for Kokoro without PyTorch. local-only ? 2 MIT M
Kokoro-TTS-App (AlefAlfa) mac SwiftUI application providing offline TTS with Kokoro-82M. local-only ? 4 MIT L
KokoroVoice (kokoro-tts-macos) mac Registers Kokoro-82M as real macOS system voices through AVSpeechSynthesisProviderAudioUnit, so the built-in Speak Selection / VoiceOver pipeline spea local-only ? check repo M
LocalAI mac/win/lin Self-hosted OpenAI-compatible engine covering LLMs, vision, image, video and voice including TTS. local-only ? 48 MIT M
macOS /usr/bin/say (Speech Synthesis Manager CLI) mac Apple's built-in TTS command: choose voice, set rate in words per minute, play to a chosen audio device or write an audio file, and optionally echo th os-native ? proprietary (p M
macOS AVSpeechSynthesizer / NSSpeechSynthesizer (AVFAudio) mac/ios/legacy The programmatic macOS/iOS speech API: same OS voice supply as say, plus per-utterance callbacks (willSpeakRangeOfSpeechString) that give the word r os-native ? proprietary (A ?
Marvis TTS mac/win/lin CSM-architecture on-device streaming TTS (250M backbone + 60M decoder), MLX/Apple-Silicon friendly. local-only ? 366 Apache-2.0 M
MeloTTS mac/win/lin Fast multi-lingual CPU-realtime TTS library (EN/ES/FR/ZH/JP/KR). local-only ? 7 MIT M
mimic (Homebrew formula) mac/lin "Lightweight text-to-speech engine based on CMU Flite" [vendor] — Mycroft's engine. local-only active MIT-Festival A V
Moonshine mac/win/lin Very low-latency speech-to-text, intent recognition, and text-to-speech for voice interfaces. local-only ? 10 NOASSERTION (m M
NeuTTS (Air / Nano / 2E) mac/win/lin On-device TTS built on small LLM backbones, shipped in GGUF quantizations. local-only ? 6 NOASSERTION (c M
npm: @capacitor-community/text-to-speech mac/win/lin "Capacitor plugin for synthesizing speech from text." [vendor]. unknown active unknown V
npm: expo-speech mac/win/lin "Provides text-to-speech functionality." [vendor]. unknown active unknown V
npm: node-edge-tts mac/win/lin "node-edge-tts is a module that using Microsoft Edge's online TTS (Text [to Speech])" [vendor]. hybrid active unknown V
npm: react-native-tts mac/win/lin "React Native Text-To-Speech module for Android and iOS" [vendor]; npm date 2024-06-14. unknown active unknown V
open-jtalk (Homebrew formula) mac/lin "Japanese text-to-speech system" [vendor]. local-only active modified BSD V
OpenVoice mac/win/lin Instant voice cloning / tone-colour transfer (MIT + MyShell). local-only ? 37 MIT M
OuteTTS mac/win/lin Unified interface for OuteTTS models with GGUF/llama.cpp and ExLlama backends. local-only ? 1 Apache-2.0 M
Picovoice Orca mac/win/lin/legacy/and/ios On-device streaming TTS engine designed to consume LLM token streams. hybrid ? 143 Apache-2.0 (co M
piper-rs mac/win/lin Use Piper TTS models from Rust. local-only ? 58 none declared M
Pocket TTS (PocketTTS.cpp) mac/win/lin Single-file C++ runtime for Pocket TTS over ONNX Runtime with voice cloning and streaming. local-only ? 50 MIT L
pocket-tts (Homebrew formula) mac/lin "Text-to-speech application designed to run efficiently on CPUs" [vendor] — from kyutai-labs. local-only active MIT V
pyttsx3 mac/win/lin Offline Python TTS that drives the OS-native engines. os-native ? 2 MPL-2.0 M
ReadSpeak mac "Enter any text and ReadSpeak will speak your text back to you in the accent that you choose! Over 100 different accents." [vendor] os-native dormant proprietary V
RealtimeTTS mac/win/lin Streaming TTS orchestration layer: feeds strings/generators/LLM token streams into ~25 pluggable engines with fallback. hybrid ? 4 MIT M
rs-voice-toolkit-tts mac/win/lin "Text-to-speech functionality for rs-voice-toolkit" [vendor, crates.io description] — Rust crate in a voice toolkit. local-only active unknown V
say (macOS command) mac macOS built-in command-line speech synthesizer: reads stdin, a string or a file with any installed system voice, and can write to an audio file. os-native ? Proprietary, b D
sherpa-onnx mac/win/lin/and/ios/legacy ONNX-Runtime speech toolkit (STT, TTS, VAD, diarization) with bindings for ~10 languages and prebuilt binaries. local-only ? 14 Apache-2.0 M
Silero models mac/win/lin Pre-trained TTS (and STT) models packaged to be trivially loadable via torch.hub. local-only ? 6 NOASSERTION (p M
Speak My Text mac "In order to speak a text, just copy it and paste it into the application... Feature to Pause and resume while the text is being Spoken... saving the os-native commercial-l proprietary V
SpeakLine – Text to Speech mac "Type some text, select a voice, and your [device] reads it out loud... Import TXT or RTF files, Export your texts as a CAF audio file, SSML markup su os-native commercial-l proprietary V
speech (Homebrew formula) mac/lin "On-device speech toolkit for Apple Silicon: ASR, TTS, VAD, diarization" [vendor] — soniqo.audio. local-only active Apache-2.0 V
Supertonic mac/win/lin/ios/and/legacy On-device ONNX TTS, ~99M params, 31 languages, SDK examples in 11 language runtimes. local-only ? 13 MIT M
tauri-plugin-tts mac/win/lin "Native text-to-speech plugin for Tauri with multi-language and voice selection" [vendor, crates.io description]. os-native active see repo V
tauri-plugin-tts (crates.io) mac/win/lin Native text-to-speech plugin for Tauri with multi-language and voice selection — the synthesis layer several of the Tauri-based desktop readers in thi os-native ? 7202 unknown M
tortoise.cpp mac/win/lin ggml/C++ reimplementation of Tortoise. local-only ? 193 MIT M
TTS-ka mac/win/lin PyPI text-to-speech package surfaced by the site-scoped search; contents not read in this sweep. unknown unknown unknown L
TTS-WebUI mac/win/lin One Gradio+React WebUI with extensions for many TTS/audio models. local-only ? 3 MIT M
VibeASR.cpp mac/win/lin Edge CPU inference engine for VibeVoice-class models (BitNet). local-only ? 106 MIT L
VOICEPEAK mac/win "High quality text-to-speech software with emotional expression" [vendor] — commercial Japanese TTS studio app. local-only commercial-l proprietary, p V
Acapela Group legacy/ios/and Voice house supplying commercial TTS voices to assistive technology, including packaged voice add-ons for the NVDA screen reader, Chromebooks and Goog hybrid commercial-l Commercial per M
Amazon Polly legacy AWS's TTS service with Standard/Neural/Long-Form/Generative voice tiers and Speech Marks (word/sentence/viseme timing metadata) - the timing feed a wo cloud-API ? proprietary Sa M
Apple PlainTalk / MacinTalk legacy Apple's original speech stack - MacinTalk for synthesis (v1.0.2 dated 1985-04-15, used in the 1984 Macintosh introduction) and PlainTalk for recogniti os-native discontinued proprietary, b M
Azure AI Speech - Text to Speech (incl. F0 free tier) legacy Microsoft's neural TTS service with a permanently recurring free tier, word-boundary events, SSML, and an offline container/disconnected-deployment op hybrid ? proprietary Sa M
Azure OpenAI Service - TTS deployments legacy OpenAI's TTS models served under an Azure subscription instead of an OpenAI one - same models, different billing, tenancy and data-residency posture. cloud-API ? proprietary Sa L
BlastBay Studios voices (Richard, Libby) legacy A two-voice commercial SAPI 5 range aimed at screen-reader users, with a serial number that is not hardware-locked. local-only commercial-l Proprietary, s M
Cartesia (Sonic) legacy Credit-metered low-latency TTS (Sonic-3.5) with a free tier, sold alongside STT and voice-agent products from the same credit pool. cloud-API ? proprietary Sa M
CereProc (CereVoice), now trading under Capacity legacy/mac/lin Scottish text-to-speech voice house whose SAPI voices are sold as add-on voices for third-party readers; supplier of the free Scottish voices distribu hybrid commercial-l Commercial per M
CereProc / CereVoice (now trading under AI Software (Capacity) U legacy/lin/mac Edinburgh voice house behind CereVoice and the CereVoice Me voice-cloning service; acquired by Capacity on 10 July 2024, and cereproc.com now 301-redi hybrid commercial-l Proprietary. c M
CloudTTS legacy Minimal text-to-speech application: type or paste text, it reads it back. unknown ? unknown L
DECtalk / FonixTalk (DEC -> Force Computers -> Fonix -> SpeechFX legacy Klatt-formant synthesiser released by Digital Equipment Corporation in 1984 as the US$4,000 DTC01 box; the voice family associated in popular memory w local-only discontinued proprietary; c M
Deepgram Aura-2 / Aura-1 legacy Low-latency streaming TTS aimed at voice agents, priced per 1,000 characters with $200 of free starting credit and no credit card required. cloud-API ? proprietary Sa M
ElevenLabs Text to Speech API legacy Cloud neural TTS API (Multilingual v2/v3, Flash/Turbo) billed from a shared monthly credit pool; 1 credit per character on v2 Multilingual, 0.5-1 cred cloud-API ? proprietary Sa M
eloquence_64 (fastfinge) legacy The 64-bit answer: launches a 32-bit host process (eloquence_host32.exe) to load the 32-bit-only Eloquence DLL and streams audio back to 64-bit NVDA. local-only active Add-on code op M
eloquence_threshold (pumper42nickel) legacy Community NVDA add-on that keeps ETI-Eloquence loadable on NVDA 2019.3 through 2025 — 32-bit NVDA only. local-only active Add-on code is M
Emerging TTS API vendors (Neuphonic, Smallest.ai, Sarvam AI, Cam legacy A long tail of newer per-character TTS APIs that surface constantly in 2026 comparison articles; each would need its own verification pass. cloud-API ? proprietary Sa L
Fish Audio (Fish Speech / S1 API) legacy Commercial API in front of the same lineage as the open fish-speech models, with instant cloning from ~10 seconds of audio. hybrid ? proprietary Sa L
Freedom Scientific / Vispero synthesizer downloads (Vocalizer Ex legacy The JAWS/ZoomText/Fusion/MAGic voice channel: Vocalizer Expressive voices distributed by the screen-reader vendor itself, versioned against the host p local-only commercial-l Bundled with t M
Google Cloud Text-to-Speech (Standard / WaveNet / Neural2 / Stud legacy Per-character cloud TTS with a monthly recurring free allowance on every non-Gemini voice tier, plus prompt-steerable Gemini-TTS models billed per tok cloud-API ? proprietary Sa M
Google Gemini Developer API - TTS models (ai.google.dev) legacy The AI-Studio-side Gemini API, where gemini-2.5-flash-preview-tts and gemini-3.1-flash-tts-preview are listed as FREE OF CHARGE on the free tier - a d cloud-API ? proprietary Sa M
Groq TTS (PlayAI Dialog, then Canopy Labs Orpheus) legacy TTS served on Groq's LPU inference cloud - fast and cheap, but its model lineup has already turned over once after the PlayAI shutdown. cloud-API ? proprietary Sa L
Hear2Read legacy/and Free Indic-language and English voices for NVDA and Android, named on NV Access's extra-voices page. local-only unknown described as f L
Hume AI - Octave TTS legacy LLM-based TTS steered by natural-language emotional prompts instead of SSML prosody tags, with a small recurring free character allowance. cloud-API ? proprietary Sa M
IBM ViaVoice Outloud / ETI-Eloquence legacy/lin IBM's formant TTS engine - small on disk, small in memory, very fast - shipped as ViaVoice Outloud (including a Linux release in 1999) and as ETI-Eloq local-only discontinued 5 proprietary, l M
IBM watsonx Text to Speech legacy IBM's long-running TTS cloud service, also shippable as a customizable container into Red Hat OpenShift - one of the few majors with a documented self hybrid ? proprietary Sa ?
Inworld TTS (Realtime TTS-1 / TTS-2) legacy Low-latency TTS marketed at $5-$15 per million characters, positioned as the migration target for shut-down PlayHT workloads. cloud-API ? proprietary Sa ?
IVONA (ivona.com) — the original service legacy Polish TTS house bought by Amazon; ivona.com now carries a single line saying Amazon Polly replaced the IVONA Speech Cloud, dated © 2019. cloud-API discontinued Proprietary; o M
Kokoro-FastAPI (remsky) legacy Dockerised FastAPI wrapper around Kokoro-82M with CPU/AMD/NVIDIA support, voice mixing, auto-stitching and captioned timestamps. local-only ? 5 see repo L
Kokoros (lucasjinreal) legacy Kokoro reimplemented in Rust for fast realtime synthesis. local-only ? 806 see repo L
LMNT legacy Low-cost streaming TTS with a free Playground tier and per-character overage that drops with plan size. cloud-API ? proprietary Sa M
Microsoft Edge Read Aloud endpoint (unofficial; used by edge-tts legacy The undocumented WebSocket endpoint behind Edge's Read Aloud, reachable with no account and no API key - and repeatedly broken by Microsoft-side chang cloud-API ? 11 LGPL-3.0 for t M
Microsoft Sam, Mike, Mary, Anna (and the Michael/Michelle L&H vo legacy The bundled Windows voice line: Sam as the default on Windows 2000/XP with Mike and Mary as optional downloads, Michael and Michelle licensed from Ler os-native discontinued proprietary, b M
MiniMax Speech (Speech-02 HD / Turbo, Speech 2.x) legacy Chinese-lab TTS family with HD and Turbo tiers, resold through several inference marketplaces at lower headline rates than MiniMax's own list price. cloud-API ? proprietary Sa L
mlx-audio legacy TTS/STT/STS library on Apple's MLX framework. local-only ? 7 MIT M
mlx-speech legacy Pure-MLX speech synthesis, cloning, dialogue and ASR for Apple Silicon. local-only ? 36 MIT L
Murf AI API (Falcon / Studio-quality) legacy API arm of the Murf voiceover studio, split into a cheap conversational model and a pricier studio-quality model. cloud-API ? proprietary Sa L
naskopw/read_aloud legacy Cross-platform text-to-speech library. unknown ? 4 see repo L
NVIDIA Riva / NIM TTS (Magpie-TTS) legacy NVIDIA's self-hosted speech stack: TTS models pulled from NGC and deployed as containers/NIM microservices on your own GPU, plus a hosted trial endpoi hybrid ? NVIDIA AI Ente L
OpenAI Audio Speech API (gpt-4o-mini-tts, tts-1, tts-1-hd) legacy OpenAI's /v1/audio/speech endpoint: 13 built-in voices, chunked-transfer streaming, and an 'instructions' field that steers accent/emotion/speed on gp cloud-API ? proprietary Sa ?
OpenTTS legacy 'Open Text to Speech Server' [vendor] — one HTTP API in front of several synthesis engines and many languages, distributed as a Docker image. local-only archived 1 MIT M
OptiSpeech (mush42) legacy Lightweight end-to-end TTS model designed for fast on-device inference. local-only ? 130 open source (s L
Parler-TTS legacy Hugging Face's text-to-speech model steered by natural-language descriptions of the desired voice. local-only ? 5 Apache-2.0 L
parrot (rishiskhare) legacy Free, offline, private AI text-to-speech desktop app built in Rust. local-only ? 132 see repo L
Regional cloud TTS majors (Alibaba Cloud, Tencent Cloud, Baidu, legacy The non-Western hyperscaler TTS services - relevant only if language coverage or data residency points that way; none was measured in this pass. cloud-API ? proprietary Sa L
Resemble AI legacy Voice-cloning-first vendor with on-premises deployment and deepfake-detection tooling, positioned at enterprise rather than per-character consumer pri hybrid ? proprietary Sa L
Rime (Mist / Coda) legacy Usage-priced TTS with very low time-to-first-audio (37-96 ms P50 claimed), word-level timestamps on one model, and a self-host option on enterprise pl hybrid ? proprietary Sa ?
Runa TTS (AccessMind) legacy A 2025 entrant selling Cerence Vocalizer voices as an NVDA add-on with a voice-download manager, three-device personal licence and offline operation. local-only commercial-l Proprietary. V V
S.A.M. (Software Automatic Mouth) legacy JavaScript reimplementation of the 1982 Commodore 64 speech synthesizer. local-only ? open source L
sherpa-onnx TTS Engine (k2-fsa) legacy/lin/win/mac/ios Next-gen Kaldi's ONNX runtime for speech, shipping prebuilt Android APKs that register as the Android system TTS engine and run Piper/Coqui/other mode local-only ? 5 Apache-2.0 M
SoftVoice, Inc. (SVTTS; successor to Don't Ask Software / SAM) legacy/win Long-lived formant TTS vendor whose engine shipped inside pwWebSpeak and whose corporate lineage owns the 1982 Commodore 64 Software Automatic Mouth c local-only dormant proprietary; t L
Sonata NVDA add-on (sonata-nvda) legacy NVDA speech-synthesizer driver that lets the NVDA screen reader speak through neural TTS models, Piper in particular. local-only ? 71 GPL-2.0 M
speaches legacy Self-hosted OpenAI-API-compatible speech server covering text-to-speech alongside transcription and translation [vendor]; documentation at speaches.ai local-only active 3 MIT M
speak.js legacy eSpeak compiled to JavaScript via Emscripten - TTS entirely in the browser. local-only ? 1 GPL-3.0 M
SpeechifyAI API (api.speechify.ai, Simba models) legacy The API arm of Speechify: an OpenAI-shaped /v1/audio/speech endpoint with Simba 3.x streaming models, SSML emotion control and self-serve voice clonin cloud-API ? proprietary Sa M
StreamingKokoroJS legacy Unlimited text-to-speech running entirely in the browser with Kokoro-JS, fully local and open source. local-only ? 348 see repo L
The Scottish Voice legacy/mac Publicly funded set of Scottish-accented SAPI voices (Stuart, Heather, Callum, Isla, Andrew, Mairi, and Gaelic Ceitidh) given free to Scottish schools local-only active Free to Scotti M
Tiflotecnia Voices for NVDA 4.0 (Cerence Embedded TTS) legacy The successor path for users stranded by Code Factory: a licensed Cerence Embedded TTS driver for NVDA, built for Tiflotecnia by AccessMind, with a di local-only commercial-l Proprietary pe M
Tiflotecnia — Eloquence SAPI5 legacy Code Factory's Eloquence resold with Tiflotecnia support — the other half of NV Access's 'Eloquence is still available as a SAPI 5 voice' answer. local-only commercial-l Proprietary; p M
transformers.js legacy Run HF transformers models in the browser/Node via ONNX Runtime Web - includes TTS models. local-only ? 16 Apache-2.0 M
TTSMaker legacy Free browser-based text-to-speech site supporting many languages and voice styles, with ebook reading and MP3 export. cloud-API ? Proprietary, f L
Unreal Speech legacy Budget TTS API advertising per-word timestamps, 300 ms streaming and a 250K-character free allowance - the timestamps matter if you want word highligh cloud-API ? proprietary Sa ?
Verbio Technologies legacy Spanish speech-technology vendor (TTS and ASR) whose own site claims multilingual coverage across 250 languages for its adaptation and translation ser cloud-API commercial-l proprietary V
Vocalizer Expressive 2.2 for NVDA (Blind Help Project redistribu legacy A community-maintained redistribution of the Nuance Vocalizer Expressive NVDA driver, still being updated in 2026 — with a licensing position this swe local-only active unresolved — s L
voice-desk-tts legacy Browser-first Piper TTS workspace for testing voices, previewing output and exporting WAV. local-only ? 42 NOASSERTION M
Voxin (Oralux.org) legacy The commercial-voice route for LINUX screen readers: a not-for-profit association sells Cerence TTS / Vocalizer Embedded / IBM TTS packaged as speech- local-only dormant Proprietary vo M
Voxygen legacy French text-to-speech vendor offering voicebot, alerting, educational and brand-voice synthesis. [lang: French and others; English UI: yes] cloud-API commercial-l proprietary V
Web Speech API - SpeechSynthesis (browser speechSynthesis) legacy The browser's built-in speech controller - getVoices, speak, pause, resume, cancel, plus utterance boundary events - and therefore the zero-dependency hybrid ? web standard ( M
WellSaid Labs legacy Studio-oriented synthetic-voice vendor aimed at corporate narration; seat/subscription pricing rather than per-character API metering. cloud-API ? proprietary Sa L
WhisperSpeech legacy Open-source text-to-speech built by inverting Whisper, from Collabora. local-only ? 4 MIT L
Willow Inference Server legacy 'Open source, local, and self-hosted highly optimized language inference server supporting ASR/S...' [vendor, description truncated on the API respons local-only active 510 Apache-2.0 M
Windows 11 Narrator natural voices (on-device neural) legacy Downloadable on-device neural voices, far better than the legacy Zira/David set - but Microsoft has scoped them to Narrator, and third-party apps are os-native ? proprietary (p ?
Windows.Media.SpeechSynthesis.SpeechSynthesizer (OneCore / WinRT legacy The modern WinRT synthesis class: SynthesizeTextToStreamAsync / SynthesizeSsmlToStreamAsync returning a stream you play yourself; exposes the OneCore os-native ? proprietary (p M
Yandex SpeechKit legacy Yandex Cloud's TTS/STT service; strong Russian-language coverage, and the pricing docs did not render for the scraper in this pass. cloud-API ? proprietary Sa L
jstts web 'A fully client-side, JavaScript-only Text-to-Speech (TTS) service using eSpeakNG. No server-side' — WASM eSpeak NG in the browser. local-only unknown 0 unknown V

Catalogue — Found during the sweep, does not serve this use case — kept, not discarded

96 entries. Evidence tier: M measured (source read) · V vendor claim · L lead, unverified · D derived.

Acq = acquisition mechanism. Clipboard = does reading a selection clobber your clipboard. Superlatives appearing in these cells sit inside attributed quotations; the catalogue does not rank.

Tool Plat What it is Runtime Status Stars Licence Ev
Speak-Selection (derek1906, Android) and Android app mimicking the iOS 'Speak Selection' button. os-native ? 9 check repo L
SpeakThat and Android notification reader that speaks incoming notifications aloud. local-only ? 126 see repo L
fittsmon / fittsmon-gui (muzlabz GitLab, linux-bird Codeberg) X11 'Set mouse hot edges events for x11' — a Fitts's-law mouse utility that keyword-matches 'tts' and appears in every naive TTS sweep; the Codeberg copie local-only unknown 1 unknown M
clipboard-watcher (slobbe) lin 'A GNOME Shell extension that shows the current clipboard contents' — no speech. local-only unknown 0 unknown L
computer-use-linux (agent-sh) lin Linux desktop control over MCP using AT-SPI, GNOME Shell, Wayland portals and ydotool - a worked inventory of every Linux acquisition and input route local-only active 366 L
Dasher (SourceForge record) lin/win/mac 'Dasher is a data entry interface incorporating language modelling and driven by continuous two-dimensional gestures'; the SF page redirects developme local-only dormant GPL-2.0 (SF ca V
DiffSinger lin Singing voice synthesis via shallow diffusion (also does TTS). local-only ? 4 MIT M
dograh lin/legacy Self-hosted voice-AI platform (alternative to Vapi/Retell) with BYOK speech-to-speech. hybrid ? 5 NOASSERTION M
fairseq lin Meta's seq2seq toolkit - the home of MMS-TTS (1100+ language TTS models). local-only ? 32 MIT M
FreeRDP lin/win/mac Open-source RDP client/library - listed because the remote-desktop transport is what determines whether remote text is text or pixels. local-only ? 13 Apache-2.0 D
gnome-say lin GitHub repository whose description reads 'GNOME Shell extension to speak clipboard contents aloud'; the repository contains a LICENSE file and nothin unknown dormant 0 GPL-3.0 M
gok (GNOME On-screen Keyboard) lin 'GOK is an on-screen keyboard. An alternative to the mouse/keyboard input system (for unix-like systems with GNOME libraries.)' local-only dormant LGPL-2.0 (SF c V
manga-image-translator lin/win/mac Detects, OCRs, translates and re-renders text inside manga/comic images. hybrid ? 10 GPL-3.0 M
manga-ocr lin/win/mac Specialized Japanese-manga OCR model. local-only ? 2 Apache-2.0 M
MockingBird lin/win Clone a voice in 5 seconds to generate arbitrary speech in real time (Chinese-focused SV2TTS). local-only ? 36 NOASSERTION M
Moshi lin/mac Full-duplex spoken dialogue foundation model. local-only ? 10 Apache-2.0 M
piper (Foozoori, Codeberg) lin 'GTK application to configure gaming devices' — a name collision with Piper TTS that any keyword sweep will surface. local-only unknown 0 unknown M
Real-Time-Voice-Cloning lin/win Clone a voice in 5 seconds (SV2TTS); the repo that popularized voice cloning. local-only ? 60 MIT M
Speaker-selection / diarization repos (Speaker_selection_pipelin lin Repos about choosing which SPEAKER (person or voice) to use, not about reading a screen selection. local-only ? 0 mixed M
Unit-selection TTS research repos (unit_selection_tts, Google2St lin Academic implementations of concatenative 'unit selection' speech synthesis. local-only ? 11 mixed M
Vocalinux lin Linux dictation project documenting IBus/Wayland/suspend reliability work, including a ydotool clipboard-paste fallback for non-ASCII characters. local-only unknown unknown V
vocalinux / handy-realtime / eustoma / voice-2-clipboard (Codebe lin/win Cluster of offline speech-to-text tools found in the same Codeberg sweep: vocalinux (Linux, whisper.cpp), handy-realtime, eustoma (faster-whisper + QF local-only unknown 0 unknown L
VoxForge lin/win 'VoxForge collects user-submitted speech audio files for the creation of Acoustic Models for Free and Open Source Speech Recognition Engines such as H local-only dormant GPL-2.0 (SF ca V
vui lin Real-time voice assistant with WebRTC streaming, faster-whisper ASR, local LLM and a small TTS. local-only ? 741 NOASSERTION M
yazses lin/mac/win "Local, offline voice dictation for Linux, macOS, and Windows — hold [a key to dictate]" [vendor, PyPI title]. local-only unknown unknown L
ClonEpub-Pocket win/mac/lin Voice-cloning ePub reader, built because the author disliked an audiobook narrator. local-only ? 35 none declared M
deepfake-tts-windows-tool win Repository whose README is a stated plan for a Windows right-click shell extension that would read highlighted text with a user-supplied voice-clone m unknown dormant 0 none declared M
Document/PDF-to-audio batch converters (PDF_OCR_TTS, ocr-tts var win/mac/lin Scripts that convert a PDF or scanned document to text and then to an audio file, offline and in batch. local-only ? 0 mixed M
Dr. Sbaitso (Creative Labs, 1991) win Sound Blaster's bundled 'doctor' chatbot demo, whose speech was a build of First Byte's Monologue engine; the acronym expands to SoundBlaster Acting I local-only discontinued proprietary, b M
espanso win/mac/lin Cross-platform text expander in Rust with a system-wide keystroke listener and per-platform input backends (X11, Wayland-with-caveats, Win32, macOS). local-only active 14242 L
FastPlay win Fast, accessible Windows audio player with tempo/pitch shifting and screen-reader accessibility. local-only ? 14 none declared M
FlaUI-MCP (shanselman) win MCP server for Windows desktop automation using FlaUI over UI Automation. local-only active 74 L
Game accessibility mod cluster (Tolk/UniversalSpeech-based) win A large and fast-growing family of per-game mods that speak menus and dialogue through a running screen reader - dozens of repos, typically 1-15 stars local-only ? 1 mixed (MIT, GP M
Hotkey dictation cluster (opentypeless, koe, typeflux, vocamac, win/mac/lin A large, high-star 2026 cluster of speech-TO-text tools: hold a hotkey, speak, and transcribed text is pasted at the cursor. local-only ? 440 mixed (MIT / A M
hunt-and-peck (zsims) win Vimium-style keyboard navigation for Windows applications built on the UI Automation framework - a demonstration that UIA can enumerate on-screen text local-only dormant 803 L
mcp-windows (sbroenne) win Lets agents control Windows applications by UI Automation element name rather than coordinates. local-only active 76 L
MORT win Korean real-time game screen translator using OCR. hybrid ? 1 MIT M
OCR-Translator (tomkam1702) win Real-time game subtitle translator with AI-powered OCR and context-aware translation. hybrid ? 69 NOASSERTION M
pyvideotrans win/lin/mac Translates video and embeds dubbing and subtitles. hybrid ? 18 GPL-3.0 M
Speekaboo win/lin Drop-in replacement for Speaker.bot using Piper TTS. local-only ? 8 MIT M
stardew-access win/mac/lin Accessibility mod for Stardew Valley with screen-reader and keyboard-only support. local-only ? 99 GPL-3.0 M
Sunshine + Moonlight (self-hosted game streaming) win/lin/legacy 'Self-hosted game stream host for Moonlight' [vendor] paired with the Moonlight client; a low-latency video+audio pixel stream. local-only active 40 GPL-3.0 (both) M
TTS overlays for gaming and streaming (autohotkey-tts-overlay, i win Hotkey-driven TTS overlays that pipe synthesized speech into a virtual audio cable for voice chat, streams and soundboards. local-only ? 1 mixed (MIT / G M
TTS Voice Wizard win "Speech to Text to Speech. Song now playing. Sends text as OSC messages to VRChat to display on avatar." [vendor] hybrid active 795 MIT V
voice-pro (abus-aikorea) win/legacy Gradio web UI bundling Edge-TTS and Kokoro with zero-shot cloning and dubbing workflows - a creator studio, not a reader. hybrid ? 12 see repo ?
win-speak-selection win GitHub repository whose description promises 'Read selected text aloud on Windows with a hotkey — macOS Speak Selection (Option+Esc) equivalent using unknown dormant 0 none declared M
Window-Eyes win A once-major commercial Windows screen reader (GW Micro, later Ai Squared/Vispero), discontinued in 2017 with users directed to JAWS. local-only discontinued proprietary, d D
AssistiveWare (Proloquo4Text / Proloquo2Go) ios AAC product line for iOS including text-based and symbol-based communication apps with natural voices and word prediction. local-only ? Proprietary, p L
audiblez mac/win/lin Generates audiobooks from e-books using Kokoro. local-only ? 8 MIT M
AudioCupcake mac "Master your audiobook narration and podcasts" [vendor] — audiobook/podcast production tool. unknown commercial-l proprietary V
Claude Code / AI-agent narration tools (auto-speech, claude-tts- mac/win/lin Tools that speak an AI coding agent's responses aloud via hooks, rather than reading arbitrary screen content. local-only ? 0 mixed M
claude-sonar mac/lin/win A screen-reader accessibility plugin for Claude Code - makes a specific developer TUI legible to a screen reader. local-only ? 11 MIT M
claude-tts / claude-code-narrator / jarvis-line / virgo mac/lin/win A cluster of plugins that speak an AI coding agent's output aloud (Claude Code, OpenCode, Gemini CLI), via ElevenLabs/OpenAI/Polly/Azure/local system hybrid ? 27 varies L
clawdcursor (AmrDab) mac Compiles what is on screen into one map by fusing the accessibility tree with OCR into addressable elements. local-only active 392 L
ebook2audiobook mac/win/lin Batch converts e-books into audiobooks with voice cloning across 1158+ languages. local-only ? 19 Apache-2.0 M
epub_to_audiobook mac/win/lin EPUB to audiobook converter optimized for Audiobookshelf. hybrid ? 2 MIT M
GLaDOS mac/win/lin Real-time voice assistant personality core (STT + LLM + TTS loop). local-only ? 5 MIT M
Handy mac/win/lin Free, offline speech-to-TEXT app (the inverse direction). local-only ? 29 NOASSERTION L
Hark mac/ios Example text-to-speech app for macOS/iOS in Swift. os-native ? 185 none declared M
holdtranscribe mac/win/lin "Hotkey-Activated Voice-to-Clipboard Transcriber" [vendor, PyPI title] — hold a key, speak, get text on the clipboard. hybrid unknown unknown L
Loupe (smughead) mac macOS accessibility inspector that hovers, annotates and copies structured output. local-only active 108 L
MoneyPrinterTurbo mac/win/lin Generates short videos from a topic or keyword with an automated AI workflow; TTS is one internal step. hybrid ? 102 MIT M
OpenUtau mac/win/lin Open singing-synthesis platform (UTAU successor). local-only ? 4 MIT M
Voxista (kleinschmidt) mac 'Local dictation for macOS — press a hotkey, speak, get polished text. 100% offline' (whisper.cpp). local-only unknown 0 unknown L
abogen (denizsafak/abogen) legacy Generates audiobooks with synchronized captions from EPUBs, PDFs and text files. local-only ? 5618 MIT M
AlternativeTo (alternativeto.net) — blocked surface legacy Crowd-maintained 'alternatives to X' database — the canonical structured source for 'what else is like this tool', and a source class neither round qu cloud-API active n/a M
Asterics AAC legacy/and/win/lin Free offline-capable AAC app with flexible input options, media and smart-home integration. hybrid ? 116 AGPL M
AwesomeTTS (AwesomeTTS/awesometts-anki-addon, now Vocab-Apps/ank legacy The older Anki text-to-speech add-on: batch-generate audio for a deck or speak on the fly during review. hybrid ? 501 GPL-3.0 M
C-Pen Reader 3 / C-Pen Exam Reader 2 legacy Contact scanning pens that read a swiped LINE of printed text aloud; the Exam Reader variant is deliberately stripped for invigilated exams. local-only commercial-l Commercial har M
C-Pen Reader 3 / IRISPen Reader 8 (reading pens) legacy Handheld pens marketed for dyslexia that scan a line of printed text and read it aloud through a built-in speaker or headphones, with dictionary looku local-only ? commercial V
Cboard legacy/and/ios Open-source AAC (augmentative and alternative communication) system with text-to-speech for the browser; the free counterpart to the AssistiveWare pro hybrid ? 746 GPL-3.0 M
Dictionariez (pnlpal/dictionariez) legacy Dictionary extension with double-click word lookup in 20+ languages that also pronounces the looked-up word and integrates with Anki. hybrid ? 664 GPL-2.0 M
ebook2audiobookpiper-tts legacy Converts ebooks into audiobooks using piper-tts. local-only ? 108 see repo L
Global AutoCorrect (LexAble, now sold via Texthelp) legacy Real-time spelling correction that works across Windows applications; on the DSA list it is bundled into both ClaroRead and Read&Write as 'AutoCorrect local-only commercial-l Commercial; DS M
hass-edge-tts legacy Home Assistant TTS integration on the Edge endpoint - listed to show where this engine supply actually gets consumed. cloud-API ? 485 see repo ?
HyperTTS (Vocab-Apps/anki-hyper-tts) legacy Anki add-on that generates speech for flashcard fields, either batched into the collection or realtime during review, across many free and paid TTS se hybrid ? 275 GPL-3.0 M
Interactron: Embodied Adaptive Object Detection — Kotar & Mottag legacy Object-detection method for an embodied agent that adapts its detector at test time while moving through a physical 3D environment. local-only dormant research code M
IRISPen Reader 8 / IRISPen Air 8 (I.R.I.S., Canon Group) legacy Canon-group scanning pens with an LCD touchscreen, offline OCR and text-to-speech; Reader 8 is standalone, Air 8 adds translation. local-only commercial-l Commercial har M
minecraft-access legacy Minecraft Java mod (Fabric/NeoForge) that makes the game playable by visually impaired players, including speech output. local-only ? 92 see repo L
obs-wayland-hotkeys (leia-uwu) legacy OBS Studio plugin that retrofits GlobalShortcuts-portal hotkeys onto OBS on Wayland - a worked example of an existing app that lost global hotkeys in local-only active 97 GPL-2.0 M
pdf-narrator (mateogon/pdf-narrator) legacy Converts PDFs and EPUBs into audiobook files with configurable TTS settings and text extraction tuned for low-resource machines. local-only ? 200 MIT M
PixelTone — Laput et al., CHI 2013 legacy Multimodal photo-editing interface combining spoken natural-language commands with sketching to localise the edit to a region. local-only dormant research proto M
PlayHT / PlayAI (Play Dialog) - SHUT DOWN legacy A widely-integrated TTS vendor that no longer exists: Meta acquired the team in July 2025, the API went dark that month, and the platform sunset on 31 cloud-API ? n/a ?
ReCalibri legacy Browser extension that swaps Times New Roman for accessible typefaces (Calibri, Aptos, Open Sans, Lexend, Atkinson Hyperlegible, OpenDyslexic). local-only ? unknown L
Scanmarker Reader / Pro / Max (Scanmarker) legacy Scanning pens whose distinguishing move is routing OCR text to a WEB APP on your computer or phone (app.scanmarker.com) where it is read aloud and res hybrid commercial-l Commercial har M
Scoop (Windows) and nixpkgs — measured-thin registries legacy Two package registries round 2's registry angle did not query. Probed here: nixpkgs by-name contains speechd, speech-tools, tts, blightmud-tts and spe local-only active n/a M
Simon (KDE) legacy KDE's speech RECOGNITION application (speech to text), the inverse direction from this use case. local-only discontinued 42 GPL M
Speechify for VS Code (hddevteam/speechify) legacy VS Code extension built on Azure Speech Services with 200+ voices; as of 3.0 it is positioned as a script-to-video production tool inside the editor. cloud-API ? 6 MIT M
Tactual legacy Screen-reader navigation cost analyzer — models the effort an assistive-technology user spends reaching interactive web content, under five AT profile local-only ? unknown L
Talking Moose legacy Steven Halls' 1986 Macintosh desk accessory - the first animated talking agent on a personal computer - which popped up and said prepared jokes throug local-only active originally sha M
TTS-Story legacy Web-based multi-voice TTS studio turning tagged scripts into audiobooks, with speaker management, a job queue and many local/API backends. hybrid ? 308 see repo L
WebAnywhere legacy A research web-based screen reader that ran in the browser with no install, so a blind user could get speech on any machine. hybrid ? open source (r L
XivVoices legacy Final Fantasy XIV plugin that voices in-game dialogue with TTS. local-only ? 37 see repo L
Bitbucket public repository search (removed surface) ? Bitbucket's public repository-listing and search endpoints now return 'CHANGE-2770 - Functionality has been deprecated', so no unauthenticated enumera unknown discontinued n/a M
Gitee and Pagure (thin surfaces) ? Pagure (Fedora's forge) yielded only speech-tools, RHVoice and a BlindReader IoT toy across six patterns; Gitee's v5 search API returned an empty arra unknown unknown n/a M
SourceForge directory search (blocked surface) ? SourceForge's category and keyword directory pages returned HTTP 403 (Cloudflare) to every request from this environment, including with full browser unknown unknown n/a M
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment