Greasy Fork

来自缓存

Greasy Fork is available in English.

读弹幕 - B站弹幕语音阅读

在B站自动用语音读出弹幕内容(轮询版本)

作者
Zou Benjamin
日安装量
0
总安装量
2
评分
0 0 0
版本
0.8.4
创建于
2025-10-21
更新于
2025-10-22
大小
12.3 KB
许可证
MIT
适用于

📖 完整功能说明(v0.8.9)

🎯 脚本简介

B站弹幕语音助手 - 一款智能Tampermonkey脚本,自动将B站直播/视频弹幕转换为语音播放,支持多层次智能过滤、动态自适应调整,让您在高弹幕量视频中也能清晰听到重要评论。

🎤 核心功能

1️⃣ 自动弹幕检测与语音播放
- ✅ 自动检测页面弹幕
- ✅ 实时转换为语音播放
- ✅ 支持中文、英文多语言
- ✅ 100ms 智能轮询,反应迅速

2️⃣ 灵活的语音控制
- 🔊 语速调节: 0.5x - 2.0x(适应不同听觉习惯)
- 📢 音量调节: 0% - 200%(防止过响或过低)
- 🎵 音调调节: 0.5 - 2.0(个性化音色)
- ⏸️ 一键开关: 随时暂停/恢复播放

3️⃣ 智能收起面板(v0.8.5)
- 📌 默认收起状态 - 只显示标题栏,最小化屏幕占用
- 🔄 双击展开/收起 - 标题栏处双击快速切换
- 📦 自适应宽度 - 收起时极窄(fit-content),展开时220px
- 💾 状态记忆 - 保持用户的收起/展开偏好

🔥 四层智能过滤系统

🎯 智能过滤(可在控制面板开/关)
根据待播放弹幕队列长度,动态过滤短弹幕:

队列长度 | 过滤阈值 | 说明
0-3条 | 不过滤 | 弹幕不多,全部播放
4-7条 | ≥3字 | 队列开始堆积,过滤1-2字短弹幕
8-11条 | ≥4字 | 队列明显增多,过滤1-3字短弹幕
12+条 | ≥5字 | 队列严重堆积,只播放4字以上内容

优势: 无需手动调整,自动适应不同视频的弹幕量

示例:
- 队列5条时:过滤 "666",保留 "这视频绝了"
- 队列15条时:过滤 "哈哈" 和 "666",只保留 4 字以上评论

⚡ 自动加速(可在控制面板开/关)
队列堆积时自动提高语速,确保不掉队:

队列长度 | 播放速度 | 说明
0-3条 | 1.0x(用户设定) | 正常语速
4-7条 | 1.3x | 略快
8-11条 | 1.6x | 较快
12+条 | 2.0x | 最快(但仍可听清)

优势: 避免弹幕堆积导致延迟播放,始终跟上直播节奏

示例: 看热门直播时,高峰期自动加速到 2 倍,回落后自动恢复

🔄 去重过滤(去重按钮,可开/关)
自动检测并移除重复弹幕:

- 📝 维护最近50条弹幕记录
- 🔍 自动检测完全重复的内容
- ✂️ 重复弹幕不再播放

示例:
- 同一用户连发 "我也是" → 第一次播放,后续重复不播
- 多用户同时刷屏 "666" → 第一个 "666" 播放,后续去除

统计: 面板显示 "已读数量",包含所有过滤的弹幕统计

🚫 净化过滤(净化按钮,可开/关)
自动过滤无意义的纯重复字符弹幕:

过滤规则:
- ✂️ 检测纯重复字符(同一个字重复 3 次以上)
- ⚠️ 长度必须 ≥3 字符

被过滤的弹幕示例:
- ❌ "哈哈哈" - 纯重复
- ❌ "哈哈哈哈哈" - 纯重复
- ❌ "666666" - 纯重复
- ❌ "55555" - 纯重复
- ❌ "8888" - 纯重复

不被过滤的弹幕示例:
- ✅ "哈哈哈哈,笑死我了" - 混合内容(包含中文)
- ✅ "哈哈哈我也觉得" - 有其他词汇
- ✅ "666真的" - 有其他字符
- ✅ "哈哈" - 长度不足 3 字(有意义的笑声)

优势: 消除刷屏感,让播放内容更有价值

📊 实时统计面板

控制面板显示以下信息(展开时可见):

- ✓已读: 已播放的弹幕总数
- ⏳队列: 当前待播放弹幕数(用于判断是否需要加速/过滤)
- 📊页面: 检测到的页面弹幕总数
- 🔍过滤: 当前动态过滤阈值(如"3字+"表示过滤2字以下的弹幕)

例如:
✓已读: 42
⏳队列: 7
📊页面: 120
🔍过滤: 3字+

🎛️ 控制面板按钮说明

