专为网页小说/GALGAME设计的TTS脚本。集成GAL流式引擎,支持多角色与情绪识别、自定义API及双端适配。(灵感: 类脑社区 cnfh1746_06138 & kikukiku0662) | Web TTS script for novels/GALGAMEs. Features GAL streaming, multi-role/emotion recognition, custom API support & mobile UI. (Credits: Brain-like Community)
多角色TTS播放器 (正式版 1.0)
一个功能强大的网页端 TTS(文本转语音)Tampermonkey 油猴脚本。它专为网页小说、GALGAME 网页版及在线对话场景设计,集成了 GAL 流式引擎,支持多角色自动识别、情感标签提取以及自定义 TTS 后端对接。
致谢:本项目的 GAL 模式与多角色情感设计思路参考自 类脑社区 的 cnfh1746_06138 与 kikukiku0662,特此感谢提供的灵感与创意。
✨ 核心功能
- 🎭 多角色与情感识别:自动解析网页文本中的【角色名】与〈情绪标签〉,发送给后端生成带有情感的语音。
- 🚀 GAL 流式引擎:专为对话场景优化。支持预加载机制(Preload),在播放当前句时自动后台生成后续语音,实现像玩游戏一样的无缝衔接体验。
- 🔌 高度自定义 API:支持对接本地部署的 TTS 模型(如 GPT-SoVITS, VITS 等)或 OpenAI 格式接口。
- 📱 双端适配 UI:现代化的悬浮面板设计,支持 PC 端拖拽与移动端触控,且具备“边缘隐藏”功能,不遮挡阅读视线。
- 🔊 音频融合 (Experimental):支持上传参考音频(Ref Audio)进行克隆或混音(需后端支持)。
- 🛡️ 智能网络管理:内置心跳检测、超时重试、请求熔断机制及详细的日志系统。
🛠️ 安装与使用
1. 环境准备
- 安装浏览器扩展 Tampermonkey。
- 拥有一个可用的 TTS 后端接口(推荐配合本地部署的 GPT-SoVITS API 使用)。
2. 快速开始
- 安装本脚本。
- 打开任意网页,你会看到右侧悬浮的 TTS 面板。
- 点击 ⚙️ 设置 图标,配置你的
TTS API 地址。
- 点击 ▶ 播放 按钮,脚本将自动解析当前页面的对话并开始朗读。
⚙️ 详细配置说明
API 连接设置
在设置面板中,你需要配置以下参数以连接你的 TTS 服务:
- API 地址: 默认为
http://127.0.0.1:8000(请根据实际情况修改)。
- 鉴权方式: 支持
None (无)、Bearer Token、API Key 及自定义前缀。
- 请求体配置 (JSON):
脚本默认使用兼容 GPT-SoVITS 的请求格式。如果你的后端是 OpenAI 格式,请确保 JSON 中包含
model 字段。
- 变量替换: 配置文件中支持使用
"savedRefAudioBase64" 和 "promptText" 占位符,脚本会在运行时自动替换为实际上传的参考音频和文本。
播放模式
- 基础流式播放: 逐句生成,逐句播放,适合普通长文本。
- GAL 流式播放: 核心功能。脚本会一次性提取页面所有对话,并建立播放队列。播放第 N 句时,后台会自动预加载第 N+1, N+2 句,极大减少等待时间。
📝 文本识别与正则要求 (核心)
本脚本的核心在于能够识别文本格式。在设置中选择 “识别模式” 可切换不同的正则匹配逻辑。以下是各模式的详细要求:
1. 【角色】〈情绪〉「对话」 (默认推荐)
最精确的模式,适合标准的剧本或 GAL 文本格式。
- 正则逻辑: 寻找
【角色名】 + 可选的 〈情绪〉 + 「对话内容」。
- 示例:
text
【爱丽丝】〈开心〉「今天天气真好呀!」
【魔王】「哼,无聊的一天。」
- 解析结果: 角色、情绪、文本均会被提取并发送给 TTS。
2. 〈情绪〉「对话」
适用于单人独白或未标注角色名但有情绪标注的场景。
- 示例:
text
〈悲伤〉「为什么会变成这样呢...」
3. 旁白与对话
混合模式,既识别对话,也朗读引号外的旁白文本。
- 注意: 旁白通常没有角色情感加成,将使用默认音色朗读。
4. 引号样式支持
脚本支持三种引号样式的自动匹配,请在设置中选择网页对应的样式:
- 日式:
「 ... 」
- 中文:
“ ... ”
- 西式:
" ... "
注意: 只有符合所选正则规则的文本才会被送入 TTS 引擎。如果点击播放后没有声音,请先点击控制面板上的 🔍 (检测) 按钮,查看脚本是否成功识别到了文本。
🎨 角色管理系统
脚本具有动态的角色管理功能:
- 自动捕获: 当脚本识别到新的
【角色名】 时,会自动将其添加到“检测到的角色池”中。
- 独立配置: 点击角色旁边的 ⚙️ 按钮,可以为特定角色单独设置 语速 (Speed)。
- 分组管理: 你可以创建自定义分组(如“主角团”、“反派”),并为不同分组分配颜色,方便在日志和调试中区分。
❓ 常见问题 (Q&A)
Q: 为什么点击播放后没有反应?
A: 请按以下步骤排查:
- 打开 ⚙️ 设置 -> 网络诊断,测试 API 是否连通。
- 点击主界面的 🔍 检测 按钮,确认当前页面的文本格式是否符合你的正则设置。
- 查看 📋 日志,是否有红色报错信息。
Q: 网页不在白名单中?
A: 出于安全和性能考虑,脚本默认不会在所有网站运行。初次在某网站使用时,请在设置中点击 🌐 白名单 -> 添加当前网站。
Q: 移动端怎么隐藏面板?
A: 点击面板上的 👁 图标,面板会收起到屏幕右侧边缘,只留一个小角标。点击角标即可恢复。
Copyright Notice & User Guidelines
版权声明(中文原文)
- 本脚本(含代码、逻辑架构、功能设计)的完整版权归 JChSh(Bilibili UID:511242) 所有,受《中华人民共和国著作权法》及《伯尔尼保护文学和艺术作品公约》等相关国际公约保护。
- 未经版权人事先书面许可,任何组织或个人不得将本脚本用于商业化用途(包括但不限于售卖、出租、植入广告、关联商业服务等以盈利为目的的行为)。任何未经授权的商业使用均需承担法律责任,由此产生的一切收益归版权人所有,侵权方需独立承担全部法律责任。
- 非商业化二创需满足以下条件:
- ① 提前通过合法渠道联系版权人 JChSh 并获得书面许可;
- ② 在二创作品显著位置完整标注版权信息及答谢对象,标注文本为:“本作品基于 JChSh(Bilibili UID:511242)的脚本创作,GAL模式与多角色情感思路特别致谢 类脑社区 cnfh1746_06138 & kikukiku0662”;
- ③ 不得修改或删除原版权声明及答谢信息。
- 严禁利用本脚本从事违法犯罪、侵害他人合法权益等违反法律法规及公序良俗的行为,否则使用者需自行承担全部法律责任。
用户须知(中文原文)
- 您仅获得本脚本的非商业性使用权限,无权转让、授权他人使用或进行任何形式的商业化利用。
- 如需进行非商业化二创,必须提前联系版权人 JChSh 并取得书面许可,未获许可的二创行为视为侵权。
- 二创作品需严格遵守版权声明中的标注要求,确保答谢信息完整、清晰可见,不得擅自篡改或遗漏。
- 您应自行承担使用本脚本过程中的相关风险,版权人不对脚本的兼容性、稳定性及使用效果作出任何明示或暗示的担保。
- 对于任何违反本版权声明及用户须知的行为,版权人保留追究其法律责任的权利,包括但不限于要求停止侵权、赔偿损失、公开道歉等。
其他附注
- 本协议受中华人民共和国法律及相关国际版权法管辖,争议解决优先通过协商方式;协商不成的,由版权人住所地有管辖权的人民法院管辖。