Skip to content

Read Aloud ZH

ituff edited this page Sep 24, 2026 · 1 revision

配置朗读服务

文档索引 · English · 中文

CFRSS 本身不含文字转语音引擎。它对接的是你自己部署的朗读服务 —— 一个把 微软「大声朗读」(Edge TTS)转发出来的小 Worker。

跳过这一步,其他功能照常可用,只是没有 🔊 按钮。


1. 部署服务

上游项目是 yy4382/read-aloud,可以跑在 Cloudflare Workers、Vercel 或 Node.js Docker 上。

Cloudflare Workers(推荐): 打开该仓库,点它自己的 Deploy to Cloudflare 按钮。然后在 Cloudflare 面板里进入这个新 Worker 的 Settings → Variables and Secrets,添加:

TOKEN=YOUR_TOKEN

或者用 Docker:

docker run -d --name read-aloud -p 3000:3000 \
  -e TOKEN=YOUR_TOKEN yunfinibol/read-aloud:main

一定要设 TOKEN。 它的作用相当于密码:不设的话,任何人只要知道你的网址 就能白用你的服务。CFRSS 会把它作为查询参数带上,所以除了你自己,谁都不需要 知道它。

记下最终拿到的地址 —— 可能是 https://something.workers.dev,也可能你绑了 自己的域名。

2. 让 CFRSS 指向它

设置 → 朗读配置,三个字段:

字段 填什么
服务地址 你的部署地址,例如 https://tts.example.com(不要带路径)
API KEY 第 1 步里设置的同一个 TOKEN
音色 自动识别,或指定一个音色

点 测试。CFRSS 会通过你的服务合成一小段样例并播放出来。能听到人声就成功了。

3. 音色

下拉框内置 19 个精选音色:

语言 音色
普通话 晓晓、晓伊、云希、云健、云扬,外加辽宁、陕西口音
粤语 / 台湾 HiuMaan、HiuGaai、晓臻、晓雨
English Aria、Jenny、Guy(美)、Sonia(英)
其他 Nanami(日)、SunHi(韩)、Svetlana(俄)

自动识别是默认值,通常也是最好的选择:它按每个段落的文字脚本挑选音色, 所以中文文章里夹着英文引文,读起来依然自然。


请求是怎么发的

CFRSS 从不把你的 TOKEN 交给浏览器。浏览器向 CFRSS 要音频,CFRSS 在服务端 补上 token,再去调你的服务:

GET {服务地址}/api/synthesis
      ?text=<段落文本>
      &voiceName=<音色>
      &format=audio-24khz-48kbitrate-mono-mp3
      &token=<你的 TOKEN>

因为 token 只在服务端,它永远不会暴露给页面;合成接口也和应用其他部分一样受登录 保护。

哪些共享、哪些按设备保存:

设置项 作用域 原因
服务地址、API KEY 全局共享 它们是服务凭据
音色 按设备 只有英文引擎的电子阅读器和手机,不该被迫用同一个音色

播放是怎么工作的

CFRSS 把文章切成段落,逐段合成,你听当前这段时它已经在预取下一段。正在朗读 的段落会高亮并自动滚动到可见位置,方便你跟上或往回跳。

单次请求的文本上限是 5000 字符 —— Edge TTS 在超长输入上会退化,这也正是要分段 而不是整篇发送的原因。

排查

现象 可能原因
测试返回 401 / 403 API KEY 和服务端的 TOKEN 不一致。
测试返回 404 服务地址不对,或者带了路径。应该只填域名本身。
测试报网络错误 Worker 访问不到这个地址。确认它是公网可达的、拼写没错。
测试通过但没声音 浏览器拦截了自动播放,手动点一次播放即可。
读到一半停了 某一段合成失败。再点播放,会从那一段继续。
语言口音不对 别用「自动识别」,直接指定音色。

Clone this wiki locally