按钮 | 功能 | 颜色 | 效果
🎤 读弹幕 | 总开关 | 绿色 | 开启/关闭整个脚本
🎯 智能过滤 | 智能过滤开关 | 蓝色 | 开/关根据队列长度的智能过滤
⚡ 自动加速 | 速度自适应 | 紫色 | 开/关根据队列长度的自动加速
🔄 去重 | 重复内容过滤 | 粉色 | 开/关去除重复弹幕功能
🚫 净化 | 垃圾弹幕过滤 | 橙色 | 开/关纯重复字符的过滤
📊 语速 | 语速滑块 | 灰色 | 调整基础播放速度(0.5-2.0x)
📢 音量 | 音量滑块 | 灰色 | 调整语音音量大小
🎵 音调 | 音调滑块 | 灰色 | 调整语音音色

⚙️ 使用建议

📺 看常规视频(弹幕量中等)
推荐设置:
✅ 智能过滤:ON
✅ 自动加速:ON
❌ 去重:可选
❌ 净化:可选
语速:1.0x(正常)

🔥 看热门视频/直播(弹幕爆炸)
推荐设置:
✅ 智能过滤:ON(必开,否则掉队)
✅ 自动加速:ON(必开,保持同步)
✅ 去重:ON(去除刷屏)
✅ 净化:ON(过滤垃圾弹幕)
语速:1.0-1.3x(预留加速空间)

🎬 看悬疑/剧情视频(需要听清每一条)
推荐设置:
❌ 智能过滤:OFF(保留所有弹幕)
❌ 自动加速:OFF(正常速度)
✅ 去重:ON(去除重复)
✅ 净化:ON(过滤垃圾)
语速:0.8-1.0x(清晰)

🎓 看教程/讲座(需专注听讲)
推荐设置:
❌ 脚本关闭(别听弹幕,听讲师)

❌ 智能过滤:OFF
❌ 自动加速:OFF
❌ 去重:OFF
❌ 净化:OFF

💾 配置保存

- 所有设置(语速、音量、音调、各过滤开关)自动保存到浏览器本地存储
- 刷新页面后自动恢复上次设置
- 不同视频间保持一致配置

📱 快捷操作

操作 | 效果
双击面板标题 | 展开/收起控制面板
调整滑块 | 实时改变语速/音量/音调
点击功能按钮 | 立即开/关对应功能
刷新页面 | 自动恢复上次配置

🔍 工作原理

1. 检测阶段 (100ms 循环)
- 扫描页面弹幕 DOM 元素
- 提取文本内容

2. 过滤阶段 (顺序执行)
- ① 净化过滤 - 过滤纯重复字符
- ② 去重过滤 - 检测重复内容
- ③ 智能过滤 - 根据队列长度过滤短弹幕

3. 播放阶段
- 进入播放队列
- 自动加速判断(是否需要提速)
- 调用 Web Speech API 合成语音
- 按设定的语速、音量、音调播放

🛡️ 隐私与安全

- ✅ 完全离线运行,无服务器调用
- ✅ 不收集任何用户数据
- ✅ 不依赖外部 API
- ✅ 仅读取页面弹幕内容,不修改网页
- ✅ 开源代码,透明可信

📝 版本历史

- v0.8.3 - 初始版本,基础弹幕播放
- v0.8.4 - GitHub 自动更新配置
- v0.8.5 - 面板默认收起,自适应宽度
- v0.8.6 - 智能过滤 + 自动加速
- v0.8.7 - 动态过滤长度,实时显示
- v0.8.8 - 去重过滤(检测重复内容)
- v0.8.9 - 净化过滤(过滤纯重复字符垃圾弹幕)

🐛 常见问题

Q: 为什么有些弹幕没有播放?
A: 可能被某个过滤功能拦截了,检查:
- 面板统计数据(看是否有过滤)
- 尝试关闭各过滤按钮测试
- 确认脚本总开关是否打开(🎤读弹幕 ON)

Q: 播放速度太快/太慢?
A:
- 关闭自动加速(⚡ 自动加速: OFF)
- 调整语速滑块到合适位置

Q: 如何禁用某个过滤功能?
A: 直接点击对应按钮即可:
- 🎯 智能过滤 OFF - 不过滤短弹幕
- ⚡ 自动加速 OFF - 使用固定语速
- 🔄 去重 OFF - 允许重复弹幕播放
- 🚫 净化 OFF - 允许垃圾弹幕播放

🔗 项目链接

- GitHub: https://github.com/zoubenjia/bilibili-danmu-reader
- 自动更新: 通过 @updateURL 自动从 GitHub 更新

📧 反馈与建议

如有问题、建议或功能需求,欢迎:
- 在 GitHub 提 Issue: https://github.com/zoubenjia/bilibili-danmu-reader/issues
- 或在 GreasyFork 评论区反馈

祝您使用愉快!🎉

让弹幕成为陪伴您看视频的好帮手~