如果你在 docs.google.com 上用 Chrome 自带 Read Aloud、Speechify、NaturalReader 读不出任何东西,或者读的是五次编辑之前的旧文——不是扩展坏了。2021 年 Google Docs 改用 Canvas 渲染,基于 HTML 的 TTS 工具再也看不到文字。本文讲清技术原因,告诉你怎么修。
2 分钟装好。无需账号,无需信用卡。
打开任意 Google 文档,打开 DevTools 检查文档主体。本该是文字的地方,你看到一个 `<canvas>` 元素,没有任何可读文本。这就是所有 TTS 扩展失败的根本原因:
在 20 页 Google 文档 + Chrome 140 上测试(2026 年 4 月)
静默。集成的 Read Aloud 只在"识别为文章"的页面工作——在 docs.google.com 找不到任何文字。
读完前 20 行(来自辅助功能树视口)后停止。Speechify 论坛从 2022 年起这个 ticket 一直没关。
拒绝启动——扩展的文本检测器从 Canvas 返回空,直接弹"no content found"。
同根因。要么读不出东西,要么读的是侧边菜单标签而非正文。
朗读整个 Google 文档,带段落级高亮。直接 hook Google 的文档模型,不依赖 DOM——完全绕过 Canvas 屏障。
我们不读 Canvas,我们读数据源。
Google Docs 把完整文档作为 JavaScript 模型保留在内存里(Canvas 就是从这个模型画出来的)。我们检测到 docs.google.com hostname,在页面加载时 attach 到这个模型。
模型按真正的阅读顺序(不是视口顺序)暴露段落、标题、列表。我们从头到尾遍历——这意味着第 80 页最后一段和第 1 页第一段同样可达。
提取的文字喂给 TTS 管线。每段播放时,CastReader 用 overlay 层在 Canvas 上高亮对应区域。点击段落可跳转音频。全程本地运行——文档绝不离开你的浏览器。
Chrome、Edge、Firefox 全免费。无需账号,无需信用卡。
docs.google.com,任意你拥有或有查看权限的文档。不需要特殊准备。
1 秒内开始播放。段落级高亮跟随。自动滚动同步。
因为 2021 年 5 月 Google 把 Google Docs 从 contenteditable DIV 迁移到了基于 Canvas 的渲染器。Chrome 的 Read Aloud——和所有基于 DOM 的 TTS 一样——是遍历 HTML 找文字,Canvas 页面上没东西可遍历。CastReader 是 hook Docs 的文档模型,所以不管页面怎么画都能用。
部分能用。Speechify 可以读第一屏(通过辅助功能树),然后碰到虚拟化的 Canvas 区域就停下。如果你的文档超过大约 20 行,Speechify 会读开头然后静默。这是它论坛 2022 年以来的已知限制。
可以。只要 Google Docs 让你在浏览器里打开这个文档(任意角色——编辑、评论、查看),CastReader 就能朗读。不需要特殊权限。
能。CastReader 会 attach 到 Docs 模型,和主题或容器无关。独立的 docs.google.com、Google Classroom 嵌入、Google Workspace(前 G Suite)部署都可以。
Google Sheets 和 Slides 用不同的文档模型。CastReader 当前自带 Docs 支持。Slides 支持在路线图上。Sheets 可能性较低——单元格逐个朗读是另一个 UX 问题。
主文档正文会被朗读。评论线程和建议模式的修订会被跳过,让朗读保持干净——如果你想要,去 GitHub 上提 feature request。
40+ 自然 AI 语音,覆盖英语、西语、法语、德语、日语、中文等。语言从文档内容自动识别——混合语言文档用主导语言。
Chrome 里开始播放后点"发送到手机",音频通过 Telegram 流到手机——不用装 App,不用配置同步。
完全免费,无每日限额,无需注册,所有语音全开放。不像 Speechify 每年 139 美元或 NaturalReader 的付费墙。