前言¶
在 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)