sh-volume-knob:在 DSH 输入框朗读最新回复并调节音量

前言

在 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 中直接加载。

核心功能

朗读与起点

  1. 默认起点:最新一条用户提问的第一个字。单击后页面滚到该处,闪烁一根光标(非编辑器选区,不影响复制),朗读顺序为「该提问 → 之后助手回复(含最新一条)」。
  2. 自定义起点:按住扬声器图标并向右拖拽(≥16px),光标跟随鼠标,旁侧显示第几字与预览;松手定起点,再单击从此处开读。
  3. 持久化:起点按会话保存在 localStorage;刷新仍在。出现新回复时自动回到「最新提问开头」。
  4. 文本来源:按 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 的安装方式(见接续仓库说明)。

典型用法

  1. 启动 DSH Web,确认输入框右侧出现扬声器按钮(在话筒右侧)。
  2. 完成一轮对话后,单击扬声器:页面滚到最新提问开头,光标闪烁,从提问读到最新助手回复;再单击停止,光标消失。
  3. 若只想从回复某段开始读:按住图标向右拖到目标文字上松手,再单击开始朗读。
  4. 需要同时调页内 TTS 与系统音量:按住图标向上拖打开混音台,拖动推子或静音;点空白处或 Esc 收起。
  5. (可选)先安装并配置 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)
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye