中文EN

dsh-fish-tts

voice已测通过npmMIT

朗读助手回复(仅支持 Fish Audio API,需自备 Key):逐条朗读、自动朗读开关,设置页可配模型、音色 reference_id、加密 API Key 与代理。

下载量 / Downloads
3,217
依赖体积 / node_modules
2.52 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-fish-tts

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-fish-tts

中文 | [English](./README.en.md)

<p align="center">

<img src="./assets/readme/hero.svg" width="100%" alt="dsh-fish-tts — DeepSeek Harness 语音合成插件(仅支持 Fish Audio API)" />

</p>

<p align="center">

<img src="https://img.shields.io/github/actions/workflow/status/MaRi23333/dsh-fish-tts/ci.yml?style=flat-square&label=CI" alt="CI" />

<img src="https://img.shields.io/github/license/MaRi23333/dsh-fish-tts?style=flat-square" alt="License: MIT" />

<img src="https://img.shields.io/badge/DeepSeek%20Harness-0.2.0--rc.2-4d6bfe?style=flat-square" alt="DeepSeek Harness 0.2.0-rc.2" />

</p>

English: dsh-fish-tts is a third-party TTS plugin for the
DeepSeek Harness Web GUI —
Fish Audio API only, bring your own key: a per-message
"Read aloud" action, an auto-read toggle in the composer, and a settings page for
model / voice / encrypted API key / proxy. Bilingual UI (zh/en). See
[README.en.md](./README.en.md) for the full English version.

简介

面向 DeepSeek Harness(DSH)Web GUI 的第三方语音合成(TTS)插件:为每条助手回复提供一键朗读,输入栏带自动朗读开关,模型 / 音色 / 加密 Key / 代理均可配置。仅支持 Fish Audio API,需自备 API Key。 使用你自己的 Fish 音色(reference_id,含自行克隆的音色)——朗读、试听都走你配置的语音。

30 秒对比:与常见 Edge TTS 朗读插件

对比项 · dsh-fish-tts(本插件) · 常见 Edge TTS 朗读插件

合成引擎 · Fish Audio 官方 API(仅支持;需自备 Key) · 微软 Edge 内置语音

音色 · 你自己的音色 reference_id(含自行克隆的音色,须有使用权限) · Edge 内置固定音色库

API Key · 必须自备(设置页 AES-256-GCM 加密保存) · 无需

适合谁 · 已有 Fish Audio 账号、想要自己或克隆音色的用户 · 想免费快速试用、固定音色即可的用户

