DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-dafeiyu-pro

c

dsh-dafeiyu-pro

Discovered

Voice-enabled BigFish companion for DeepSeek Harness - fork of QCYTSN/dsh-dafeiyu adding wake word, ASR, TTS and intent routing.

dsh-dafeiyu-pro 🐋🎙️

给「大肥鱼」桌宠加上语音能力 —— 基于 QCYTSN/dsh-dafeiyu 的二次开发。

⚠️ 这是一个 fork,不是原创项目。 原项目 dsh-dafeiyu 由 @QCYTSN 开发,MIT 协议。 本仓库在其基础上增加语音交互能力,遵循同样的 MIT 协议。


目录


这是什么

DeepSeek Harness 的桌面伴侣插件。

原版 dsh-dafeiyu 会显示 Agent 的实时状态(思考、改文件、等确认、出错),它有一个透明置顶的原生窗口,还能看余额。

本项目要做的,是让它能听、能说:

你叫「大肥鱼」
    ↓
它回「我在」
    ↓
你说话 → 流式识别 → 意图分流
    ↓
    ├─ 闲聊 → 直连 LLM → 1~2 秒回话
    ├─ 查数据 → 调天气/搜索 API
    └─ 长任务 → 派给 DSH agent,先垫一句「好的,我看看」
    ↓
流式合成,边收边播,可以中途打断

与上游的关系

来源

项目地址说明
上游QCYTSN/dsh-dafeiyu原作者,MIT
本仓库cooleye/dsh-dafeiyu-pro二次开发

我们改了什么

领域上游本项目
语音唤醒❌🔨 开发中
语音识别❌🔨 开发中
语音合成❌🔨 开发中
意图分流❌📋 规划中
长期记忆❌📋 规划中
状态显示✅ 完整✅ 保持不变
桌宠动画✅ 完整✅ 保持不变

我们没改什么

  • 动画素材:仍然来自上游,原始出处是 PC2005-cloud/dsh-pet(MIT)
  • 图标、光标、音效:保持不变
  • 状态机核心:companion-reducer.js 的逻辑保持上游实现

当前进度

阶段内容状态
—Fork 上游代码✅ 完成
Phase 0唤醒词 PoC✅ 完成(实测 3/3 命中)
Phase 1音频栈 + 本地出声✅ 完成(唤醒→回应已跑通)
Phase 2云端流式 ASR✅ 完成(连续多段已修好)
Phase 3对话闭环(LLM + TTS)✅ 完成(能真聊了)
Phase 4分级路由(闲聊/查询/干活)✅ 完成(8/8 测试通过)
Phase 5长期记忆⬜ 未开始

已跑通的完整链路

说「大肥鱼」
    ↓
本地 KWS 命中(零云端调用)
    ↓
回「我在」
    ↓
进入听写态,VAD 断句
    ↓
阿里云 paraformer 流式转写
    ↓
💬 你说:今天天气怎么样?
    ↓
🧭 意图分流
    ├─ chat → 直连 LLM 0.5~1s
    ├─ data → LLM + 搜索工具,1~2s
    └─ task → DSH agent,先垫一句「好的,我看看」
    ↓
按句切分 → qwen3-tts 合成 → 逐句播放

实测数据:

项目结果
唤醒3/3 命中
ASR 准确度「今天天气怎么样?给我讲个故事呗。」全对,带标点
ASR 速度2.89 秒音频 → 0.97 秒转完(3× 实时)
LLM 首字0.25~0.33 秒
工具调用问天气自动触发搜索,1.34 秒出结果
TTS 合成6.64 秒音频 / 1.5 秒合成(4.4× 实时)
端到端开口约 2 秒(闲聊)/ 1.3 秒(带搜索)
DSH agent简单任务 4.3 秒,长任务有两级垫场
连续多段识别6 段全部正确,会话不串
自动化测试17 个用例全过(不联网、不用麦克风)

⚠️ Windows 音频独占:MME / DirectSound / WASAPI 都可能被别的程序 (比如 DSH 自己的语音输入)独占,只有 WDM-KS 能稳定打开。 本项目已做自动降级。

⚠️ 模型可用性:这个 key 上 qwen-turbo 长期 429, qwen-flash / qwen-plus / qwen-max 可用。默认用 qwen-flash。

三级路由的意义

路径触发延迟谁在干活
chat寒暄、情绪、玩笑0.5~1s直连 LLM
data天气、新闻、实时信息1~2sLLM + 搜索工具
task写文档、改代码、做开发垫场即时DSH agent

为什么不统一走 agent:DSH agent 能干活但一次几十秒, 说「你好」等半分钟体验会崩。分流之后快的地方快,慢的地方有垫场。

详细设计见 docs/VOICE-DESIGN.md, 怎么测试见 docs/TESTING.md。


规划中的功能

语音唤醒(本地,零云端调用)

  • 唤醒词可配置,默认「大肥鱼」
  • 用 sherpa-onnx 的 KWS 模型
  • 待命态不烧钱:超出唤醒词长度窗口的音频直接丢弃

语音识别(云端流式)

  • 阿里云 paraformer-realtime-v2
  • 边说边出字,支持打断
  • 多级降噪门控(能量迟滞 / 过零率 / 有声帧占比)

语音合成(云端流式)

  • 阿里云 Qwen-TTS / MiniMax
  • 边收边播,支持中途打断
  • 云端失败时回落到本地 TTS

意图分流

三条路,各走各的:

路径触发响应走的通道
闲聊「你好呀」「今天怎么样」1~2s直连 LLM
查数据「今天天气」「有什么新闻」1~2sLLM + 天气/搜索 API
长任务「帮我写个文档」先垫话,后异步DSH agent

