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)
羽毛球分组比赛记分
小程序二维码

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

小夜