前言¶
DeepSeek Harness Web UI 里,输入框仍然是主要工作区。dsh-voice-input 针对这个位置补充一个语音入口:在 composer 的发送按钮前加入麦克风按钮,使用浏览器 Web Speech API 做语音转文字,并把识别结果流式写入当前草稿。它不负责发送消息,最终是否发送仍由操作者决定。
这是什么¶
forrestahha/dsh-voice-input 是一个面向 DeepSeek Harness Web UI 的语音转文字插件,由 forrestahha 维护,许可证为 MIT。它添加到官方 conversation.input.right 扩展槽,给 Web UI 输入框增加语音输入能力,同时不改变 agent-loop、model、session-log 或 Host API 行为。
核心功能¶
- 在 composer 的发送按钮前添加麦克风按钮。
- 添加到官方
conversation.input.right扩展槽。 - 使用浏览器 Web Speech API,将识别结果流式写入当前草稿。
- 不会自动提交消息。
- 支持标准
SpeechRecognition和 WebKit 前缀实现。 - 使用浏览器语言,回退语言为
zh-CN。 - 对中文、日文、韩文和拉丁文本保留自然空格。
- 再次点击麦克风按钮可停止录音;组件卸载时会中止识别。
- 不需要额外 API key 或 host-side service。
安装与启用¶
先安装到 Web profile:
dsh plugin --profile web add github:forrestahha/dsh-voice-input
然后启动 Web UI:
dsh web
如果需要固定版本:
dsh plugin --profile web add github:forrestahha/dsh-voice-input#v0.1.1
典型用法¶
1、打开 Web UI,选择一个 workspace。
2、点击 composer 右侧、发送按钮前的麦克风按钮。首次使用时,浏览器会询问麦克风访问权限。
3、开始说话后,识别结果会写入当前草稿。再次点击麦克风按钮可以停止录音。
4、确认草稿内容后,手动执行发送。插件不会替你提交消息。
浏览器支持¶
插件需要 SpeechRecognition 或 webkitSpeechRecognition。Chromium-based browsers 提供支持较广。
不支持的浏览器不会导致启动失败,而是显示一个禁用的麦克风按钮。
localhost 会被现代浏览器视为 secure context。如果 Harness 从另一台机器访问,使用 HTTPS 可能更安全;否则浏览器可能拒绝麦克风访问。
隐私与权限¶
插件不保存音频,也不额外发起网络请求。Web Speech API 的具体实现由浏览器控制,浏览器厂商可能将音频发送到其语音服务。处理敏感内容前,建议先查看浏览器的隐私政策。
插件以当前 dsh 进程权限运行,安装前应检查源码与 MIT 许可证。
适用场景¶
- 需要在 Web UI 中先把想法口述成草稿,再手动整理和发送。
- 使用 Chromium-based browsers 或支持 Web Speech API 的浏览器。
- 不想引入额外语音服务 API key 或 host-side service。
- 接受浏览器自身语音识别策略和隐私政策的团队或个人。
如果浏览器不支持相应 API,插件只会显示禁用按钮,不会提供语音输入能力。
本地开发与集成测试¶
本地开发需要 Node.js ^22.19.0 || >=24.0.0 和 pnpm 11。若已有本地 checkout,可以安装到 Web profile 做集成测试:
dsh plugin --profile web add /absolute/path/to/dsh-voice-input
dsh web
结尾¶
dsh-voice-input 的价值很明确:给 DeepSeek Harness Web UI 增加一个可控的语音草稿入口,不改变消息发送流程,也不引入额外语音服务。GitHub 仓库:https://github.com/forrestahha/dsh-voice-input