dsh-voice: Enabling Harness Agents to Speak and Sing with Emotion

前言

DeepSeek Harness(DSH)里的智能体默认只有文字输出。若要在对话里直接「出声」——带语气读回复,甚至按简单旋律唱几句歌词——通常得自己接 TTS API、管播放器和文件路径,和 Cordis 工具链也要单独对接。dsh-voice 是社区维护者 LIU118117 发布的 Host-only 插件,在 Harness 里注册 voice_speak、voice_sing、voice_status 三个工具,把本机 ChatTTS / edge-tts 与 ffmpeg 播放串成一条可配置流水线。下面介绍它的定位、能力与安装用法。

这是什么

dsh-voice 面向 DSH / Cordis 开发者:一句话合成带可选情绪的语音,或把文字按预设旋律逐字变调后拼接成「唱歌」效果。插件分类为模型推理;源码与说明见 GitHub,社区目录页为 skillhub.cn/plugins/LIU118117/dsh-voice。许可证为 MIT(package.json 版本 1.0.0)。

核心功能

插件向 Cordis 注册三个工具:

工具 作用
voice_speak 文字转语音,可指定情绪(平静/开心/难过/害羞/生气/兴奋)与音色(default/soft/bright/sharp),可选本机播放
voice_sing 把文字(歌词)按旋律逐字变调再拼接;旋律可选 star / birthday / gentle / funny
voice_status 查看当前引擎、路径、模型缓存与最近生成的文件

说话引擎

  1. ChatTTS(默认路径):本机 GPU 推理,语气自然,有停顿和情感;需要 modelHome 下的模型缓存,以及 Python 环境中的 ChatTTS 包。
  2. edge-tts:不依赖本地大模型,启动快;ChatTTS 不可用时自动回退。
  3. 唱歌:用 edge-tts 逐字合成,再按旋律音高变调,经 ffmpeg 拼接(偏趣味向)。

合成在本机完成:ChatTTS 完全离线;edge-tts 仅把待合成文本发给微软语音服务,不上传其他数据。生成音频保存在本机数据目录。

安装与启用

本插件是 Host-only bundle,不能用凭仓库名拼出来的 dsh plugin add 代替官方方式。先把仓库放到本机,再对该目录的绝对路径执行:

plugin_manager  install_bundle  <本目录绝对路径>

安装成功后,工具列表里应出现 voice_speak、voice_sing、voice_status。

依赖(安装前准备)

  • Python 3.10+,pip install edge-tts;若用 ChatTTS,还需 pip install ChatTTS,并预留约 1GB 模型缓存(首次加载可从 HF 镜像下载)。
  • ffmpeg / ffplay(转码与本机播放)。

行配置在 cordis.patch.yml,常见键如下(默认值以 README 为准,部署时请改成自己机器上的路径):

键 默认 说明
pythonPath E:\SD-WebUI-Forge\venv\Scripts\python.exe 运行 voice.py 的 Python
ffmpegPath (README 中的 Windows 示例路径) 转码
ffplayPath 同目录 ffplay.exe 本机播放
modelHome C:\Users\Lenovo\.dsh\tts-models ChatTTS 模型缓存(HF_HOME)
engine auto auto / chattts / edge
dataDir 空 输出目录;空则 <DSH_HOME>/dsh-voice

典型用法

README 中的调用示例可直接复现:

voice_speak  text="今天也要开心呀。"  emotion="happy"  voice="soft"  play=true
voice_speak  text="才、才不是为了你才这样说呢……"  emotion="shy"  voice="default"
voice_sing   text="一闪一闪亮晶晶"  melody="star"  play=true

生成的文件在 <dataDir>/out/,默认即 <DSH_HOME>/dsh-voice/out/。需要确认引擎或最近输出时,调用 voice_status。

适用场景与注意

适合谁

  • 在本机 DSH 里做助手、角色扮演或演示,希望 Agent 工具链里自带「读出来 / 唱一句」,而不单独写 TTS 脚本。
  • 能接受配置 Python、ffmpeg,并在 Linux 或 Windows 上改好 cordis.patch.yml 里的路径(README 默认示例偏 Windows)。

使用前务必知晓

  • 插件以当前 dsh 进程权限运行,会执行你配置的 pythonPath 并读写 dataDir;安装前应阅读源码与 MIT 许可证,确认路径与网络行为(edge-tts 会访问微软语音服务)符合你的环境策略。
  • ChatTTS 依赖 GPU 与模型体积;仅 edge-tts 时更轻,但说话质感与 ChatTTS 不同,且唱歌能力仍走 edge-tts + ffmpeg 方案。
  • 社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系,插件亦来自社区维护者,非官方应用商店条目。

结尾

dsh-voice 把「带情绪说话 + 简单旋律唱歌」收成三个 Cordis 工具,并在 ChatTTS 与 edge-tts 之间做自动回退,输出落在本机 out/ 目录。若要试用或改配置,可从目录页 LIU118117/dsh-voice 进入,或直接查看 GitHub 仓库 中的 README 与 cordis.patch.yml。

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

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

Xiaoye