[特殊字符] DeepSeek 鲸鱼娘桌宠:给 DSH 加一只会撒娇、会提醒任务的赛博宠物
🐋 DeepSeek 鲸鱼娘桌宠:给 DSH 加一只会撒娇、会提醒任务的赛博宠物
⚠️ 本文是非官方同人项目分享,与 DeepSeek 官方(深度求索)无隶属或背书关系,项目不用于商业用途。
最近 OpenAI Codex 的宠物模式(赛博桌宠)很火,于是我也给 DeepSeek Harness(DSH)做了一只桌宠——鲸鱼娘:蓝发女仆 + 鲸鱼尾,会撒娇、会提醒你任务完成、会用神经网络人声说话。
先看效果:

✨ 功能一览
| 功能 | 说明 |
|---|---|
| 🐋 同人形象 | DeepSeek 鲸鱼娘动画(社区开源素材,已去绿幕/品红残留) |
| 🎞️ 状态动画 | 待机 / 工作 / 完成 / 出错 / 撒娇 / 跳跃,待机变体轮换 |
| 🗣️ 晓伊语音 | 神经网络人声,49 条台词预合成,完全离线播放 |
| 🥰 互动 | 戳一戳随机反应 · 长按摸头 · 双击静音 · 右键菜单 |
| 📢 提醒 | 任务完成(跳跃+纸屑+琶音+语音)· 出错安慰 · 审批提示 · 进度播报 |
| 🎛️ 音量 | 总音量 + 语音/音效/庆祝分动作音量(持久保存) |
| 🖱️ 拖动 | 桌面版全身拖动 · Web 版按住鲸鱼娘拖动 |
| 💰 余额徽章 | 会话头部显示 DeepSeek 余额 + 一键充值入口 |
支持 两种形态:
- 🖥️ 桌面版:DSH Desktop(Electron)右下角独立透明置顶小窗
- 🌐 Web 版:浏览器访问
dsh --profile web时,页面右下角悬浮层
📦 安装
一键安装(Windows)
powershell -ExecutionPolicy Bypass -File install.ps1
脚本自动安装到两个 profile 并启用插件(自动备份原文件):
| 版本 | Profile 路径 |
|---|---|
| 桌面版 | %APPDATA%\dsh-desktop-client\dsh\profiles\web |
| Web 版 | %USERPROFILE%\.dsh\profiles\web |
安装后重启 DSH 桌面应用 / dsh web 服务生效。
其他选项:
install.ps1 -Target desktop # 只装桌面版
install.ps1 -Target web # 只装 Web 版
install.ps1 -Uninstall # 卸载
install.ps1 -DryRun # 预览,不实际改动
💡 可选补丁:
apply-main-patch.ps1修复原版 DSH 的一个小问题——
关闭主窗口时桌宠窗口不会同步关闭(残留在屏幕上),应用补丁后桌宠随主窗口一起关闭。
🎮 使用
桌面版交互
| 操作 | 效果 |
|---|---|
| 按住角色任意位置 | 拖动窗口 |
| 单击帽子 | 戳一戳(随机撒娇/蹦跳/委屈) |
| 长按帽子 0.7s | 摸头(开心蹦跳) |
| 双击帽子 | 静音 / 恢复 |
| 右键帽子 | 功能菜单(音量/测试/诊断/版本/刷新) |
| 三击帽子 | TTS 诊断面板 |
Web 版交互
| 操作 | 效果 |
|---|---|
| 按住鲸鱼娘 | 拖动悬浮面板 |
| 右上角 ✕ | 隐藏(变 🐋 按钮) |
| 点击 🐋 | 恢复 |
🏗️ 技术原理
桌宠本质是一个 Cordis 插件(dsh-balance-widget),分为服务端和客户端两部分:
DSH server (session/event firehose)
│ turn/start · turn/end · tool/call · todo/write ...
▼
index.js ── /api/status ──► pet.html (轮询 1.5s)
├─ 状态机:idle/running/happy/coquetry/sad
├─ 动画:webp 内嵌(帧延迟×3,节奏舒缓)
├─ 语音:AudioContext 播放预合成晓伊 mp3
└─ 交互:拖动/戳/摸头/右键菜单/音量
几个有意思的技术点
-
事件驱动:服务端从 session firehose 监听
turn/start、turn/end、tool/call、todo/write、approval/asked等事件,/api/status输出工作状态,桌宠页面每 1.5s 轮询——能感知"正在用哪个工具"“任务完成”“需要批准”。 -
神经网络语音:用 edge-tts 在构建时把 49 条台词预合成为 晓伊(XiaoyiNeural) 人声 MP3,内嵌进页面,
AudioContext离线播放——不依赖运行时网络,也不怕 Electron 沙箱里系统 TTS 不发声的问题。 -
桌面版 vs Web 版:桌面版是 Electron 独立透明置顶窗口(
-webkit-app-region: drag全身可拖);Web 版注入shell.overlay悬浮层,用 iframe 加载同一份pet.html,拖动通过 postMessage 桥接。 -
素材清理:角色动画是绿幕抠图,边缘有绿幕(品红)残留,用
despill.py+defringe.py逐帧清理,白色背景下边缘干净。
🛠️ 自定义
换语音 / 加台词
pip install edge-tts pillow
# 编辑 tools/synth_all.py 里的台词表
python tools/synth_all.py # 重新合成(可换 PET_VOICE 音色)
node tools/build-pet.mjs # 构建 pet.html
powershell -ExecutionPolicy Bypass -File install.ps1
可用的音色(edge-tts)
PET_VOICE=zh-CN-XiaoyiNeural # 晓伊(年轻可爱,默认)
PET_VOICE=zh-CN-XiaoxiaoNeural # 晓晓(温柔标准)
PET_VOICE=zh-CN-YunxiNeural # 云希(男声)
📁 项目结构
dsh-whale-pet/
├── install.ps1 # 一键安装/卸载(-Target / -Uninstall / -DryRun)
├── apply-main-patch.ps1 # main.js 补丁(桌宠随主窗口关闭)
├── patch/ # 补丁文件(main.js + 原版)
├── plugin/dsh-balance-widget/ # 桌宠插件(核心)
│ └── lib/
│ ├── index.js # 服务端:/pet.html /api/status /api/balance
│ ├── client.js # 客户端:余额徽章 + Web 版悬浮桌宠
│ └── pet.html # 桌宠页面(动画+语音+交互)
├── lib/ # 构建源(template + anim + audio.json)
└── tools/ # 语音合成/构建/修图工具
🔗 项目地址
- GitHub:https://github.com/aceice01/dsh-whale-pet
- GitCode (CSDN):https://gitcode.com/gcw_k3DrTiCj/dsh-whale-pet
❓ FAQ
桌宠没出现?
- 确认安装脚本输出均为
[OK] - 重启 DSH 桌面应用 / dsh web 服务(插件在启动时加载)
- 检查
cordis.patch.yml是否包含balance-widget
Web 版桌宠不显示?
- 确认访问的是重启后的 dsh web 服务,浏览器强制刷新(Ctrl+F5)
语音没声音?
- 确认首次使用时点击过桌宠(解锁 AudioContext,浏览器自动播放策略)
- 检查右键菜单里的音量滑块 > 0
🙏 致谢
- 角色动画素材:codex-pet-DeepSeek-girl
- 行为系统参考:DeskPet
- 语音合成:edge-tts
最后:本项目是非官方同人项目,与 DeepSeek 官方无隶属或背书关系,不用于商业用途。角色素材版权归原作者所有。
如果你也想要一只会撒娇、会提醒任务的鲸鱼娘,快去试试吧!🐋✨
更多推荐



所有评论(0)