firefox阅读模式下需手动执行js调用speechsynthesis实现语音朗读:进入阅读模式→f12打开控制台→粘贴代码并运行,确保系统已启用匹配语言的tts引擎(如windows晓晓、macos mei-jia)。

Firefox 阅读模式下怎么触发语音朗读?
火狐浏览器(Firefox)本身不提供“阅读模式+本地语音朗读”一体化功能。它确实有阅读模式(Reader View),也内置了 Web Speech API 的语音合成支持,但默认不暴露“听网页”按钮,也不预装中文语音引擎——你需要手动启用、配置并调用。
为什么点开阅读模式没看到“播放”按钮?
这是最常被误解的一点:Firefox 桌面版(Windows/macOS/Linux)至今(2026 年 5 月)从未在 UI 中添加语音朗读控件,无论是否开启 Reader View。你不会看到类似 Safari 的「▶」或 Edge 的「大声朗读」图标。
- 该功能仅存在于 Firefox for Android(部分版本),且依赖系统 TTS 引擎
- 桌面端必须靠开发者工具 + 手动执行 JS 调用
speechSynthesis - 即使调用成功,若系统未安装中文语音(如 Windows 的「微软晓晓」未启用,或 macOS 未勾选「Ting-Ting」),会静音或报错
Uncaught TypeError: Cannot read properties of undefined (reading 'speak')
如何用 JavaScript 在阅读模式中启动本地语音朗读?
进入阅读模式后(地址栏出现书本图标),按 F12 打开开发者工具 → 切换到 Console 标签页,粘贴运行以下代码(已适配中文):
const text = document.querySelector('article')?.innerText || document.body.innerText;
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'zh-CN';
utterance.rate = 0.9;
utterance.pitch = 1;
window.speechSynthesis.speak(utterance);
注意几个关键点:
-
document.querySelector('article')是阅读模式下正文的典型容器;若失败,回退用document.body.innerText -
utterance.lang必须与系统已启用的语音包语言严格匹配(Windows 查看「设置 > 时间和语言 > 语音 > 管理语音」;macOS 查看「系统设置 > 辅助功能 > 语音」) - 首次运行可能被浏览器拦截,需在地址栏点击小喇叭图标 → 允许「使用语音合成」
- 朗读中途想暂停?在 Console 输入
window.speechSynthesis.pause();继续用resume();停止用cancel()
哪些系统语音引擎实际可用?
Firefox 依赖操作系统级 TTS,不自带语音数据。常见组合效果如下:
-
Windows 10/11:启用「微软晓晓」或「云希」后,
lang='zh-CN'可用;旧版「Zira」「David」只支持英文 - macOS:系统自带「Ting-Ting」(粤语)、「Mei-Jia」(简体中文),需在「语音」设置中勾选「允许语音识别」并下载对应语音
-
Linux(如 Ubuntu):默认无可用中文语音,需安装
festival+mbrola或配置 eSpeak-ng,Firefox 通常无法调用,实测成功率极低 - Chrome 浏览器同理可用这套 JS,但 Firefox 对
speechSynthesis.getVoices()响应更慢,建议先执行一次speechSynthesis.getVoices()等列表加载完成再朗读
真正能稳定用起来的,只有 Windows + 晓晓 / macOS + Mei-Jia 这两组。其他路径要么静音,要么报错 No voices available,别硬试。











