前言¶
DeepSeek Harness(DSH)采用插件化架构,支持在桌面端扩展功能。针对 LLM 回复内容,阅读长文本或调试时存在效率瓶颈。dsh-tts-flash 是一款为 DSH 桌面端设计的 LLM 回复语音朗读插件,它利用流式输出旁路,在 AI 边生成回复的同时,本地边合成语音播放。
核心能力¶
该插件提供以下核心功能:
- 无损流式朗读:AI 边流式输出,本地边合成语音播放,随读随停。支持中英日分句与短句合并,长回复自动追赶。
- 多引擎支持:内置微软 Edge TTS,同时支持 OpenAI 兼容的云端 TTS 服务。
- 引擎即插即用:支持在设置面板手动添加,或通过 JSON 声明文件自动加载。
- 等待期语音体系:AI 思考(等待生成)期间,浮条每 2.6~3.5 秒轮换趣味短语,实现文字与语音同步反馈。
- 语音设置面板:朗读开关、语音模型、音量、语速、字幕字号等设置实时生效。
- 朗读悬浮条:可拖动、位置记忆,支持流光字幕与单程滚动字幕。
- 持久化设置:运行时配置独立保存,重启或重装后不丢失。
安装¶
通过 npm 获取包并构建:
npm pack
# 生成文件:dsh-tts-flash-0.1.0.tgz
获取 .tgz 文件后,使用 DSH 的插件安装流程注册该文件。
引擎配置¶
插件提供两种配置引擎的方式。
1. Edge TTS(默认)¶
无需额外配置,下拉选择微软音色即可使用。该服务依赖联网。
2. OpenAI 兼容云端 TTS¶
在设置面板的「云端引擎」中填入 baseURL、API Key 和 模型 id 即可添加。模型 id 需与厂商文档完全一致。
3. JSON 声明文件¶
将 JSON 声明文件放入 ~/.dsh/tts-flash/engines/ 目录,插件启动时会自动加载。
示例内容:
{
"id": "my-engine",
"label": "我的引擎",
"kind": "openai",
"url": "https://api.example.com/v1",
"apiKey": "sk-...",
"model": "tts-model-id",
"stylePrompt": "可选:音色描述/风格指令"
}
等待期语音¶
当 AI 开始生成回复但尚未产出音频时,浮条会轮换趣味短语并朗读。语音文件缓存在 ~/.dsh/tts-flash/cache/thinking/ 目录下。
- 短语池:内置 5 条趣味短语。
- 独立模型:等待期语音可选择独立的发声引擎(默认 Edge 小艺)。
- 操作:支持批量生成语音文件或清理缓存。
界面与设置¶
插件提供可视化的设置面板与悬浮条。
悬浮条¶
- 功能:纯文字胶囊,支持拖动与位置记忆。
- 效果:长句显示单程滚动字幕,滚动时长等于真实音频时长。
设置面板¶
- 朗读控制:实时开关朗读。
- 语音参数:音量(0%~200%)、语速(Edge 服务端封顶 +100%)。
- 字幕样式:流光效果、字号(10~30px)。
- 云端引擎管理:添加、编辑音色描述、删除引擎。
- 等待期语音管理:独立引擎选择与文件清理。
注意事项¶
- 自动播放拦截:浏览器可能拦截有声自动播放,需先与 DSH 进行一次交互(发送消息)后,朗读功能方可正常触发。
- Edge TTS 限制:该接口为微软未公开接口,无 SLA 保证,断网不可用。
- 语速限制:Edge TTS 服务端语速封顶 +100%。
- 权限限制:桌面端 web server 仅放行 DSH 渲染进程的请求,外部访问一律被拒绝。
总结¶
dsh-tts-flash 通过流式合成与多引擎支持,将 DSH 的文本输出转化为实时语音。其等待期语音与悬浮条功能,提升了交互的趣味性与沉浸感。更多详情可查看 GitHub 仓库。