前言¶
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 |
查看当前引擎、路径、模型缓存与最近生成的文件 |
说话引擎
- ChatTTS(默认路径):本机 GPU 推理,语气自然,有停顿和情感;需要
modelHome下的模型缓存,以及 Python 环境中的ChatTTS包。 - edge-tts:不依赖本地大模型,启动快;ChatTTS 不可用时自动回退。
- 唱歌:用 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。