前言¶
在 DeepSeek Harness 里做开发,桌面伴侣 dsh-dafeiyu 已经能把 Agent 的思考、改文件、等确认等状态叠在透明置顶窗口上,还能看余额。但若希望「叫一声就聊、查天气要快、写代码再走 Agent」,原版没有完整的听与说链路。社区维护者 cooleye 在 QCYTSN/dsh-dafeiyu 基础上做了二次开发仓库 cooleye/dsh-dafeiyu-pro:保留上游状态机与桌宠动画,增加本地唤醒、云端流式 ASR/TTS,以及闲聊 / 查数据 / 长任务的分级路由。下面按定位、能力、安装与注意点说明。
这是什么¶
dsh-dafeiyu-pro 是 DeepSeek Harness 的客户端类桌面伴侣插件(package 名 dsh-dafeiyu-pro,当前版本 0.1.23)。README 写明这是 fork,不是原创:上游 dsh-dafeiyu 由 QCYTSN 开发(MIT);本仓库在同一协议下叠加语音能力。动画与状态显示仍沿用上游;companion-reducer.js 状态机核心与上游一致,动画素材仍来自 PC2005-cloud/dsh-pet(MIT)。
核心功能(以 README 当前进度为准)¶
保留的上游能力¶
- 透明置顶原生窗口展示 Agent 实时状态
- 桌宠动画、图标、光标、音效与余额相关逻辑
语音链路(README 标注 Phase 0–4 已完成)¶
整体交互在文档中概括为:唤醒 → 回应 → 听写 → 转写 → 意图分流 → 合成播放,并支持流式播放时打断。
-
唤醒(本地)
默认唤醒词「大肥鱼」,可配置;使用 sherpa-onnx KWS,待命态不触发云端。README 记载唤醒 PoC 实测 3/3 命中。 -
语音识别(云端流式)
阿里云paraformer-realtime-v2;VAD 断句,支持连续多段(文档记载 6 段识别正确、会话不串)。 -
语音合成(云端流式)
阿里云 Qwen-TTS / MiniMax;按句切分、逐句播放。云端失败时可回落本地 TTS(规划说明中有写)。 -
意图分流(三级)
| 路径 | 典型触发 | 处理方式 |
|------|----------|----------|
| chat | 寒暄、情绪 | 直连 LLM,文档记载约 0.5~1s 量级 |
| data | 天气、新闻等 | LLM + 搜索等工具,约 1~2s |
| task | 写文档、改代码等 | 交给 DSH agent,先垫场再异步执行 |
设计动机在 README 中写得很直接:统一走 Agent 时简单问候也要等数十秒,体验差;分流后快路径保持低延迟,慢路径用垫场话。
- 长期记忆
README 中 Phase 5 为「未开始」,正文能力以当前已跑通链路为准,不当作现成特性承诺。
技术选型摘要¶
| 层面 | 选型 |
|---|---|
| 桌面壳 | PySide6 (Qt6),沿用上游 |
| 插件层 | Cordis (DSH) |
| 唤醒 | sherpa-onnx KWS |
| ASR | 阿里云 paraformer-realtime-v2 |
| TTS | 阿里云 Qwen-TTS |
| 音频采集 | sounddevice (PortAudio) |
| 意图 | 规则 + 小模型兜底 |
详细设计见仓库内 docs/VOICE-DESIGN.md,测试说明见 docs/TESTING.md。
安装与启用¶
插件在 DSH 桌面 profile 下以 link 模式 安装,便于改代码实时生效。官方 README 给出的命令如下(将占位符换成你本机克隆或解压后的仓库绝对路径):
dsh plugin --profile desktop add link:<本仓库绝对路径>
前置环境(开发或本地构建时):Node.js ≥ 22.19、Python ≥ 3.10、pnpm。若需在本机构建各平台 helper,可使用 npm run build:helper:windows / build:helper:linux / build:helper:darwin;日常开发亦可 npm run helper:visual 直接起带窗口的 helper(见 README「开发环境」)。
典型用法与配置预期¶
README 未给出单独的 dsh plugin config 字段清单于本摘抄片段;语音能力依赖云端 ASR/TTS 与 LLM,使用前需在仓库说明与 docs/ 中核对所需密钥与模型名。文档提示:部分模型在特定 key 上可能 429,默认倾向使用 qwen-flash 等可用型号。
交互流程可复现为文档中的完整链路:
- 说「大肥鱼」→ 本地 KWS 命中 → 回应「我在」
- 进入听写,云端流式转写用户语句
- 经意图分流走 chat / data / task 之一
- TTS 流式合成并播放,可中途打断
在 Windows 上,README 特别说明:MME / DirectSound / WASAPI 可能被其他程序(含 DSH 自带语音输入)独占,项目已对 WDM-KS 做自动降级,排音频问题时可对照该说明。
验证质量可不依赖麦克风:npm test 与 npm run test:python(README 记载 17 个自动化用例可在不联网、不用麦克风下通过)。
适用场景与注意¶
适合谁:已在用或打算用 dsh-dafeiyu 桌宠、希望同窗口内保留 Agent 状态展示,同时用唤醒词驱动闲聊、查实时信息、把重活交给 DSH agent 的桌面用户。
权限与安全:与其它 DSH 插件一样,插件逻辑随当前 DSH 进程权限运行;安装前请阅读源码、LICENSE 与 ASSET_LICENSE.md(区分 MIT 源码与已移除的受限 legacy 素材说明)。
生态说明:DeepSeek Harness 奉行「一切皆插件」;SkillHub 目录页 是社区站点,与 DeepSeek / 幻方无官方从属关系。本仓库为社区独立分支,问题可先查上游 issue,再查本 fork。
进度边界:fork 声明中部分表格将「意图分流」「长期记忆」标为规划中,与「当前进度」表并存时,以实现状态表(Phase 4 完成等)为准;上游未合并前,语音相关 bug 需以本仓库 issue 为主。
结尾¶
dsh-dafeiyu-pro 在不大动上游桌宠与状态机的前提下,把「叫大肥鱼 → 听 → 分流 → 说」串成可测链路,适合想给 DSH 桌面加语音入口的开发者与用户。进一步细节与实测数据见 GitHub 仓库 与 SkillHub 插件页。