dsh-voice: Text-to-Speech, Dictation, and Multilingual Voice Routing for DSH Web UI

前言

在 DeepSeek Harness(DSH)里做智能体对话时,助手回复往往很长:代码块、多语言混排、连续多轮。若要在浏览器里「边听边看」,或用手写输入框口述问题,通常得自己接 TTS/STT 服务、再在 UI 里打补丁。社区插件 dsh-voice(npm 包名 @lucagiftzek/dsh-voice)把朗读、听写、按语言选供应商和逐词高亮收进 DSH Web 界面,并在设置里统一管理多家语音后端。下面介绍它做什么、如何安装,以及使用前需要注意的事项。

这是什么

dsh-voice 由维护者 lucagiftzek(Luca Tzekos)发布,在 SkillHub 社区目录中归类为模型推理。当前 npm 版本为 2.0.0(MIT 许可证)。它面向 DeepSeek Harness Web UI:在每条已完成的助手回复上提供朗读控件,在输入区提供麦克风听写,并支持按句子检测语言、为不同语言绑定不同 TTS/STT 供应商,以及朗读时的句子和单词高亮。

插件声明 dsh.bundle,通过 Cordis patch 注入聊天与会话 UI;密钥走服务端配置,README 说明 keys 不会进入浏览器。

核心功能

以下能力均来自项目 README 与 package 描述,可按需在设置中逐项启用。

对话内朗读与代码块

  • 每条已结束的助手回复旁有扬声器,可对正文朗读。
  • 代码块旁有 { } 按钮,可单独朗读代码块内容。

听写与润色

  • 输入框(composer)旁有麦克风,支持 push-to-talk 听写,文本插入光标位置。
  • 可选「润色」步骤:修正标点,不翻译原文。

多供应商并行

  • 设置路径:Settings > Voice。
  • README 称共 23 种 provider 类型,列表中 EU 厂商优先,再分 Others、Self-hosted;每项带数据 residency 与 timing(word timings 或 estimated)标识。
  • 同一类型可添加多个实例(例如本地服务 + 中继、两个 Azure 区域)。
  • 每一行有 Test:朗读短句并回录转写;纯 STT 供应商会借用其他行的 TTS 样本。

按语言路由

  • 可为 English、Italian、Greek 及自定义语言分别指定 provider、model、voice、speed。
  • 正文内可用 in-text language markers 在同一段文字中切换语言。
  • 按句做语言检测;不确定时可用 DSH 模型辅助;朗读时显示 language badge。

高亮与自动朗读

  • 支持当前句、当前词高亮;若供应商返回 word timings,词级高亮更准,否则按音频长度估算。
  • 可 opt-in auto-read 新回复。

侧栏与快捷键

  • TTS Reader 侧栏标签(README 建议先安装 dsh-better-sidebar 作为 tab host,若已装可跳过)。
  • 支持键盘快捷键(具体键位见仓库文档)。

运行环境

  • README:DSH 0.2.x(在 0.2.1 上测试)及 DSH 0.1.5。
  • package.json 中 dsh.engines.dsh 为 >=0.1.1-rc.1;Node 为 ^22.19.0 || >=24.0.0。
  • 仓库已提交 lib/,npm 安装无需本地 build。

安装与启用

先做依赖侧栏(可选),再添加语音插件,最后重启 Web 并在 Voice 里测通供应商。

  1. 若需要 TTS Reader 侧栏标签,且尚未安装 tab host:
dsh plugin --profile web add dsh-better-sidebar
  1. 从 npm 或 GitHub 添加 dsh-voice(二选一):
dsh plugin --profile web add @lucagiftzek/dsh-voice

或:

dsh plugin --profile web add github:lucagiftzek/dsh-voice
  1. 重启 DSH Web 进程(例如重启 dsh web),在 Settings > Voice 中添加 provider,点击 Test 确认 TTS/STT。

若从本地 checkout 开发链接(需自行 clone,非本文安装路径),README 给出:dsh plugin --profile web add link:$PWD/dsh-voice;日常用户以 npm/GitHub 命令为准。

典型用法

配置语音后端

打开 Settings > Voice,在 Add provider 中选择类型(表格与说明见仓库 docs/PROVIDERS.md)。EU 组示例包括 Mistral、Speechmatics、Gladia、Acapela、ReadSpeaker 等;Others 含 ElevenLabs、Azure、Google、Amazon、OpenAI、Deepgram 等;Self-hosted 含 Piper、Kokoro、ElevenLabs-compatible 等。为每种需要自动路由的语言配置对应实例;未在其语言列表中的 provider 不会收到该语言的自动路由。

对话中

  • 点击助手消息旁的扬声器听全文;代码块用 { } 朗读。
  • 在 composer 用麦克风口述;需要时可开润色仅改标点。
  • 多语言正文可用 in-text markers 切换朗读语言。

侧栏

  • 安装 dsh-better-sidebar 后,使用 TTS Reader 标签阅读示例或多语文本(README 截图见仓库 docs/media/demo.png)。

验证与状态

  • 部分 provider 在 README 中标记 (partly verified) 或 (planned),含义见 docs/PROVIDERS.md 的 Verification 说明。
  • 故障排查见 docs/TROUBLESHOOTING.md、docs/ERRORS.md。

适用场景与注意

适合谁

  • 在 DSH Web 里长时间阅读助手输出、希望听读结合或口述提问的开发者。
  • 需要在同一实例里按语言切换 TTS/STT(例如英/意/希腊混排),或优先选用 EU residency 供应商的团队。
  • 已有 Azure、OpenAI、Mistral 等密钥,希望在 DSH 内统一配置而非单独写前端集成的人。

使用前请注意

  • DSH 生态是「一切皆插件」;SkillHub 目录为社区站点,与 DeepSeek / 幻方无官方从属关系。
  • 插件随当前 dsh 进程权限运行,安装前应查看源码与 MIT 许可证,并理解各 vendor 的数据 residency 与计费(README 表格中的 Price note 仅为文档摘要,以厂商定价页为准)。
  • 星标与目录页展示信息会变化;功能边界以仓库 CHANGELOG.md(2.0.0 起 23 provider types)为准。

结尾

dsh-voice 把 DSH Web 对话里的朗读、听写、23 类 TTS/STT 供应商配置、按语言路由和朗读高亮做成一套可测试的设置面板,减少自研语音 UI 的成本。进一步了解可访问社区目录页与 GitHub 仓库:

  • 目录页:https://www.skillhub.cn/plugins/lucagiftzek/dsh-voice
  • GitHub:https://github.com/lucagiftzek/dsh-voice
羽毛球分组比赛记分
小程序二维码

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

Xiaoye