前言¶
在 DeepSeek Harness(DSH)Web GUI 里长时间看对话、等模型流式输出时,眼睛要一直盯着屏幕。若希望把「从最新一轮提问到助手回复」的内容念出来,并能在不离开页面的情况下调节页内媒体与系统输出音量,需要输入框旁有固定入口,而不是每次去系统设置或另开工具。
下面介绍社区插件 sh-volume-knob(维护者 jianghu-lao-yao,分类:客户端)。它在 DSH 输入框工具行、话筒按钮右侧增加一个扬声器按钮:单击从默认起点朗读并翻页标记,再单击停止;拖拽可改起点或打开竖式混音台。说明:该 GitHub 仓库已归档,npm 包 sh-volume-knob 已 deprecated,接续仓库为 underworld-oddball/dsh-volume-knob,官方 README 建议新安装改用 dsh plugin add dsh-volume-knob;本文安装命令仍按当前仓库 README 原文列出,便于对照历史文档与 SkillHub 目录条目。
这是什么¶
sh-volume-knob 是面向 DSH Web 客户端的插件(当前 package 版本 0.8.6,MIT 许可)。一句话定位:朗读 + 音量,一个按钮——从你最新那条提问的开头(默认)开始,沿会话可读节点一直读到最新回复结尾;同时提供页内音量与系统音量(macOS / Linux)的竖式混音台。
插件在 composer 工具行中的顺序约为 order 30(话筒)/ 40(扬声器),无需额外构建步骤,浏览器端逻辑在 lib/client.js 中直接加载。
核心功能¶
朗读与起点¶
- 默认起点:最新一条用户提问的第一个字。单击后页面滚到该处,闪烁一根光标(非编辑器选区,不影响复制),朗读顺序为「该提问 → 之后助手回复(含最新一条)」。
- 自定义起点:按住扬声器图标并向右拖拽(≥16px),光标跟随鼠标,旁侧显示第几字与预览;松手定起点,再单击从此处开读。
- 持久化:起点按会话保存在
localStorage;刷新仍在。出现新回复时自动回到「最新提问开头」。 - 文本来源:按 DSH DOM 白名单拼接——带
[data-chat-flow]的节点,由data-chat-flow-kind区分;user与assistant-step中data-chat-group-part="response"会读,reasoning、turn-process、turn-tail、tool-call等不读。
音量混音台¶
按住图标向上拖拽(≥18px)从图标上方弹出竖式混音台:
| 推子 | 作用范围 |
|---|---|
| 页内音量 | 本标签页内所有 <audio> / <video> 的 volume(含 TTS、提示音等) |
| 系统音量 | 系统输出与静音(macOS osascript,Linux pactl) |
两者串联:系统音量为上限。点击页面其他区域或按 Esc 可收起混音台或取消挑选起点。
合成与依赖¶
- 文本按约 220 字切块,逐块
POST /dsh-tts/speak,复用已安装的 dsh-tts provider 链;未安装或某块失败时,剩余部分回退浏览器speechSynthesis,不会从头重念。 - 单击朗读前会暂停页面上正在播放的音频,避免与 dsh-tts 的
speakReplies重叠。 - dsh-tts 为可选;不装也能用,仅音质与链路走浏览器语音。
键盘与防误触¶
| 操作 | 行为 |
|---|---|
| Enter / Space | 朗读 / 停止 |
| Alt + ↑ | 开关混音台 |
| ← / → | 光标移 1 字 |
| Shift + ← / → | 光标移 20 字 |
| 长按不拖(>400ms) | 不朗读(防误触) |
| 混音台开着时单击图标 | 只收起混音台 |
朗读中图标变蓝并带声波弧;页内静音时图标变红带斜线;挑选起点时光标为琥珀色,朗读时为界面主题色。
安装与启用¶
安装命令来自仓库 README(Web profile):
# 从 npm 安装(推荐)
dsh plugin --profile web add sh-volume-knob
等价地从 GitHub 安装源码:
dsh plugin --profile web add github:jianghu-lao-yao/sh-volume-knob
收录进社区列表后,也可在 dsh-market(设置 → 插件市场)中搜索并一键安装。
装完后重启一次 dsh web(插件在启动时组入 boot graph),再刷新浏览器页面。
环境要求(README 与 package.json):
- DSH
>= 0.1.5-rc.3,Web GUI。 - 已在
next(0.1.7-rc.1)与latest(0.1.5-rc.3)通道上核对过所用 slot 接口;消息 DOM 的data-chat-flow-kind等需以实际页面为准。 - 系统音量:macOS、Linux 可用;其他平台该行置灰并显示原因。
若你从零选型,README 顶部注明 npm 已 deprecated,可改用接续包 dsh-volume-knob 的安装方式(见接续仓库说明)。
典型用法¶
- 启动 DSH Web,确认输入框右侧出现扬声器按钮(在话筒右侧)。
- 完成一轮对话后,单击扬声器:页面滚到最新提问开头,光标闪烁,从提问读到最新助手回复;再单击停止,光标消失。
- 若只想从回复某段开始读:按住图标向右拖到目标文字上松手,再单击开始朗读。
- 需要同时调页内 TTS 与系统音量:按住图标向上拖打开混音台,拖动推子或静音;点空白处或 Esc 收起。
- (可选)先安装并配置 dsh-tts,朗读将优先走路由
/dsh-tts/speak;否则自动回退浏览器合成。
适用场景与注意¶
适合:在 Web GUI 里希望「听最新一轮对话」、做无障碍或解放视线的开发者;需要快速区分页内媒体音量与系统输出音量的本地 DSH 使用者。
注意:
- 插件以当前 dsh 进程权限运行;安装前应查看 GitHub 源码 与 MIT 许可证,混音台相关宿主路由仅接受回环或同源请求,避免任意页面改系统音量。
- 页内音量为母音量,会覆盖插件曾设过的
element.volume;浏览器speechSynthesis无音量 API,静音时只能cancel()。 - 流式输出未结束时,若 DOM 重渲染,起点可能按同一节点重新夹取;节点整体替换时会退回默认起点。
- 社区目录 SkillHub 插件页 与 GitHub 为独立信息源;DSH 生态强调「一切皆插件」,目录站点与 DeepSeek / 幻方无官方从属关系。
结尾¶
sh-volume-knob 把「从最新提问起朗读整轮可见正文」和「页内 + 系统音量」收进输入框旁一个扬声器按钮:单击朗读与翻页标记,拖拽改起点或开混音台,并可配合 dsh-tts 或浏览器回退。查阅目录与源码:
- 目录页:https://www.skillhub.cn/plugins/jianghu-lao-yao/sh-volume-knob
- GitHub:https://github.com/jianghu-lao-yao/sh-volume-knob(已归档,接续:https://github.com/underworld-oddball/dsh-volume-knob)