dsh-pet-tts: Reading Desktop Pet Speech Bubbles with Edge Neural Voice

前言

在 DeepSeek Harness 里配了 dsh-pet 桌宠时,气泡里会冒出短句,但默认只有文字。若希望这些台词被朗读出来,又不想把整段助手回复都交给 TTS,就需要一个只盯桌宠气泡、范围明确的插件。市场里也有「朗读助手回复」类插件,职责不同;下面介绍的是维护者 jimmyfenwick 发布的 dsh-pet-tts(分类:联网工具),用微软 Edge 在线神经音色合成 mp3,并通过浏览器播放。

这是什么

dsh-pet-tts 是 DeepSeek Harness 插件:前端监听 Web UI 里 class 为 dsh-pet-bubble 的 DOM 节点;宿主侧在私有 Python 虚拟环境中调用开源 edge-tts 客户端生成音频。它只念桌宠气泡,桌宠不说话时保持安静;不充当通用「读助手正文」工具。

仓库:jimmyfenwick/dsh-pet-tts
目录页:skillhub.cn 插件页
当前 package 版本:0.1.0,MIT 许可。

依赖与环境

使用前需满足 README 列出的条件:

  • 带 Web UI 的 DeepSeek Harness(dsh web 或桌面版网页视图),在 0.2.1-rc.5 上验证过。
  • dsh-pet 用于产生气泡(可选;不装桌宠也能用控制台 API)。
  • Python 3.9+ 在 PATH 上,或通过 DSH_PET_TTS_SYSTEM_PYTHON 指定解释器。
  • 网络可访问 speech.platform.bing.com;首次安装还需一次性访问 PyPI(或镜像)以安装 edge-tts。
  • Node.js 20+。

核心功能

自动跟读气泡

页面脚本监视 .dsh-pet-bubble;有内容时向宿主请求合成并播放。单条气泡文本上限 300 字符,更长会被截断——设计上是短句气泡,不是长文朗读。

音色预设

内置多组预设(默认 anime-girl),语速、音高、音量与 dsh-pet-dfeiyu-mo 同源,换插件后听感可保持一致。例如默认预设使用 zh-CN-XiaoyiNeural,另有 anime-girl-hi、anime-boy、netstar、xiaoyi-raw 等,完整表格见 GitHub README。

浏览器控制台 API

不依赖桌宠时,可在 DevTools 里直接调用:

dshPetTTS.setPreset('anime-girl-hi')          // 切换预设,写入 localStorage
dshPetTTS.say('主人,我回来了')                 // 立即念一句
dshPetTTS.say('你好', { voice: 'en-US-AriaNeural', rate: '+10%' })
dshPetTTS.mute(true)                          // 静音;mute(false) 恢复
await dshPetTTS.voices()                      // 宿主侧已知的微软音色列表
await dshPetTTS.health()                      // { ready, python, edgeTts, dataRoot }

宿主 HTTP 路由

前缀 /dsh-pet-tts/,便于脚本或自定义前端:

  • GET /dsh-pet-tts/ping → { ok, defaultPreset, presets }
  • GET /dsh-pet-tts/health → 含 venv 等健康信息
  • GET /dsh-pet-tts/presets → 完整预设表
  • GET /dsh-pet-tts/voices → 微软当前返回的全部音色
  • GET /dsh-pet-tts/say?text=…&preset=… → audio/mpeg(可选 voice、rate、pitch、volume)

合成结果缓存在 ~/.dsh/dsh-pet-tts/cache,键为文本与参数组合,重复台词不再请求合成。

安装与启用

安装命令以 README 为准。任选其一:

dsh plugin --profile <你的档名> add github:jimmyfenwick/dsh-pet-tts

或从 release tarball:

dsh plugin --profile <你的档名> add https://github.com/jimmyfenwick/dsh-pet-tts/releases/latest/download/dsh-pet-tts.tgz

装完后重启或 reload 宿主。在页面内先点一次(或按键)——浏览器在用户手势前会拦截自动播放,这不是插件缺陷。再让桌宠说话或调用 dshPetTTS.say。

首次合成时插件会在 ~/.dsh/dsh-pet-tts/venv 创建虚拟环境并安装 edge-tts(约 30 MB,一次性,不污染全局 Python)。宿主机日志可见 [dsh-pet-tts] creating virtualenv … / installing edge-tts …。

配置项

环境变量 含义
DSH_PET_TTS_ROOT 数据目录,默认 $DSH_HOME/dsh-pet-tts
DSH_PET_TTS_PYTHON 直接使用该解释器,跳过虚拟环境
DSH_PET_TTS_SYSTEM_PYTHON 用来创建虚拟环境的基解释器

若 pip install 连不上 PyPI,插件会先重试清华镜像再试上游;也可预先装好 Python 环境并设置 DSH_PET_TTS_PYTHON 以跳过在线安装。

适用场景与注意

适合:已在 DSH Web UI 中使用 dsh-pet,希望气泡台词有语音反馈;或需要 Edge 神经音色、可切换预设的桌宠 TTS。

不适合:朗读助手完整回复——请选用市场内专门的回复朗读插件。

权限与安全:插件以当前 DSH 进程权限运行,会创建本地 venv、访问微软朗读端点并可能拉取 PyPI 包;安装前建议浏览仓库源码与 MIT 许可证。DeepSeek Harness 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系。

限制(README 原文要点):

  • 合成依赖网络,无离线模型。
  • 首次发声需用户手势;仅 dsh-pet-bubble 类节点触发自动朗读。
  • macOS / Linux 为主验证环境;Windows 代码路径存在但未实测。
  • 使用微软 Edge 公开朗读接口,未获微软背书,可能变更或限流;商业用途需自行核对微软条款。

卸载:

dsh plugin --profile <你的档名> remove dsh-pet-tts

可选删除 ~/.dsh/dsh-pet-tts(虚拟环境 + 缓存)。

结尾

dsh-pet-tts 把桌宠气泡与 Edge 在线 TTS 接在一起:范围窄、默认安静,需要时再出声。更多预设、路由与限制见 GitHub README;安装入口也可从 SkillHub 目录页 进入仓库链接。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye