Zotero-OpenReader icon

Zotero-OpenReader

Text-to-speech for Zotero 10: more voices, word-and-sentence highlighting in your colors, keyboard shortcuts.

Zotero 10 Latest release Downloads Last commit License

English · 简体中文

Read Aloud reading a paragraph: the word being read in blue, its sentence in yellow

If you like Zotero-OpenReader, give it a ⭐ on GitHub — it helps others find it.

What it adds

Zotero-OpenReader adds voices and a player to Zotero 10: each provider is an entry of the player's first dropdown, and Zotero's own Standard and Premium are two more, each behind a switch of its own. It is built for the way its author reads — why, and where it is going.

Install

  1. Download the .xpi file from the latest release — in Firefox, right-click → Save Link As…
  2. Tools → Plugins → ⚙ → Install Plugin From File…, then restart Zotero. Inside Zotero the plugin is named OpenReader.
  3. Enable a provider in Edit → Settings → OpenReader — Fish Audio first, if you are not sure (why) — then pick it in the player's first dropdown and one of its voices.

The player as a top bar, reading with a Fish Audio voice: the word being read in blue, its sentence in yellow

Providers

Start with Fish Audio. Of everything below, it is the one to try first:

→ Setting it up

Provider What you need Cost Highlighting
Azure Speech Speech resource key + region · tutorial Free tier: 500,000 characters a month word; sentence for the voices named MAI-Voice-2
Cloudflare Workers AI Account ID + API token · tutorial 10,000 free Neurons a day: a few pages with an Aura voice, hours with MeloTTS sentence
Speechify An API key from platform.speechify.ai · 36 languages, no Mandarin Free: 50,000 characters a month, about fifteen pages; then $10 a month for a million word
Fish Audio An API key from fish.audio · official voices, your own clones, and Model IDs, with a switch for each source · tutorial Free with its free model: no cap, no guarantee; the paid one $15 per million bytes of text, three per Chinese character word
Kokoro-FastAPI A server on your machine or LAN · tutorial Free; CPU works, a GPU is faster word
Fish Speech A fish-speech server on a 24 GB GPU, with voices cloned from your own recordings · tutorial Free sentence
OpenAI An API key from platform.openai.com Billed per character sentence
Xiaomi MiMo An API key from platform.xiaomimimo.com Free for a limited time sentence
OpenAI Compatible The address of any server that speaks OpenAI's API, and a key if it wants one: a self-hosted Chatterbox, a hosted service, a proxy of OpenAI The server's own price; self-hosted servers are free sentence
System voices Nothing — Windows and macOS Free, offline word on Windows, sentence on macOS
Zotero Standard / Premium A Zotero account signed in under Edit → Settings → Account; a switch each in the Zotero Read Aloud section, both on to begin with Zotero's own credits, bought on zotero.org word

The player's first dropdown lists every enabled provider that has voices right now, and Zotero's own Zotero Standard and Zotero Premium while their switches are on, sorted by name.

OpenAI, Xiaomi MiMo and OpenAI Compatible: how to fill the settings in
Cloudflare Tunnel and other gateways

Put the gateway's headers in Extra headers — of the OpenAI Compatible section, or of the Kokoro-FastAPI one — as Name: value pairs separated by ;, for example CF-Access-Client-Id: …; CF-Access-Client-Secret: …. They go out with every request. Tutorial.

System voices

Read Aloud already lists the voices Windows and macOS install, under Local, but bare: no sample, no favorite, no cache, no word highlight.

Enable in the System voices section gives them all of that:

Resume where you stopped

Close a document in the middle of listening, quit Zotero, come back days later, press Shift+Space — Read Aloud goes on from the sentence you stopped at. Zotero on its own does not keep that place; the plugin keeps it for every document you have listened to.

Settings

Player

Everything is under Edit → Settings → OpenReader.

Highlight

The Highlight group

Keyboard shortcuts

The Keyboard shortcuts group

Shift+Space is the only key you need — one key, whatever the reader is doing:

Shift+S stops Read Aloud everywhere — every tab's player closes at once, a short message says how many, and each tab keeps its place for the next time. While no player is open the key keeps its usual meaning.

Shift+W turns the word highlight on and off without leaving the document — the Word switch of the Highlight section. It takes effect on the sentence being spoken, in every tab, and stays until you change it again; a short message says what is highlighted now. Turning it off never leaves the page bare: the sentence comes on. A voice without word timing keeps highlighting the sentence either way, and the message says so.

Shift+H / Shift+U highlight or underline the sentence being read, playing or paused, as an annotation of the document, with its popup open for a comment. Early in a sentence, the one just finished is annotated instead. With no reading open the keys keep their usual meaning.

Voice browser

The voice browser: provider, language and voice columns

Every voice Read Aloud can use, in the player's own three steps — provider (or Zotero's Standard / Premium), language, voice.

Favorites, samples, the default voice

Reading

Expanded player, document voices, pauses, prefetch, cache, a page's first line, a sentence split in two

Scrolling

Default scrolling, auto-scroll style, the reading line, browsing while listening, return and skip

Backup and sync

WebDAV — one folder of your own, used by the sync and by the server backup below.

WebDAV URL examples

The URL is a folder, created on the first upload. Nextcloud: https://cloud.example.com/remote.php/dav/files/<user>/zotero-openreader/; Jianguoyun: https://dav.jianguoyun.com/dav/zotero-openreader/ with an app password.

Sync — what follows you between computers on its own, both ways.

Backup — one-way copies, restored by hand.

Troubleshooting

Common problems

Compatibility

Development

npm install
npm test          # vitest, also builds build/Zotero-OpenReader.xpi
npm run typecheck
npm run build

notes/NOTES.md records the Zotero internals the plugin relies on and every incident so far.

Acknowledgments

License

AGPL-3.0, the same license as Zotero itself. Not affiliated with Zotero.

Contributions are accepted on the terms in CONTRIBUTING.md, which also let the author ship them in his OpenReader app for phones and tablets.

Buy me a coffee

Buy me a coffee