Skip to content

About

适用于《原神》一条龙攻略视频的本地语音暂停扩展

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

一条龙自动暂停

Guide Video Auto Pause

一个供 macOS 与 Windows 上 Microsoft Edge 使用的本地浏览器扩展。观看哔哩哔哩攻略视频时,它会识别明确的战斗指令和经原声验证的剧情跳过指令,并自动暂停当前攻略视频。完成游戏内对应内容后,由你手动继续播放。

这不是《原神》客户端插件,也不是独立桌面程序。它只处理你主动绑定的哔哩哔哩视频页面,不读取或操作游戏。

视频音轨、本地识别与自动暂停的运行流程

下载

请从 GitHub Releases 下载与你的系统对应的最新版:

  • macOS:Guide-Video-Auto-Pause-macOS-0.6.5.zip
  • Windows:Guide-Video-Auto-Pause-Windows-0.6.5.zip

两个压缩包都包含本地模型、运行文件、中文安装说明和第三方许可文件。普通用户不需要安装 Node.js,也不需要运行下载脚本。

仓库当前源码版本与最新安装包均为 0.6.5。

下载、解压、打开扩展管理页并加载 extension 文件夹

0.6.5 更新

  • 将独立弹出面板与页面状态条合并为一个网页控制窗。点击扩展图标先展开控制窗,点击“开始监听”后收起;鼠标移入即展开,移出或点击其他区域后收起。

  • 收起态和展开态都可拖动,并会根据靠近的边缘选择合适的展开方向。修正了反复贴边闪烁、辅助文字越界和展开态误选中文字的问题。

  • “停止监听”按钮与监听中再次点击扩展图标都会执行同一套停止和资源清理。错误态可以直接停止清理,也可在控制窗中重新尝试。

  • 自动暂停后恢复播放时,“正在检测语音”保持收起态,不再反复放大和缩小控制窗。

  • AudioWorklet 将 16 kHz PCM 按 100 毫秒批次转移,从每秒约 375 次跨线程消息降低到 10 次。视频暂停时挂起音频图,恢复播放时先唤醒音频图再恢复识别;3 秒窗口和 0.5 秒提交节奏保持不变。

  • 增加“过一下剧情”类明确请求的剧情暂停,同时保持残缺短句和说明性表达不触发。

  • 修复切换分 P 后显示“监听中”但实际没有继续识别的问题。新分 P 必须重新收到真实 PCM,并至少完成一次语音解码,才能进入“监听中”;不再用“音轨已经绑定”代替“识别链路已经恢复”。

  • 修复分 P 切换与自动健康恢复同时发生时,旧恢复任务覆盖新分 P 音轨的问题。发生重叠时会废弃旧任务,并以当前分 P 建立一条新的监听会话。

  • 监听期间继续按既有节奏检查 PCM 与解码进度。一次恢复已经由新 PCM 和新解码确认成功后,后续相互独立的同类故障仍可再次恢复;如果恢复过程本身没有恢复健康,则停止监听并显示具体错误。

  • 修复错误状态下只能重新启动、不能停止和清理的问题。错误后第一次点击扩展图标会停止并移除页面提示,再次点击才会重新启动。

  • 修复标签页在注入、暂停或分 P 回执等待期间被关闭时产生的迟到操作错误。

0.6.0 新增功能

  • 新增“剧情跳暂停”。攻略作者说出“过完剧情后/之后”“调查完之后”等经原声回归锁定的表达后,扩展会暂停攻略视频,方便你处理游戏内剧情。单独的“剧情”“之后”“完之后”、过动画说明和宽泛完成式不会触发。
  • 新增监听自检。模型与音频图准备完成后先显示“准备完成”;开始播放后,只有真实音频数据与语音解码均已推进,状态条才显示“监听中”和“语音自检正常”。
  • 新增监听异常恢复。视频播放期间连续 3 秒没有音频数据时,扩展会自动恢复音轨;已有音频输入但连续 6 秒没有完成语音解码,或者诊断通道没有响应时,会显示“语音检测异常”并进入“正在恢复监听”。恢复后再次出现同类异常,扩展会停止监听并显示“监听异常”,不会继续假装正在监听。
  • 加固同一 BV 视频的分 P 续接。页面内切换和整页导航都会重新绑定正确音轨;切换前正在播放才会自动继续,切换前处于暂停状态则保持暂停。
  • 加固扩展重新加载恢复。覆盖新版文件后,在 edge://extensions/ 只点击一次“重新加载”,原视频页面会清理旧运行环境并恢复唯一的监听会话。
  • 画面剪辑识别尚未接入 0.6.0。本版本不会只凭画面切换痕迹暂停视频。

快速安装

