前言¶
在 DSH Web GUI 里输入长提示、代码片段或中文描述时,键盘输入有时不如说话快,但把外部语音转写结果再复制回输入框,流程又会变得零碎。dsh-voice-mic 是一个 DeepSeek Harness Web GUI 语音输入插件:在输入框旁提供麦克风按钮,录音后实时转写并写入输入框,不自动发送。
下面介绍它的定位、核心能力、安装方式、典型用法和需要注意的限制。
这是什么¶
dsh-voice-mic 是面向 DSH Web GUI 的语音输入插件,由 Zachary7456 维护,许可证为 MIT。
它解决的是 Web GUI 输入框的语音输入问题:用户在输入框左侧点击麦克风按钮或使用快捷键开始录音,插件将识别结果写入输入框草稿;停止录音后提交转写结果,但不会自动发送消息。
核心功能¶
- 输入框左侧提供麦克风按钮,默认快捷键是
Alt+V。 - 录音期间部分识别结果实时上屏,停止时进行全量转写并写入输入框。
- 不自动发送消息,用户仍需要在输入框中确认内容。
- 支持三种识别引擎:浏览器内置、本地离线后端、云端 API。
- 浏览器识别使用 Web Speech API。
- 本地离线后端支持
SenseVoiceSmall int8和Paraformer,可在设置页一键部署。 - 本地后端默认绑定
127.0.0.1:7860,转写期间音频不出本机。 - 云端 API 使用 OpenAI 兼容的 ASR 接口,可配置 base URL、API key 和模型名。
- 实时写入采用追尾替换,不覆盖手动输入;无结果或出错时自动回滚。
- 设置页可修改识别引擎、快捷键、端口、
autoStart等配置。 - 支持服务端
cordis.patch.yml配置与环境变量覆盖。
安装与启用¶
运行要求如下:
- DSH:
dsh >=0.1.0-rc.6 - Node.js:
>=18 - 浏览器识别:需要 Chrome 或 Edge
- 本地离线后端:额外需要 Python
3.9+
安装命令如下:
dsh plugin --profile web add github:Zachary7456/dsh-voice-mic
安装后重启 dsh web。
可以用下面的命令检查插件配置是否出现在 web profile 中:
dsh --profile web --dump-config | grep dsh-voice-mic
典型用法¶
1、在设置页选择识别引擎¶
打开 DSH Web GUI,进入:
设置 → 语音输入 → 识别引擎
这里提供三选一:
- 浏览器内置
- 本地离线后端
- 云端 API
2、使用浏览器内置识别¶
浏览器内置识别使用 Web Speech API,适合快速试用。
使用方式:
- 点击输入框左侧麦克风按钮,或按默认快捷键
Alt+V。 - 开始说话,识别结果会实时写入输入框草稿。
- 再次点击麦克风按钮或停止录音。
- 插件提交转写结果,但不会自动发送。
快捷键仅在页面获得焦点时生效。
3、部署本地离线后端¶
如果不想让音频离开本机,可以在设置页使用本地离线后端一键部署。
设置页会执行部署流程,包括检测 Python、安装依赖、下载模型、启动本地服务并轮询就绪。模型目录默认为:
~/.dsh/voice/models/<model>
本地服务默认端口为:
7860
本地后端默认只绑定:
127.0.0.1:7860
也就是说,转写期间音频不出本机。
本地后端进程由 DSH 托管。如果重启 DSH,可能需要重新点部署,也可以在配置中启用:
autoStart: true
4、配置云端 API¶
云端 API 使用 OpenAI 兼容的转写接口。需要在设置页配置:
- base URL
- API key
- 模型名
配置完成后,可以使用设置页中的“测试 API 连接”检查配置是否正确。
使用云端 API 实时上屏时,录音期间约每秒调用一次 API,会产生相应费用。
API key 存于浏览器 localStorage,由浏览器直连服务商,不经过 DSH。
5、服务端配置示例¶
除了设置页,也可以在服务端 profile 中配置插件。示例位置:
~/.dsh/profiles/web/cordis.patch.yml
可以插入类似下面的配置:
- insert:
- id: dsh-voice-mic
name: dsh-voice-mic
config:
hotkey: alt+v
port: 7860
autoStart: false
配置优先级¶
插件配置优先级为:
设置页(localStorage) > 环境变量 > cordis 配置 > 默认值
因此,如果你在设置页修改了快捷键、端口或引擎,设置页的值会优先生效。
离线验证¶
仓库提供了 mock API,用于离线验证完整链路:
python server/mock_api.py
适合在本地先跑通插件调用链,再切换到真实本地后端或云端 API。
适用场景与注意¶
适合以下场景:
- 在 DSH Web GUI 中快速输入中文提示、代码或长文本。
- 希望语音转写结果进入输入框,而不是直接发送。
- 希望使用浏览器识别、本地离线后端或云端 API 三种方式之一。
- 希望本地转写时音频不离开本机。
使用前需要注意:
- 插件会以当前 DSH 进程权限运行,安装前应检查源码和许可证。
- 浏览器识别依赖 Chrome 或 Edge 的 Web Speech API。
- 本地离线后端需要额外安装 Python
3.9+依赖。 - DSH 重启后,本地后端可能需要重新部署,或配置
autoStart: true。 - 云端 API 实时转写会产生调用费用。
- 快捷键仅在页面获得焦点时生效。
链接¶
GitHub:
https://github.com/Zachary7456/dsh-voice-mic