Bundle
dsh-voice-control
Voice control for DSH web: speech-to-text into the composer (with auto-send) and spoken playback of assistant replies via the Web Speech API
- Source
- SuCriss
- License
- MIT
- Updated
- Updated 6 days ago
Readme
# dsh-voice-control DSH Web 声控插件:语音输入 + 语音播报,把 DeepSeek Harness 变成桌面 Jarvis。 - **🎙 输入框麦克风**:麦克风图标嵌在 composer 发送键左侧,样式与原生按钮统一,零额外占位 - **说话即发送**:Web Speech API 实时识别(Chrome/Edge 内置),说完直接发出;关闭自动发送则填入草稿供编辑 - **🔊 回复播报**:语音指令的回复自动朗读——1.5s 文本稳定去抖判定回复完成(流式输出、工具调用都不怕),Markdown 自动清洗成口语 - **音色动态适配**:音色列表按浏览器/系统实时获取(Edge 附赠微软在线自然语音),按语言分组,跨设备自动回落 - **⚙ 按需设置**:右键麦克风弹出设置(自动发送/自动朗读/语速/音色/试听),localStorage 持久化 - **`Ctrl+M`** 全局快捷键;录音中麦克风两侧音波动效 - 纯浏览器实现,零依赖、零后端、零 API Key ## 安装 ```sh dsh plugin --profile web add dsh-voice-control ``` 也可以从 GitHub 源码安装:`dsh plugin --profile web add github:SuCriss/dsh-voice-control`。 重启 `dsh web` 生效(新增 bundle 行需重组配置树;之后改源码刷新页面即可热载)。 > 语音识别使用浏览器内置服务(Chrome/Edge),需要网络;TTS 播报完全本地。不支持 Firefox(无 Web Speech 识别)。 ## 卸载 ```sh dsh plugin --profile web remove dsh-voice-control ``` ## 实现说明 - 浏览器半区通过 `data-composer-card` / `data-input-scroll` 稳定属性定位 composer 工具行,portal 注入麦克风按钮,MutationObserver 兜底重挂 - 发送走会话作用域 `conversation.send()`;填入走 `conversation.input.for().actions.setDraft()` - 朗读源为会话快照中最新的助手文本节点,按指纹去抖触发 ## 已知边界(v1.0) - 语音指令的回复自动朗读:发送后 3 分钟内到达的最后一条助手回复;长回复最多读 1200 字符 - 推式(push-to-talk)而非常驻监听,避免拾取 TTS 声音形成回环 - 未适配多会话并排视图下的非活动输入框 MIT © SuCriss
Install
dsh plugin --profile web add github:SuCriss/dsh-voice-control
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-voice-control from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.