前言¶
在 DSH 里和智能体对话,多数时候仍靠键盘输入。若希望「说几句就进输入框、改一改再发」,常见做法是切到系统听写或第三方工具,再复制粘贴回 DSH,步骤多且容易打断上下文。DeepSeek Harness 采用「一切皆插件」的扩展方式;社区目录 SkillHub 上的 dsh-voice-input(维护者 yfy12306)面向 DSH 桌面端:在输入框右下角增加麦克风按钮,浏览器侧录音,经 DSH 内置 webserver 的同源路由把音频交给 host 侧 ASR,识别结果先写入草稿,可编辑后再发送。
下面介绍它的定位、能力与安装配置要点。
这是什么¶
dsh-voice-input 是 DSH 的客户端类插件(分类:客户端)。一句话:输入框麦克风按钮 → 录音 → 同源路由转发 ASR → 文本插入草稿,可编辑后发送。
与「整段音频在外部工具里转写再粘贴」相比,录音在页面内完成(getUserMedia),API key 只在 host 侧解析,不进入浏览器进程;识别文本直接进入当前输入框草稿,而不是立刻发送。
核心功能¶
以下能力均来自仓库 README 与 package.json 说明,版本 0.1.0,许可证 MIT。
- 输入框 UI:在输入框右下角提供麦克风按钮(依赖
@deepseek-ai/dsh-client-ui-slots,客户端平台为 web)。 - 浏览器侧录音:使用
getUserMedia采集音频;插件在主进程通过 Electron 原生 API 重设各窗口 session 的 permission handler,放行media(DSH 桌面端默认主要放行剪贴板,不设 handler 时浏览器侧会NotAllowedError),并保留原有剪贴板规则。 - 同源 ASR 路由:注册
POST /voice-asr/transcribe(默认路径,可配置),请求体为{ audioBase64, mime };host 侧读取环境变量中的 key,以 OpenAI 兼容的 chat/completions 方式调用 ASR(input_audiobase64 Data URL),返回{ text }。路由仅接受回环来源请求。 - 草稿再发送:识别文本先插入输入框草稿,可手动修改后再发送。
默认 ASR 相关配置指向 OpenAI 兼容网关与模型名 qwen3-asr-flash(见下表),具体网关地址需自行填写。
安装与启用¶
官方 README 未提供 dsh plugin add github:... 一类命令;安装方式为把仓库放到固定目录并在 desktop profile 里 link 依赖。下面按 README 步骤说明。
- 将本插件仓库放到固定位置,例如:
~/.dsh/profiles/desktop/voice-input
- 编辑
~/.dsh/profiles/desktop/package.json:
- 在
dependencies中增加(路径改为你机器上的绝对路径,使用正斜杠):
"dsh-voice-input": "link:/home/you/.dsh/profiles/desktop/voice-input"
- 在
dsh.profile.bundles中增加 bundle 名"dsh-voice-input"。
-
将仓库中的
cordis.patch.yml内容追加到~/.dsh/profiles/desktop/cordis.patch.yml,并把其中的baseURL改成你的 OpenAI 兼容 ASR 网关地址(必填项,默认可为空字符串)。 -
在 profile 目录执行安装并重启 DSH:
cd ~/.dsh/profiles/desktop
pnpm install
然后重启 DSH 桌面端,使 bundle 与 patch 生效。
配置(cordis.patch.yml)¶
插件通过 bundle patch 注入配置项,常用字段如下(摘自 README):
| 键 | 默认 | 说明 |
|---|---|---|
baseURL |
"" |
OpenAI 兼容 ASR 网关地址(必填) |
model |
qwen3-asr-flash |
ASR 模型名 |
apiKeyEnv |
ALIYUNBAILIAN_API_KEY |
API key 对应的环境变量名(仅在 host 侧解析) |
language |
zh |
识别语言 |
routePath |
/voice-asr/transcribe |
同源路由路径 |
maxBodyBytes |
15728640 |
音频 body 大小上限(15 MB) |
安装前应在 host 环境中设置 apiKeyEnv 所指向的变量;key 不会下发到浏览器。
典型用法与自测¶
日常使用:在 DSH 桌面端打开带输入框的对话界面,点击输入框右下角麦克风,完成录音后等待识别;文本出现在输入框草稿中,编辑满意后再发送。
ASR 连通性自测(README 提供脚本,需替换网关地址):
ASR_BASE_URL=<你的网关> node scripts/test-asr.mjs
脚本位于插件仓库内,用于在 host 侧验证网关与模型是否可用,不替代 DSH 内的完整 UI 流程。
适用场景与注意¶
适合:已在 DSH 桌面端日常对话、希望少切换窗口、用语音快速起草消息再精修的用户;已有或可部署 OpenAI 兼容 ASR 网关(默认文档示例为百炼相关环境变量名 ALIYUNBAILIAN_API_KEY)。
注意:
- 插件以当前 DSH 进程权限运行,并修改 Electron 窗口的媒体权限与 host 路由;安装前应阅读 GitHub 源码 与 MIT 许可证,确认网关与 key 管理方式符合你的安全策略。
- 仅适用于 README 描述的 desktop profile + link 安装方式;peer 依赖
@deepseek-ai/cordis^4.0.1、@deepseek-ai/dsh-client-ui-slots^0.2.0-rc.1,需与当前 DSH 版本匹配。 - SkillHub 目录页与 GitHub 由社区维护,与 DeepSeek / 幻方无官方从属关系;星标等元数据以目录页为准(当前为 0)。
结尾¶
dsh-voice-input 把「点麦克风 → 同源 ASR → 草稿编辑 → 发送」收拢在 DSH 桌面输入框内,并保证 API key 留在 host。若你需要在 Harness 里少打字、多口述再改稿,可按上文 link 安装并配置 baseURL 与 key 环境变量。