在 DeepSeek Harness(DSH)的开发中,当智能体仅以文本形式回复时,交互往往显得单调。开发者希望为 Web UI 增加语音能力,让智能体不仅能说,还能主动发送语音便签。dsh-voice 插件正是为此设计的解决方案。
这是什么¶
这是一个由 Lorodn4x 维护的 DSH 客户端插件。它利用 Edge TTS 为 DSH 网页 UI 提供了两个核心能力:浏览器端的语音播放按钮,以及 Agent 主动调用 voice_say 发送语音消息的功能。无需 API 密钥,直接使用微软 Edge 语音合成。
核心功能¶
插件通过 Node-端和浏览器端两部分协作实现语音功能:
- Agent 工具:在
ctx.tools中注册了voice_say(text, voice?)工具。Agent 可以调用此工具主动发送语音消息。 - HTTP 路由:在
ctx.webServer上注册了POST /dsh-voice/tts路由,接收{text, voice}参数并返回audio/mpeg格式的音频数据,供浏览器端调用。 - 文本清理:在合成语音前,会自动移除 fenced 代码块、缩进代码、行内代码、URL、HTML 标签、表格和标题,仅保留可读文本。
- 浏览器端渲染:在
conversation.chat.turnTail插槽中渲染播放器、听取按钮和语音切换器。
安装与启用¶
安装插件需要将代码路径添加到配置中,并确保配置项正确写入。
- 执行安装命令,将插件链接到 Web 配置文件:
dsh plugin --profile web add --save link:/путь/к/dsh-voice
*(注意:命令中的路径需替换为实际代码路径)*
-
在 DSH 配置文件中添加
"dsh-voice"到dsh.profile.bundles列表中。 -
重启配置:安装完成后必须重启当前使用的配置(Profile),因为工具和路由运行在宿主进程中。
典型用法¶
1. Agent 主动发送语音¶
Agent 在执行任务时,可以通过调用 voice_say 工具发送语音回复。例如:
ctx.tools.voice_say('你好')
2. 用户听取语音¶
浏览器端渲染的界面会显示「听取」按钮。用户点击后,系统会合成文本并播放。切换语音时,听取按钮会重新合成文本(不同语音的缓存是独立的)。
3. 语音配置¶
默认语音为俄语。若需使用其他语言,Agent 或用户需通过 voice 参数使用完整的 Edge TTS ShortName,例如:
- ru-RU-DmitryNeural (男性)
- ru-RU-SvetlanaNeural (女性)
适用场景与注意¶
适用场景:
- 需要 Web UI 具备语音交互能力的开发者。
- 希望智能体能主动通过语音发送便签的场景。
注意事项:
- 权限与网络:语音合成需要访问 speech.platform.bing.com。
- 缓存位置:生成的音频文件会缓存于 $DSH_HOME/voice-cache/<sha1>.mp3。
- 许可证:本项目采用 MIT 许可证。
总结¶
dsh-voice 通过复用 Edge TTS 引擎,为 DeepSeek Harness 的 Web UI 补齐了语音交互能力。开发者可以直接通过 Agent 工具或浏览器端按钮使用语音功能,无需配置复杂的 API 密钥。更多细节可查看插件目录或源码:GitHub。