Vim0x3c/dsh-tts 预览 preview

Vim0x3c/dsh-tts

DeepSeek Harness (dsh web) 语音播报插件:利用 Edge TTS 微软神经语音朗读每条助手回复的最终结果。仅读取最终答复、长文本自动分段、输入框内喇叭图标一键开关、支持审批提示朗读及自定义提示音,全程本地运行,零第三方依赖。通过 Edge TTS 为 dsh web 实现的文本转语音功能。

Project Overview项目介绍

dsh-tts is a text-to-speech plugin built natively exclusively for the DeepSeek Harness (DSH) web platform. Its core function is to synthesize the final response from the DSH assistant into an audio file using Microsoft Edge's neural TTS service, then play the generated audio directly in the user's browser. The standard installation process requires you to first clone the source repository, install build dependencies with pnpm, build the compiled code, package it into a tarball with npm pack, then install the tarball to your DSH web profile via the DSH CLI plugin command.

This plugin is designed for DSH users who prefer consuming assistant responses via audio instead of just text. By default, it only reads the final reply of each conversation turn, skipping intermediate thinking steps and tool call outputs, and splits long responses into individual sentences for sequential reading. If the cloud-based Edge TTS synthesis fails for any reason, it automatically falls back to the browser's built-in speechSynthesis API, so the core feature works even when you are offline.

The plugin is built entirely with Node.js built-in APIs and has no third-party npm dependencies, and it is released under the open source MIT license. It requires an active network connection to access the Edge TTS cloud service, and if the endpoint is blocked by your network or region, it will automatically fall back to local speech synthesis. The first run requires you to test a sample audio to unlock the browser's autoplay policy, otherwise the automatic audio playback after responses may be blocked by the browser.

dsh-tts 是专门为 DeepSeek Harness(DSH)web 开发的原生语音播报插件,核心功能是将 DSH 助手输出的最终答复通过微软 Edge 神经语音合成为音频,在浏览器端播放,实现助手回复的语音化输出。它手动实现了符合 RFC 6455 标准的 WebSocket 握手,解决了 Node 原生 WebSocket 过滤 Edge 必需握手头导致连接失败的问题。

该插件面向需要获取语音形式助手回复的 DSH 用户,默认只朗读每个对话回合的最终结果,不会朗读中间思考步骤或工具调用信息,长回复会自动按句子分段串行朗读。如果在线 Edge TTS 合成失败,会自动降级到浏览器本地的 speechSynthesis API,离线环境下也能正常输出语音。

该插件完全基于 Node 内置 API 开发,本体没有第三方 npm 依赖,遵循 MIT 开源许可协议。安装需要先本地构建生成 tarball 包,再通过 DSH 插件命令添加到 web profile,最后重启 dsh web 完成加载。首次使用需要先试听音色解锁浏览器自动播放策略,Edge 语音合成需要可访问微软公共网络。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 1 warning1 项注意
  • Only 3 stars - very few users, little community feedback星标只有 3,几乎没人在用,遇到问题缺少社区反馈
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:Vim0x3c/dsh-tts

把 Vim0x3c/dsh-tts 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-tts

English | 中文

dsh web 的语音播报插件:把每个助手答复的最终结果用 Edge TTS(微软神经语音)朗读出来,实现开口即答的语音交流。

  • 真·Edge TTS:宿主(Node)端用微软 Edge “大声朗读” 神经语音接口在线合成 MP3,浏览器播放 —— 无需 OpenAI/第三方密钥,免费。握手用自实现的 RFC 6455 WebSocket(Node 原生 WebSocket / undici 会过滤微软必需的握手头导致升级被拒,手动握手实测返回 101)。
  • 只读最终结果:中间步骤、工具调用说明不读;每个回合只朗读收尾那条最终答复;连续多回合只读最新一条。长回复自动按句子分段串行朗读。自动朗读失败会降级到浏览器本地 speechSynthesis(离线也能出声)。
  • 音色/语速:内置 zh-CN-XiaoxiaoNeural 等 20+ 个 Edge 神经音色,滑块调语速 (0.5×–2×)。
  • 喇叭开关:输入框工具排的喇叭按钮(悬停有提示)快速开关「自动朗读新回复」;关闭时立即中断当前朗读。设置里与「自动朗读新回复」联动。
  • 审批提示:遇到「需要审批」时朗读“需要审批”,可单独关闭;可自定义审批提示音(预设「叮/哔哔/咚」或用 Web Audio/上传 mp3/wav/ogg ≤1MB,选定即时试听)。
  • 完全本地、零运行时依赖:Edge 协议用 Node 内置 API 原生实现,插件本体不含任何第三方 npm 依赖,离线也能安装。

dsh-plugin topic: (https://github.com/topics/dsh-plugin)

默认音色 zh-CN-XiaoxiaoNeural(晓晓)。如需更多官方音色,自行在 src/voices.ts 里追加 Edge ShortName 即可。

设置界面

设置界面

安装

前置要求:dsh 的应用闭包需包含插件的 @deepseek-ai/dsh-* peer 包——即任何带 @deepseek-ai/dsh-web-app bundle 的部署(dsh web 官方 profile 都满足)。

方式一:本地构建 tarball 后安装(最常用)

本项目当前以源码仓库形式发布,没有已构建的 release tgz。你要先在仓库里构建出 dsh-tts-0.1.0.tgz,再通过它安装。

  1. 克隆/进入仓库并构建:

    git clone https://github.com/Vim0x3c/dsh-tts.git dsh-tts
    cd dsh-tts
    pnpm install
    pnpm build          # tsdown:产出 lib/index.js、lib/client.js 等
    npm pack            # 生成 dsh-tts-0.1.0.tgz
    

    若你只想在本机用,也可以直接在仓库根执行 pnpm build 拿到 lib/;但安装到 dsh 建议用 tarball(npm pack 生成)。

  2. 安装到 web profile:

    dsh plugin --profile web add -w ./dsh-tts-0.1.0.tgz
    

    -w 标志是必须的:每个 profile 都带一个 pnpm-workspace.yaml,pnpm 会把 profile 目录当作 workspace 根,裸 add 会报 ERR_PNPM_ADDING_TO_ROOT。

  3. 重启 dsh web(宿主端会在启动时加载插件):

    dsh web          # 或 dsh --profile web
    
  4. 验证安装成功:

    # ① 插件已在组合配置里(应看到 - id: dsh-tts)
    dsh --profile web --dump-config | grep dsh-tts
    
    # ② 宿主桥已起来(应返回 200 {"ok":true})
    curl http://127.0.0.1:8765/health
    

方式二:git URL 安装(不推荐)

dsh plugin --profile web add github:Vim0x3c/dsh-tts

⚠️ 不推荐:从 git 安装取到的是源码而非构建好的 lib/,且插件的 peer 包未发布到 npm,git 安装通常无法构建或解析它们。请先本地构建 tarball 再按方式一安装。

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dsh-commit-review 下一个 Next dsh-auto-translate →