macOS

  1. 下载并完整解压 macOS 压缩包,建议放在“文稿”文件夹。扩展加载成功后,请勿移动或删除该文件夹。
  2. 打开解压后的文件夹,先阅读 请先读我.txt。
  3. 双击 打开扩展管理.command;如果 macOS 首次阻止打开,请按住 Control 键点击该文件,选择“打开”。也可以直接在 Edge 地址栏输入 edge://extensions/。
  4. 打开右上角“开发人员模式”,点击“加载解压缩的扩展”。
  5. 必须选择压缩包内的 extension 文件夹,不能选择外层文件夹或 ZIP 文件。
  6. 把“一条龙自动暂停”固定到 Edge 工具栏。

Windows

  1. 下载并完整解压 Windows 压缩包,建议放在“文档”文件夹。扩展加载成功后,请勿移动或删除该文件夹。
  2. 打开解压后的文件夹,先阅读 请先读我.txt。
  3. 双击 打开扩展管理.cmd,或者在 Edge 地址栏输入 edge://extensions/。
  4. 打开右上角“开发人员模式”,点击“加载解压缩的扩展”。
  5. 必须选择压缩包内的 extension 文件夹,不能选择外层文件夹或 ZIP 文件。
  6. 把“一条龙自动暂停”固定到 Edge 工具栏。

使用方法

  1. 在 Edge 中打开一个标准哔哩哔哩视频页面,例如 https://www.bilibili.com/video/BV...,并开始播放。
  2. 点击扩展图标展开网页控制窗,再点击“开始监听”。视频会暂停,控制窗先显示“正在启动”,模型与音频图准备完成后显示“准备完成”。
  3. 看到“准备完成”后由你手动继续播放。扩展检测到真实 PCM 与至少一次解码完成后,状态条才显示“监听中”。
  4. 识别到受支持的战斗指令或锁定的剧情跳过指令后,视频自动暂停,状态条显示“已暂停 ✓”。完成游戏内对应内容后,由你手动继续播放。
  5. 同一视频合集切换到下一个分 P 时,扩展会自动续接:如果新分 P 原本正在播放,会在重新绑定音轨时短暂停顿,并在“监听中”后自动继续;如果新分 P 原本处于暂停状态,扩展不会擅自播放。
  6. 鼠标移入页面状态条可展开控制窗。点击“停止监听”,或者在监听中再次点击扩展图标,均可停止监听并释放资源。

状态条与展开后的控制窗都可以拖动,位置限制在当前页面可见区域内。监听中鼠标移入状态条会立即展开,移出控制窗或点击其他区域后会自动收起。进入播放器真正全屏时,控制窗会随播放器进入全屏;退出全屏后回到网页。网页全屏仍会保留 Edge 的标签栏和地址栏,这是播放器本身的两种全屏模式,不是扩展造成的限制。

支持的指令

本项目不是通用语音助手。它只接受“明确动作 + 下/一下 + 怪物对象”的受控表达,并对 SenseVoice 已知的少量同音识别结果做容错。

可以触发的表达包括:

  • 把怪清一下、把怪清下
  • 来清一下怪、清下怪
  • 怪打一下、打一下怪
  • 处理一下怪物、怪物处理一下
  • 解决一下敌人、把敌人消灭一下

以下表达不会触发:

  • 清完怪之后、打完怪以后、处理完敌人
  • 这里有一只怪、看到怪物、前方有敌人
  • 不带“下/一下”的“清怪”“打怪”
  • 只有动作词或只有对象词的句子

剧情跳暂停只接受经原声回归锁定的“过完剧情后/之后”“关完剧情后/之后”“公完剧情后/之后”“调查完之后”与“过一下剧情”等明确结构。它在攻略作者说明需要处理剧情时暂停;单独的“剧情”“之后”“完之后”、过动画说明和宽泛完成式不会触发。画面剪辑识别尚未接入 0.6.5。

识别规则刻意保持收敛,目的是减少攻略解说中的误暂停。它不能保证覆盖所有口音、方言、背景音乐或任意说法。

功能与隐私边界

  • 仅支持 macOS、Windows、Microsoft Edge 116 及以上版本,以及 www.bilibili.com 的标准视频页。
  • 只在网页控制窗中点击“开始监听”后绑定当前标签页,不申请麦克风权限。
  • 音频只在本机内存中处理;不上传、不保存音频、识别文字、视频地址或使用记录。
  • 暂停只调用标准 HTMLVideoElement.pause();不模拟键盘,不依赖哔哩哔哩页面样式类名。
  • 不访问《原神》客户端、账号、内存、文件、网络通信或反作弊系统,不执行游戏操作。
  • 不下载、复制或重新分发哔哩哔哩视频,不绕过登录、会员、地区或访问限制。
  • 不提供自动恢复播放;命中后的继续播放始终由用户决定。
  • 不支持其他浏览器、其他视频网站、云端识别、关键词设置页或扩展商店一键安装。

