DeepSeek Harness(DSH)语音朗读插件 dsh-tts-flash

前言

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 仓库。

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

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

小夜