长期记忆

  • 事实库(关键词 × 类别 × 重要度 × 新鲜度打分)
  • 每条事实带用户原话作为依据,防模型凭空记忆
  • 闲聊记忆和任务记忆分开存

技术选型

层面选型理由
桌面壳PySide6 (Qt6)沿用上游
插件层Cordis (DSH)沿用上游
唤醒词sherpa-onnx KWS本地、低功耗、零成本
语音识别阿里云 paraformer-realtime-v2流式效果好,实测中文 CER 2.1%
语音合成阿里云 Qwen-TTS支持情感语气,首包几百毫秒
音频采集sounddevice (PortAudio)Qt 打包里没有 QtMultimedia
意图分类规则 + 小模型兜底快、可解释

参考实现

语音链路参考了 desk-ai 的实测参数(私有项目),包括:

  • VAD 参数(起说话 0.03 / 收尾 0.012 / 对话态静音切段 1050ms)
  • 打断阈值与 1 秒重喂机制
  • ASR 幻觉短语过滤词表
  • 阿里云 WebSocket 的 "streaming": "duplex" 坑

开发环境

前置

  • Node.js ≥ 22.19
  • Python ≥ 3.10(用于 helper)
  • pnpm

本地开发

# 克隆
git clone https://github.com/cooleye/dsh-dafeiyu-pro.git
cd dsh-dafeiyu-pro

# 安装依赖
pnpm install

# 跑测试
npm test
npm run test:python

# 直接跑 helper(开发期推荐,不用每次打包)
npm run helper:headless     # 验证协议,不开窗口
npm run helper:visual       # 开窗口

装到 DSH 里

# 用 link 模式,改代码实时生效
dsh plugin --profile desktop add link:<本仓库绝对路径>

打包

npm run build:helper:windows   # Windows exe
npm run build:helper:linux     # Linux
npm run build:helper:darwin    # macOS

目录结构

dsh-dafeiyu-pro/
├── src/                    Node 侧(插件逻辑)
│   ├── plugin.js           配置 Schema、事件订阅
│   ├── companion-reducer.js 状态机
│   ├── helper-process.js   子进程管理
│   ├── protocol.js         消息协议
│   └── balance.js          余额查询
├── runtime/                Python 侧(Qt helper)
│   ├── helper.py           窗口、动画、交互
│   ├── animation_model.py
│   └── bin/                各平台预编译 helper
├── assets/pet/             动画帧(WebP,来自 dsh-pet)
├── lib/client.js           浏览器侧
├── docs/                   文档
└── test/                   测试

与上游的目录差异

- legacy/       已移除(旧版素材,与开发无关,且不在 MIT 范围内)
- .github/      已重置(上游 CI 不适用)

许可与致谢

代码许可

本项目代码遵循 MIT License,与原项目一致。见 LICENSE。

素材许可

⚠️ 注意区分:

资产许可说明
源代码MIT自由使用、修改、分发
assets/pet/ 动画帧MIT来自 dsh-pet
legacy/dafeiyu/❌ 受限本项目已移除该目录

详见 ASSET_LICENSE.md。

致谢

特别感谢原项目作者 @QCYTSN —— dsh-dafeiyu 的架构设计(原生窗口 + JSONL 协议 + 事件驱动状态机)非常好用, 让二次开发变得很轻松。

同时感谢:


声明

  • 本项目是独立维护的社区分支,不代表原作者的立场
  • 遇到问题请先看 上游 issue,可能是因为上游已经修复了
  • 如果上游合并了我们的改动,本项目会尽量跟随

上游:QCYTSN/dsh-dafeiyu · 本文档最后更新:2026-11-10

Comments

Loading…

Similar plugins

dsh-whale-tts

by cilis

DeepSeek Harness 聚合语音朗读插件,让小鲸鱼拥有自己的声音

Vision & MultimodalManifest valid

★ 0

MIT

TypeScript

Nov 5, 2026

dsh plugin --profile web add dsh-whale-tts

by zhuiyueya

Voice for DeepSeek Harness(dsh) — speech-to-text input + read-aloud TTS for text-only DeepSeek, zero API key.

Manifest valid

★ 4

↓ 1.5k/wk

MIT

JavaScript

Aug 15, 2026

dsh plugin --profile web add dsh-voice

by QCYTSN

Desktop-native BigFish companion for DeepSeek Harness — real Agent status, always on top on Windows.

UI & ExperienceManifest valid

★ 612

↓ 32.5k/wk

MIT

JavaScript

Oct 29, 2026

dsh plugin --profile web add dsh-dafeiyu

by LiDu-china

🐋 大肥鱼 · 情绪耳朵 — Voice + emotion-aware companion for DeepSeek Harness. Listen, understand tone, and reply with empathy.

Tools & CapabilitiesVision & MultimodalDevelopment & InfrastructureManifest valid

★ 3

MIT

JavaScript

Nov 7, 2026

dsh plugin --profile web add dsh-dafeiyu-emotion

by MaRi23333

Fish Audio TTS plugin for DeepSeek Harness — per-reply read-aloud, auto-read toggle, BYOK, third-party. 语音合成插件:逐条朗读、自动朗读;仅支持 Fish Audio API,需自备 Key;第三方非官方。

Tools & CapabilitiesVision & MultimodalDevelopment & InfrastructureManifest valid

★ 2

↓ 788/wk

MIT

TypeScript

Nov 6, 2026

dsh plugin --profile web add dsh-fish-tts

by bauerelizabeth07139

大肥鱼 (Dafeiyu) desktop pet for the DeepSeek Harness Web GUI — chibi sprite animation, voiced Chinese dialogue, sound effects and music on separate switches, plus a daughter-and-father link with dsh-pet-liangzi.

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

MIT

JavaScript

Oct 9, 2026

dsh plugin --profile web add dsh-pet-dafeiyu