Zotero-OpenReader 图标

Zotero-OpenReader

Zotero 10 的文字转语音插件:更多语音、按你的颜色逐词与逐句高亮、键盘快捷键。

Zotero 10 最新发行版 下载量 最近一次提交 许可证

English · 简体中文

朗读正在读一段文字:正在读的词是蓝色,它所在的句子是黄色

如果你喜欢 Zotero-OpenReader,欢迎到 GitHub 给它点个 ⭐——让更多人发现它。

它增加了什么

Zotero-OpenReader 为 Zotero 10 增加了语音和播放器:每个服务商都是播放器第一个下拉框里的一个条目,而 Zotero 自己的标准和高级是另外两个,各自都有自己的开关。它按作者自己的阅读习惯来做——为什么这样做、往哪里去。

安装

  1. 到最新发行版下载 `.xpi` 文件——Firefox 里右键 → 链接另存为…
  2. 工具 → 插件 → ⚙ → Install Plugin From File…(插件窗口没有中文),然后重启 Zotero。插件在 Zotero 里显示为 OpenReader。
  3. 到编辑 → 设置 → OpenReader 里启用一个服务商——拿不准就先启用 Fish Audio(为什么)——再在播放器第一个下拉框里选它和它的一个语音。

顶部栏的播放器,正在用 Fish Audio 的语音朗读:正在读的词是蓝色,它所在的句子是黄色

服务商

**先从 Fish Audio 开始。**下面这些里,它是最值得先试的一个:

→ 怎么设置

服务商 需要什么 费用 高亮
Azure Speech 语音资源的密钥和区域 · 教程 免费额度:每月 50 万字符 逐词;名字里带 MAI-Voice-2 的语音逐句
Cloudflare Workers AI 账户 ID 和 API 令牌 · 教程 每天 10,000 个免费 Neurons:Aura 语音够读几页,MeloTTS 够读几个小时 逐句
Speechify 一个 platform.speechify.ai 的 API 密钥 · 36 种语言,没有普通话 免费:每月 50,000 字符,约十几页;之后每月 10 美元 100 万字符 逐词
Fish Audio 一个 fish.audio 的 API 密钥 · 官方语音、你自己克隆的语音,以及 Model ID,每种来源都有独立开关 · 教程 免费模型不花钱、不限量、不保证速度;付费模型每百万字节文本 15 美元,一个汉字算三个字节 逐词
Kokoro-FastAPI 一台跑在本机或局域网里的服务器 · 教程 免费;CPU 也能跑,有 GPU 更快 逐词
Fish Speech 一台跑在 24 GB 显卡上的 fish-speech 服务器,语音由你自己的录音克隆而来 · 教程 免费 逐句
OpenAI 一个 platform.openai.com 的 API 密钥 按字符计费 逐句
Xiaomi MiMo 一个 platform.xiaomimimo.com 的 API 密钥 限时免费 逐句
OpenAI Compatible 任何说 OpenAI 接口的服务器地址,服务器若要密钥再加一个:自建的 Chatterbox、托管服务、OpenAI 的代理 服务器自己的价钱;自建的服务器不花钱 逐句
系统语音 什么都不用——Windows 和 macOS 免费、离线 Windows 逐词,macOS 逐句
Zotero 标准/高级 登录 Zotero 账户(编辑 → 设置 → 账户);Zotero Read Aloud 这一节里每档各有一个开关,一开始都是开着的 Zotero 自己的额度,在 zotero.org 购买 逐词

播放器第一个下拉框列出眼下有语音的每一个已启用服务商,以及开关开着时 Zotero 自己的 Zotero 标准和 Zotero 高级,按名称排序。

OpenAI、Xiaomi MiMo 和 OpenAI Compatible:各项怎么填
Cloudflare Tunnel 等网关

把网关要的请求头填进额外请求头——OpenAI Compatible 那一节的,或者 Kokoro 就用 Kokoro-FastAPI 那一节的——写成 名称: 值,多个之间用 ; 分隔,例如 CF-Access-Client-Id: …; CF-Access-Client-Secret: …。每个请求都会带上它们。教程。

系统语音

朗读早就把 Windows 和 macOS 自带的语音列在本地里了,但那是光秃秃的:不能试听、不能收藏、没有缓存、没有逐词高亮。

系统语音那一节里的启用把这些都给它们:

从上次停下的地方接着读

听到一半关掉文档、退出 Zotero,过几天回来按 Shift+Space——朗读就从你停下的那一句接着读。Zotero 自己不保留这个位置,插件替你保留,每一个你听过的文档都记。

设置

播放器

全部在编辑 → 设置 → OpenReader 里。

高亮

高亮那一组

键盘快捷键

键盘快捷键那一组

Shift+Space 是你唯一需要记的键——不管当时是什么情形,都是这一个键:

Shift+S 停止所有朗读——所有标签页的播放器一次全部关掉,一条简短的提示说明停了几个,每个标签页的阅读位置都保留着,下次从原处接着读。没有播放器打开时,这个键保持原来的作用。

Shift+W 开关单词高亮,不用离开文档——是高亮一节的单词开关。这个改动落在正在读的这一句上,每个标签页都是,并一直保留到你下次更改;一条简短的提示说明现在高亮的是什么。关掉它不会让页面上什么都不高亮:句子会跟着高亮。没有单词时间的语音无论怎么选都按整句高亮,提示也会说明这一点。

Shift+H / Shift+U 高亮或下划线正在读的句子,播放或暂停时都可以,作为文档的注释添加,并打开注释弹窗以便写评论。刚开始读一句时,标注的是刚读完的上一句。没有打开朗读时,这两个键保持原来的作用。

语音浏览器

语音浏览器:服务商、语言、语音三栏

朗读能用的每一个语音,按播放器自己的三步排列——服务商(或者 Zotero 自己的标准/高级)、语言、语音。

收藏、试听、默认语音

朗读

打开时展开播放器、文档语音、停顿、预取、缓存、页首一行、切成两句的话

滚动

默认滚动方式、自动滚动方式、阅读线、边听边浏览、返回与跳过

备份与同步

WebDAV——一个你自己的文件夹,同步和下面的服务器备份都会用到它。

WebDAV 地址示例

地址填的是一个文件夹,第一次上传时创建。Nextcloud:https://cloud.example.com/remote.php/dav/files/<user>/zotero-openreader/;坚果云:https://dav.jianguoyun.com/dav/zotero-openreader/,配一个应用密码。

同步——自动跟着你在电脑之间走的东西,双向的。

备份——单向的副本,手动恢复。

疑难解答

常见问题

兼容性

开发

npm install
npm test          # vitest,同时构建 build/Zotero-OpenReader.xpi
npm run typecheck
npm run build

notes/NOTES.md(英文)记录着插件依赖的 Zotero 内部实现,以及到目前为止的每一次事故。

致谢

许可证

AGPL-3.0,与 Zotero 本身相同的许可证。与 Zotero 官方无隶属关系。

贡献按 CONTRIBUTING.md(英文)中的条款接受,这些条款也允许作者把贡献用在他的手机和平板应用 OpenReader 里。

请我喝杯咖啡

请我喝杯咖啡