dsh-voice:DSH 的 TTS 与 STT 插件

前言

在 DSH 的智能体流程中,文本输出很常见,但语音场景往往需要额外处理:文字要合成语音时,要关心音色、请求参数和输出文件;音频要转文字时,要关心 ASR 端点、密钥、语言和结果落盘。

dsh-voice 把这几件事收进 DSH 插件:提供 voice_ttsvoice_sttvoice_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 为必填参数;voiceratepitchoutput 为可选参数。

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 为必填参数;enginemodellanguagepromptoutput 为可选参数。

voice_stt { audio: E:\audio\meeting.mp3, language: zh } # 转写会议录音

该工具需要 ASR 密钥。它支持 OpenAI 兼容 ASR 接口,可指向 Groq、OpenAI 或自定义端点;密钥推荐改用环境变量 DSH_VOICE_ASR_KEY

voice_list:音色清单

voice_list 用于返回常用音色清单,方便选择 voice_ttsvoice 参数。

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

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

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

Xiaoye