功能

  • 朗读按钮:每条定稿的助手消息操作条里有一个「朗读 / Read aloud」按钮(图标与原生操作条图标同风格),点击合成并播放该条回复;播放中再次点击该消息的按钮即中断停止(不会从头重播),点击其他消息的按钮则直接切换播放,合成等待中再点一次可取消。markdown 会被清洗:路径 / URL / 长编号 / 代码块不会读出来。
  • 自动朗读:输入框工具行的小喇叭开关(与设置页同步),开启后自动朗读 DSH 界面打开之后到达的新回复。
  • 常用音色收藏:为音色 ID 保存易辨识的名称和多行备注,从下拉列表直接切换并立即生效。收藏保存在本机;切换保留其他未保存设置,移除收藏也不会清空当前音色。
  • 音频生成工具 fish_tts_speak:供智能体把台词生成为音频文件;所在会话若接了聊天通道(如 IM 机器人),文件交由通道插件投递为语音条。台词清洗、每会话限频、服务端响度归一化与文件生命周期都在本插件完成;Fish 情绪/声音方括号标签([soft]、[laughing] 等)原样透传、不被念出来。通道插件通过 ctx.fishTts.registerDelivery 注册投递器,出站敏感词过滤仍在通道侧执行。
  • 设置页(Settings → 语音朗读 / Voice (Fish TTS)):
  • TTS 模型(下拉建议 + 手动输入,支持 s2.1-pro-free / s2.1-pro / s2-pro 等,保存后立即生效;默认 s2.1-pro-free)
  • 音色 reference_id(可直接输入、修改或清空,无须收藏;合成需要有效 ID,插件不提供默认音色)
  • API Key(AES-256-GCM 加密存储在本机 $DSH_HOME/fish-tts/settings.json,密钥文件 key.bin 自动生成并在 Windows 上收紧 ACL;Key 不会出现在任何 GET 响应、日志或仓库中)
  • HTTP 代理(例如 http://127.0.0.1:7890,直连不通时可填)
  • 音频生成(智能体调用):开关、格式(mp3/wav/opus)、单条文本上限、每分钟上限(0 为禁止发送)、服务端响度归一化开关、音量微调(-20~+20 dB)——折叠分组,置于设置页末尾。工具默认启用,调用可能消耗 Fish Audio 额度,不需要时可在此关闭
  • 试听/停止试听按钮、自动朗读开关、音量滑条(默认 60%,仅影响 DSH 内的朗读播放,不影响生成的音频文件)、倍速滑条(0.5–2.0×,不变调;环境不支持时固定 1×)
  • 双语界面(中文 / English,跟随 DSH 语言设置;en 词条与 zh 完全对齐)。

界面截图

<p align="center">

<img src="./assets/readme/screenshot-read-aloud.png" width="75%" alt="消息操作条上的朗读按钮" /><br>

<em>消息操作条上的「朗读」按钮</em>

</p>

<p align="center">

<img src="./assets/readme/screenshot-auto-read.png" width="75%" alt="输入栏的自动朗读开关" /><br>

<em>输入栏的自动朗读开关</em>

</p>

<p align="center">

<img src="./assets/readme/screenshot-settings.png" width="75%" alt="设置页示例:当前音色、常用音色切换、连接设置和播放偏好" /><br>

<em>设置页:直接应用音色 ID、按名称切换收藏并试听;连接设置可折叠,播放偏好无须保存。截图中的音色仅用于展示,不随插件提供。</em>

</p>

宿主与桌面端兼容

开发侧于 2026-09-30 报告:dsh-fish-tts 0.2.11 在 DSH 0.2.0-rc.2 与同版本桌面客户端中可用。插件沿用 Web 客户端接口;桌面客户端中的插件界面不需要另一份桌面专用包。

0.2.12 为插件管理页增加随客户端语言切换的中英文名称与简介,合成和设置逻辑不变。更新说明见 [CHANGELOG.md](./CHANGELOG.md)。

0.2.13 新增常用音色收藏,重新整理设置页流程与视觉风格,并修复播放归属、设置失败恢复和试听反馈。停止或切换会取消客户端请求,但不保证 Fish 上游已停止处理或计费。

此说明依据维护者的使用反馈,不代表所有操作系统或所有 Fish 模型均经过验证。在线合成仍需有效 API Key、可用音色和网络;宿主接口发生变化时需重新验证。

安装

桌面客户端与 Web 实例的插件安装及启用状态完全独立。请根据你使用的运行环境选择对应方式:

桌面客户端安装(推荐)

通过桌面客户端界面安装(无需配置命令行):

1. 打开桌面客户端左侧栏「插件 / Plugins」,点击右上角「添加插件 / Add plugin」;

2. 输入 npm 包名 dsh-fish-tts@latest 并确认安装;

3. 安装完成后点击「立即启用 / Enable now」(若直接关闭安装完成弹窗,插件会保留在已安装列表中但处于未启用状态);

4. 仅在界面提示需要重启时,通过菜单完整退出应用(Quit)后重新打开(在 Windows / macOS 上直接关闭窗口可能仅隐藏到后台);

5. 识别点:打开 Settings,确认侧栏设置项中出现「语音朗读 / Voice (Fish TTS)」。

<details>

<summary>备选:桌面端终端安装(Windows / macOS)</summary>

若偏好终端管理,可使用桌面配套 CLI:

1. 在桌面客户端应用菜单中选择 Manage dsh Command… → Install(注册桌面配套命令,若提示 PATH 冲突按其指引处理),并打开新终端;

2. 确保桌面客户端已至少启动过一次以完成初始化,并先通过 Quit 完整退出桌面客户端;

3. 在新终端中执行桌面专用命令安装与检查:

   dsh plugin --profile desktop add dsh-fish-tts@latest
   dsh plugin --profile desktop list

4. 重新启动桌面客户端。

注意:通过外部 npm / npx 安装的普通 dsh CLI 无法管理 desktop profile。关于桌面配套命令机制,详见官方桌面端文档的 bundled-command-runtime。

</details>

Web 实例安装

Web 实例通过匹配的命令行工具进行管理。优先使用启动该 Web 实例的同一套匹配宿主的 dsh CLI:

dsh plugin --profile web add dsh-fish-tts@latest

然后重启 dsh web(关掉终端重新运行 dsh web)并刷新页面,打开 Settings → 语音朗读。

其他安装方式:

# 从 GitHub 安装(仓库已附 lib 产物,无需本地构建)
dsh plugin --profile web add github:MaRi23333/dsh-fish-tts

# 从本地目录安装
git clone https://github.com/MaRi23333/dsh-fish-tts.git
cd dsh-fish-tts
pnpm install && pnpm run build
dsh plugin --profile web add /absolute/path/to/dsh-fish-tts
仓库已提交 lib/ 构建产物,git 安装无需本地构建;改源码后运行 pnpm run build 再重启即可。
说明:若使用 npx 执行安装命令,请固定为与你的 Web 宿主相同的版本(例如 npx @deepseek-ai/dsh@<version>)。从 GitHub 版换到 npm 源时,裸包名 add dsh-fish-tts 对已装的 git 版是静默空操作(pnpm 判定同名依赖已满足),请改用带 @latest 的命令明确请求 npm 上的最新版本,或先 remove 再 add。
安装刚发布的 npm 版本时,pnpm 的供应链保护可能自动在 profile 的 pnpm-workspace.yaml 写入 minimumReleaseAgeExclude: [dsh-fish-tts@…],属正常行为,不影响使用。

安装后验证

1. 打开 Settings → 语音朗读(Voice (Fish TTS));

2. 在「连接设置」填入你的 API Key,点击「保存连接设置」;

3. 在「音色 ID」中填写音色 reference_id,点击「应用音色」(无须填写名称或收藏);

4. 点击「试听当前音色」——听到你的音色朗读测试句,安装即成功。

「试听当前音色」使用已保存的音色和连接设置,不会保存表单草稿;会请求试听音频,缓存未命中时调用 Fish Audio API。音色为空或没有可用 Key 时不可试听,等待和播放中均可停止。

收藏与切换常用音色

「音色 ID」始终显示,可以直接粘贴、修改并

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:10,最后更新 2026-11-06

链接

GitHub · Homepage · npm

同类插件