前言¶
用 DSH Web 做开发时,创建会话、切换会话、给会话下发任务,都要在页面里逐步点选。想同时推进几个会话,就得在侧边栏来回切换。dsh-qwen-voice 把实时语音接进 Harness 页面:说话就能创建、继续和调度多个有名称的 DSH 会话,而且切换会话时语音连接不断开。下面介绍它的功能、安装步骤和使用注意事项。
这是什么¶
dsh-qwen-voice(leaveimagination/dsh-qwen-voice)是基于 Qwen Audio Agent 构建的 DeepSeek Harness Web 实验性语音控制插件,采用 MIT 许可证,由社区成员 leaveimagination 维护,不是 DeepSeek 或 Qwen 的官方版本。
它把 Qwen Audio Agent 作为实时语音引擎,在其上增加 Harness 插件界面、ACP 桥接和多会话任务路由。项目内置并锁定了经过验证的 Qwen Audio Agent Runtime(1.10.0),不需要另外安装或选择版本。
范围上要注意:当前 1.0.0 只连接 DeepSeek Harness Web(http://127.0.0.1:3080),不支持 DSH Desktop,也不支持 Web/Desktop 多实例自动切换,不会回退到 Desktop。
核心功能¶
按已核实的能力,可以分成三组。
语音交互:
- 在 Harness 页面加入悬浮语音球,切换 DSH 会话时保持实时语音连接不断开;
- 支持中断语音播放。
多会话调度:
- 通过自然语言创建、继续和调度多个有名称的 DSH 会话;
- 在一个浏览器标签页中并行安排多个任务;
- 协调会话(Coordinator)机制:可将某个 DSH 会话设为协调会话,由它把语音任务调度到多个子会话并行执行;
- 根据任务目标生成更容易识别的侧边栏会话名称。
状态反馈:
- 显示最新任务及其执行状态;
- 中断任务时显示处理中状态,并根据 Gateway 返回结果确认成功或报告失败;
- 任务完成后及时播报,不必等待全部任务结束;通过播放状态回执减少重复播报。
链路上,插件通过 ACP Bridge 对 DSH 会话执行创建、继续、查询、取消和重定向,整条链路固定使用 127.0.0.1:3080。悬浮语音客户端默认连接 127.0.0.1:3101 的本地 Gateway,ACP 桥接只允许访问本机回环地址。
安装与启用¶
运行环境¶
- DeepSeek Harness Web
0.1.0-rc.6(开发环境也验证过 rc.7); - Node.js
22.22.2+、24.15.0+或26+; - npm
10+、pnpm10+(推荐 11.x); - 提供 Windows 启动脚本,插件和 ACP 桥接本身使用跨平台 Node.js。
Windows 一键安装(推荐)¶
先启动 DSH Web 并确认能打开 http://127.0.0.1:3080,然后克隆仓库并执行安装脚本:
git clone https://github.com/leaveimagination/dsh-qwen-voice.git
cd dsh-qwen-voice
.\scripts\install.cmd
只需要安装、暂不启动时:
.\scripts\install.cmd -SkipStart
手动安装¶
先安装依赖(含锁定的 Qwen Audio Agent 1.10.0),再执行 setup 完成补丁、构建和注册:
git clone https://github.com/leaveimagination/dsh-qwen-voice.git
cd dsh-qwen-voice
pnpm install
pnpm setup
pnpm setup 会应用兼容补丁、构建并把插件注册到 DSH profile,默认 web,可用 DSH_PROFILE 环境变量指定其他 profile。这个补丁带版本检查,遇到未知源码会拒绝修改;重新安装依赖会还原内部 Runtime,之后需重新执行 pnpm setup 恢复。
配置语音凭证¶
插件需要自备 DashScope API Key。手动安装时编辑 %USERPROFILE%\.config\qwaudio\config.env:
DASHSCOPE_API_KEY=sk-你的Key
QWEN_AUDIO_REALTIME_PROVIDER=dashscope
QWEN_AUDIO_REALTIME_MODEL=qwen-audio-3.0-realtime-plus
重启 pnpm start 后生效。真实 Key 只写入本机的这个文件,仓库和浏览器插件包均不包含 API Key。
实时模型默认是 qwen-audio-3.0-realtime-plus,另有 qwen-audio-3.0-realtime-flash、qwen3.5-omni-flash-realtime、qwen3.5-omni-plus-realtime 可选。当前仅支持 DashScope Qwen Realtime 系列,不支持 OpenAI Realtime、Gemini Live 等未在上游注册的云端 Provider。
启动¶
执行下面的命令,前台启动语音 Runtime、Gateway 和 ACP Bridge:
pnpm start
之后刷新 DSH Web 页面(http://127.0.0.1:3080),右下角会出现悬浮语音球。
默认把启动命令所在目录作为 ACP 工作区。需要指定工作区时,先设置环境变量再启动:
$env:ACP_WORKSPACE = 'C:\path\to\workspace'
pnpm start
首次使用:绑定协调会话¶
打开语音面板,在目标 DSH 会话中点击「设为协调会话」。之后语音任务由该协调会话调度到多个子会话并行执行。需要更换协调会话时,在新会话中点击「由当前会话接管」并确认。
故障排查¶
两个已在文档中明确的检查点:
1、确认插件在 dsh plugin --profile web list 中可见,否则页面不会出现悬浮球;
2、Gateway 起不来时,检查 config.env 中 QWEN_AUDIO_REALTIME_PROVIDER 是否为 dashscope(不支持其他值)。
开发与验证使用以下命令:
pnpm typecheck
pnpm build
pnpm --dir bridge test
适用场景与注意事项¶
适合的场景:在 Windows 上运行 DSH Web、需要在一个标签页里并行推进多个会话、愿意自备 DashScope API Key 的 DSH 用户。
使用前请注意:
- 这是实验性的社区集成,当前版本只支持 DSH Web,不支持 Desktop;
- 云端实时语音前台目前只验证了 DashScope Qwen Realtime 系列;
- 取消任务死锁已在 v1.0.0+ 修复;
- 插件以当前 dsh 进程的权限运行,安装前建议先阅读仓库源码和许可证。本项目采用 MIT,改编的 Qwen Audio Agent 音频传输逻辑记录在
NOTICE中;Qwen Audio Agent 采用 Apache-2.0 许可证,重新分发本集成时需保留相关上游署名。
结语¶
dsh-qwen-voice 的价值在于把「切换页面、点选会话」这一串操作换成语音指令,并通过协调会话机制在一个标签页里并行调度多个 DSH 会话。社区目录将其归入「工作流」分类。如果你正在用 DeepSeek Harness Web 且需要同时盯多个任务,可以按上面的步骤试一试。
- 目录页:https://www.skillhub.cn/plugins/leaveimagination/dsh-qwen-voice
- GitHub:https://github.com/leaveimagination/dsh-qwen-voice