前言¶
在 DSH 的智能体流程中,文本输出很常见,但语音场景往往需要额外处理:文字要合成语音时,要关心音色、请求参数和输出文件;音频要转文字时,要关心 ASR 端点、密钥、语言和结果落盘。
dsh-voice 把这几件事收进 DSH 插件:提供 voice_tts、voice_stt 和 voice_list 三个工具,覆盖文字合成 MP3、音频转文字和常用音色清单。
这是什么¶
dsh-voice 是一个 DSH 语音双件套插件,定位是给 agent 增加 TTS 与 STT 工具能力。
- 项目仓库:https://github.com/STARDUSTLC666/dsh-voice
- 已核实资料中的 owner 为 STARDUSTLC666;资料中同时出现 stardustlc 表述,但未明确两者是否为同一人或主维护者。
- 许可证为 MIT。
- 在
@deepseek-ai/dsh@0.1.2-alpha.2上验证(2026-08-31)。 - 运行时不 import 任何
@deepseek-ai/*内部模块。 - Node 要求为
Node >=22。 - 实现上使用原生 WebSocket,并提供插件级代理。
核心功能¶
下面介绍插件提供的三个工具。
voice_tts:文字合成 MP3¶
voice_tts 用于把文本合成为 MP3(免费)。text 为必填参数;voice、rate、pitch、output 为可选参数。
voice_tts { text: 今天的 AI 早报来了 } # 晓晓女声,输出 voice_output.mp3
voice_tts { text: hello, voice: en-US-AriaNeural } # 英文女声
已核实资料说明,voice_tts 零配置可用;合成走 edge-tts 协议直连,并本地生成 Sec-MS-GEC 令牌。
voice_stt:音频转文字¶
voice_stt 用于把音频转成文字。audio 为必填参数;engine、model、language、prompt、output 为可选参数。
voice_stt { audio: E:\audio\meeting.mp3, language: zh } # 转写会议录音
该工具需要 ASR 密钥。它支持 OpenAI 兼容 ASR 接口,可指向 Groq、OpenAI 或自定义端点;密钥推荐改用环境变量 DSH_VOICE_ASR_KEY。
voice_list:音色清单¶
voice_list 用于返回常用音色清单,方便选择 voice_tts 的 voice 参数。
voice_list {}
安装与启用¶
先确认运行环境满足 Node >=22,再执行:
dsh plugin --profile web add dsh-voice
执行上面的命令后,即可在 DSH 工具调用中使用下面三个示例。如果后续使用 voice_stt,建议把 ASR 密钥放入环境变量 DSH_VOICE_ASR_KEY,而不是把密钥写进日常配置里。
适用场景与注意¶
适合的场景:
- 在 DSH agent 中直接把文本转成 MP3,例如生成早报语音。
- 在 DSH agent 中把会议录音等音频转成文字。
- 需要快速查看可用音色,再调整
voice_tts参数。
使用时注意:
voice_tts零配置可用;voice_stt需要 ASR 密钥。- 插件会对输入做前置校验:文本不超过 5000 字符,音频不超过 25MB。
- 输出文件同名时会自动加序号。
- 卸载后需要重启 Web 服务;如需彻底清理,可再手动删除自己 profile
cordis.patch.yml中覆盖的插件行。 - 插件会以当前 dsh 进程权限运行。安装前建议检查源码、依赖和 MIT 许可证。
- DSH 的插件生态强调“一切皆插件”,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-voice 的价值在于把 TTS、STT 和音色清单放进 DSH 插件工具链中,减少 agent 语音输入输出所需的胶水代码。
项目仓库:https://github.com/STARDUSTLC666/dsh-voice