朗读文本(浏览器自带语音)
音视频所有处理都在浏览器本地完成,数据不上传服务器
文本不经过本站服务器;它会交给**浏览器自带的语音引擎**来念 —— 在部分系统上那个引擎可能用云端语音。本站自身不发送任何请求。
⚠️ 离开页面时会主动停止朗读:`speechSynthesis` 是浏览器全局的,切标签页或关掉页面后声音可能还在响 —— 所以这里在 `pagehide` 与 `visibilitychange` 时会取消它。
把一段文字交给浏览器的语音引擎念出来:选声音、调语速 / 音调 / 音量,长文本可以按标点逐句朗读,屏幕上会显示念到第几句。 两个必须说清楚的边界。第一,文本会交给浏览器的语音引擎 —— 它不经过本站服务器,但在部分系统上那个引擎用的是云端语音,所以不能笼统地说「数据不出浏览器」。这里如实写成「不经过本站服务器」。第二,必须有一个显眼的「停止」按钮:`speechSynthesis` 是浏览器全局的,长文本一旦开始念,切标签页、甚至关掉页面都可能还在响 —— 所以这里除了停止按钮,还会在离开页面时主动取消。 声音清单是异步来的:部分浏览器刚加载时 `getVoices()` 返回空数组,要等 `voiceschanged` 事件才有;不处理的话「声音」下拉永远是空的 —— 这是这类工具最容易漏的一步。声音会按语言分组,默认挑与界面语言同族的那一个。 逐句朗读不只是好看:部分浏览器对单条 utterance 的长度有限制,一条几千字的 utterance 会在中途被截断,而且不报错、不触发结束事件,表现是「念到一半就没了」。按句子切成一条条就绕开了这个坑。
功能
- 用浏览器自带语音引擎朗读,本页不发送任何请求
- 声音按语言分组,自动挑与界面语言同族的那一个
- 语速 0.5-2、音调 0-2、音量可调
- 逐句朗读:长文本按标点切句,并显示念到第几句
- 暂停 / 继续 / 停止三个动作齐全 —— 长文本没法靠刷新页面来停
- 离开页面或切到后台时自动取消,声音不会留在别的标签页里
- 声音清单为空时会说明原因(等 voiceschanged 或系统没装语音包)
- 显示朗读的大致时长估算
- 文本不经过本站服务器(会交给浏览器语音引擎)
使用方法
- 把要朗读的文本贴进输入框
- 选一个声音、调语速与音调
- 需要的话保持「逐句朗读」勾选
- 点「朗读」,要停就点「停止」
常见问题
- 文本会被上传吗?
- 不会上传到本站服务器 —— 页面本身不发送任何请求。但它会交给浏览器自带的语音引擎,而在部分系统上那个引擎用的是云端语音。所以这里不写「数据不出浏览器」这种绝对话,只承诺「不经过本站服务器」。
- 为什么一定要有「停止」按钮?
- 因为 `speechSynthesis` 是浏览器全局的:长文本开始念之后,光靠刷新页面或切标签页是停不下来的,声音可能一直在别的标签页里响。所以这里给了显式的停止,并在离开页面与切到后台时主动取消。
- 「声音」下拉是空的怎么办?
- 两种可能。一是浏览器还没把声音列出来 —— `getVoices()` 在部分浏览器里是异步的,要等 `voiceschanged` 事件,稍等片刻会自动出现。二是这台设备根本没收语音包(比如精简安装的系统),那就没有可用声音,工具会说明这一点。
- 长文本念到一半就断了?
- 这是浏览器对单条 utterance 的长度限制(尤见于 Chrome):超长的 utterance 会在中途被截断,而且不报错。勾上「逐句朗读」后每句单独成一条,就绕开了这个限制。
- 能调成别的语言吗?
- 能。声音清单按语言分组,选一个别语言的声音即可 —— 用什么语音念完全取决于你选的那个声音,而不是文本本身的语种。
相关工具
音频转 WAV
音视频把 MP3 / M4A / FLAC 等音频转成 WAV,可改采样率(16k 语音、48k 视频)、转单声道、做峰值归一化。全部在浏览器里完成。
字数统计
文本中英混排的文本到底有多长?中文按字、英文按词分开统计,给出字符数、行数、字节数、阅读与朗读时长,以及会被切成几条短信。全部在本机完成。
文本清洗
文本清洗从日志或表格里复制出来的一列内容:去重行、排序、去空行、去首尾空白、去行号、合并多空格,规则逐条开关。粘贴的内容只在本机处理。
视频转 GIF
音视频把视频的某一段转成 GIF,可调帧率、宽度、颜色数与循环。看着预览选范围,带进度条。视频不上传,浏览器本地完成。
视频截帧
音视频导出视频某一刻的画面,按视频自身分辨率输出 PNG、JPEG 或 WebP。比播放器截图清晰:没有控件、没有屏幕缩放。文件不上传。
音频裁剪
音视频按起止时间剪出音频的一段,可加淡入淡出消除剪口的爆音。试听时点「设为起点/终点」就能标记位置,导出 WAV。