常见问题

为什么点击图标后没有展开控制窗?

扩展只接受 https://www.bilibili.com/video/BV... 形式的标准视频页。哔哩哔哩首页、搜索页、动态页和没有标准视频元素的页面不会启动监听。

为什么开始监听时视频会暂停?

扩展需要先绑定当前视频音轨并加载本地模型。首次开始时,它会暂停所选视频,避免准备阶段漏掉口令;状态条显示“准备完成”后请手动继续播放,真实音频与解码均推进后才显示“监听中”。只有同一合集自动切换分 P 时,扩展才会恢复新分 P 原本的播放状态。

为什么换分 P 后不需要重新点击图标?

扩展会识别同一个 BV 视频内部的分 P 变化。页面内切换时复用已经加载的模型;发生整页刷新时重新注入页面控制器。两种情况都不会新增权限或持久化浏览记录。

视频仍在播放,状态条却没有继续接收音频怎么办?

0.6.5 会在视频确实处于可播放状态时持续检查监听链路。连续 3 秒没有音频数据时,扩展会自动重新绑定当前视频音轨,状态条显示“正在恢复音轨”。已有音频输入但连续 6 秒没有完成语音解码,或者诊断通道没有响应时,状态条会先显示“语音检测异常”,再进入“正在恢复监听”。只有新的音频数据和解码结果都恢复后,才会重新显示“监听中”和“语音自检正常”。一次恢复确认成功后,后续相互独立的同类异常仍可再次恢复;如果恢复过程本身仍未恢复健康,扩展会停止监听并显示具体错误。

为什么没有识别到某句话?

识别使用 3 秒滚动窗口,每 0.5 秒提交一次,并使用受控发音槽位过滤误触发。口音、音乐、音效、剪辑点和未收录的表达都可能影响结果。项目只在固定动作、对象与语序内部处理同音字和已锁定的常见发音差异,不对整句做任意模糊匹配。

为什么真正全屏时仍能看到状态条?

状态条会在浏览器进入 Fullscreen API 后移入全屏元素,因此能够继续显示。它使用独立 Shadow DOM,不修改播放器结构;停止监听后会一并移除。

如何更新?

保持原扩展文件夹的位置不变,用新版文件覆盖原文件夹中的同名文件。不要删除扩展,也不要关闭或刷新原视频页面。随后打开 edge://extensions/,在“一条龙自动暂停”卡片上只点击一次“重新加载”,再返回原视频页面。0.6.5 会清理旧运行环境,并自动恢复唯一的监听会话。

从源码运行

源码仓库不提交约 241 MB 的模型和 WebAssembly 运行文件。开发环境锁定 Node.js 22.16.0,并提供分层验证命令:

./scripts/fetch-runtime.sh
npm run check
npm run check:audio
npm run check:release

随后在 edge://extensions/ 中加载本仓库的 extension 目录。生成两平台完整 ZIP:

npm run package:all

公开源码中的架构边界由测试与 scripts/verify-extension.mjs 共同锁定;本地维护者的详细开发记录不进入公开仓库。

开源、第三方组件与非官方声明

本项目源码使用 MIT License。官方仓库与官方 Release 现在和以后都免费提供;MIT 许可证同时允许其他人在保留版权与许可声明的前提下使用、修改和重新分发源码,包括收费分发。本项目不能代表第三方分发者作出免费承诺。

完整安装包还包含 sherpa-onnx、SenseVoice Small 模型和 Silero VAD,它们分别受各自许可约束,详见 THIRD_PARTY_NOTICES.md 与 licenses/。本项目的 MIT 许可证不会替代这些第三方条款。

本项目是非官方个人开源工具,与米哈游、HoYoverse、哔哩哔哩及任何攻略作者均无隶属、合作、授权或背书关系。“原神”“哔哩哔哩”及相关名称、内容和商标归各自权利人所有。请只处理你有权观看的内容,并遵守所在地法律、网站规则和第三方许可。

致谢与参考

  • sherpa-onnx:本地 WebAssembly 语音识别运行时。
  • SenseVoice:多语言语音识别模型。
  • BetterGI:其公开仓库清晰区分功能、下载、快速上手、FAQ、致谢、许可与反馈。本项目仅参考这种信息组织方式,没有复制其代码、文案或项目定位。

问题反馈

请在 GitHub Issues 提交问题。不要上传受版权保护的视频或音频;请提供扩展版本、Edge 版本、操作系统、视频页类型、时间点以及扩展图标显示的错误文字。不要公开账号、Cookie、邮箱或其他个人信息。


“我们终将重逢。”愿你用得开心、玩得开心,我们提瓦特大陆见。

About

适用于《原神》一条龙攻略视频的本地语音暂停扩展

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages