为每条助手回复添加朗读按钮并自动播报
30.2/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/WYR-233/dsh-multi-tts.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 53 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-multi-tts(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 10:40:32
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 21 条)
- 读取本地文件lib/index.js:82
for (const line of readFileSync(file, 'utf8').split(/ ? /)) { - 写入本地文件lib/index.js:102
writeFileSync(tmp, text, { encoding: 'utf8', mode: 0o600 }) - 写入本地文件lib/index.js:103
renameSync(tmp, target) - 读取本地文件lib/index.js:108
if (!existsSync(target)) return null - 读取本地文件lib/index.js:109
const v = JSON.parse(readFileSync(target, 'utf8')) - 读取本地文件lib/index.js:116
try { raw = readFileSync(file, 'utf8') } catch { cache = {}; return cache } - 写入本地文件lib/index.js:119
try { if (!existsSync(keep)) copyFileSync(file, keep) } catch { } - 读取本地文件lib/index.js:119
try { if (!existsSync(keep)) copyFileSync(file, keep) } catch { } - 读取本地文件lib/index.js:127
const v = JSON.parse(readFileSync(file, 'utf8')) - 写入本地文件lib/index.js:138
if (!existsSync(dir)) mkdirSync(dir, { recursive: true }) - 写入本地文件lib/index.js:144
try { if (!existsSync(keep)) copyFileSync(file, keep) } catch { } - 写入本地文件lib/index.js:151
try { writeFileSync(file, JSON.stringify(next, null, 2), { encoding: 'utf8', mode: 0o600 }) } catch { } - 请求外部主机api.minimax.cnlib/index.js:201
const r = await fetch('https://api.minimax.cn/v1/t2a_v2', { - 发起网络请求lib/index.js:201
const r = await fetch('https://api.minimax.cn/v1/t2a_v2', { - 发起网络请求lib/index.js:219
const r = await fetch(`${base}/audio/speech`, { - 发起网络请求lib/client.js:50
const r = await fetch(API + "/synthesize", { - 发起网络请求lib/client.js:180
fetch(api + "/config").then((r) => r.json()).then((j) => { - 发起网络请求lib/client.js:188
fetch(api + "/config", { - 发起网络请求lib/client.js:195
fetch(api + "/synthesize", { - 发起网络请求lib/client.js:372
fetch(API + "/config").then((r) => r.json()).then((j) => { - 发起网络请求lib/client.js:397
fetch(API + "/config", {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
涉及外部主机:api.minimax.cn
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 添加朗读按钮
- 自动播报回复
- 自选服务商与音色
多服务商 TTS 插件(朗读回复),用于 DeepSeek Harness——自选服务商和音色
README
由 DeepSeek 最新模型翻译生成dsh-multi-tts
在 DeepSeek Harness 中朗读助手回复——选择你自己的 TTS 提供商和语音。
英文 | 中文
一个面向 DSH 的多提供商文本转语音插件:每条助手回复旁都有一个 🔊 按钮,输入框中有自动朗读开关,还有一个设置页面,让你选择提供商、语音、情感和语速。无需构建步骤——纯 ESM + 手写 React。
功能
- 🔊 逐条回复朗读——每条助手消息上都有一个按钮;再次点击即可停止。
- 🔇 自动朗读开关——位于输入框左侧槽位;新回复会自动朗读。
- ⚙️ 多提供商设置页面——提供商下拉菜单、语音下拉菜单、手动语音 ID、情感、语速、模型、基础 URL、API 密钥,以及一键测试按钮。
- 🧹 对 TTS 友好的文本清理——朗读前会去除代码块、行内代码、URL、文件路径、Markdown 强调标记和列表项目符号。
- 🔑 灵活的密钥解析——插件配置 → 环境变量 → $DSH_HOME/.env → .env 中的常见密钥名称。
- 📦 零构建——客户端包是手写的 React.createElement,按原样放在 lib/ 中发布。
展开完整文档(README 剩余 1 节)
dsh-multi-tts
在 DeepSeek Harness 中朗读助手回复——选择你自己的 TTS 提供商和语音。
英文 | 中文
一个面向 DSH 的多提供商文本转语音插件:每条助手回复旁都有一个 🔊 按钮,输入框中有自动朗读开关,还有一个设置页面,让你选择提供商、语音、情感和语速。无需构建步骤——纯 ESM + 手写 React。
功能
- 🔊 逐条回复朗读——每条助手消息上都有一个按钮;再次点击即可停止。
- 🔇 自动朗读开关——位于输入框左侧槽位;新回复会自动朗读。
- ⚙️ 多提供商设置页面——提供商下拉菜单、语音下拉菜单、手动语音 ID、情感、语速、模型、基础 URL、API 密钥,以及一键测试按钮。
- 🧹 对 TTS 友好的文本清理——朗读前会去除代码块、行内代码、URL、文件路径、Markdown 强调标记和列表项目符号。
- 🔑 灵活的密钥解析——插件配置 → 环境变量 → $DSH_HOME/.env → .env 中的常见密钥名称。
- 📦 零构建——客户端包是手写的 React.createElement,按原样放在 lib/ 中发布。
提供商
| 提供商 | 端点 | 内置语音 | 情感 |
| minimax | MiniMax(海螺)/v1/t2a_v2 | 12 种中文语音(例如 female-shaonv、qiaopi_mengmei、lovely_girl) | ✅ |
| openai | 任何兼容 OpenAI 的 /audio/speech | 6 种语音(alloy、echo、fable、onyx、nova、shimmer) | — |
任何兼容 OpenAI 的端点都可以通过 openai 提供商使用——只需设置基础 URL(OpenAI、DashScope、SiliconFlow、本地服务器等)。
安装
dsh plugin --profile web add dsh-multi-tts
然后将该包添加到配置文件的 bundle 列表中(dsh plugin add 只会写入依赖——真正挂载插件的是 dsh.profile.bundles):
{
"dsh": {
"profile": {
"bundles": ["dsh-multi-tts"]
}
}
}
重启 DSH,然后打开 设置 → Multi TTS / 语音朗读。
配置
1. 打开插件的设置区域。
2. 选择一个提供商,然后选择一种语音(或粘贴任意语音 ID)。
3. 粘贴 API 密钥,或将密钥放入 $DSH_HOME/.env:
MINIMAX_API_KEY=sk-...
OPENAI_API_KEY=sk-...
4. 点击 🔊 测试朗读 / Test 进行验证。当密钥来自环境时,密钥状态标签会显示 (from env/.env)。
配置存储在 $DSH_HOME/multi-tts/config.json 中(可通过 stateDir 选项覆盖该目录)。
路由
宿主端在 DSH Web 服务器上注册了四个路由:
| 方法 | 路径 | 用途 |
| POST | /multi-tts/synthesize | { text, voice?, provider?, speed? } → 音频字节(字符数在 x-tts-chars 中) |
| GET | /multi-tts/status | 当前提供商 / 语音 / 密钥是否存在 |
| GET POST | /multi-tts/config | 读取 / 修补存储的配置 |
| GET | /multi-tts/voices | 当前提供商的语音列表 |
备注
- 对等依赖:@deepseek-ai/cordis ^4.0.1,由 DSH 宿主提供。
- 每次请求的文本上限为 4000 个字符。
- 需要 Node.js ≥ 22(使用全局 fetch)。
许可
MIT
中文说明
在 DeepSeek Harness 里把助手的回复念出来——服务商与音色都由你自己挑。
DSH 的多服务商语音朗读插件:每条回复旁有 🔊 朗读按钮,输入框有自动朗读开关,设置页里可选服务商、音色、情绪与语速。零构建,纯 ESM + 手写 React。
功能
- 🔊 每条回复旁朗读——点一下开口,再点一下停止。
- 🔇 自动朗读开关——输入框左侧,新回复自动念。
- ⚙️ 多服务商设置页——服务商下拉、音色下拉、手填音色 ID、情绪、语速、模型、Base URL、API Key,外加一键测试朗读。
- 🧹 朗读前文本清洗——代码块、行内代码、网址、文件路径、Markdown 强调与列表符号都不会念出来。
- 🔑 Key 多路兜底——插件配置 → 环境变量 → $DSH_HOME/.env → .env 常见键名。
- 📦 零构建——client 端是手写 React.createElement,直接以 lib/ 里的源文件形式分发。
服务商
| 服务商 | 接口 | 内置音色 | 情绪 |
| minimax | MiniMax(海螺)/v1/t2a_v2 | 12 个中文音色(female-shaonv 少女音、qiaopi_mengmei 俏皮萌妹、lovely_girl 萌萌女童……) | ✅ |
| openai | 任意 OpenAI 兼容 /audio/speech | 6 个音色(alloy、echo、fable、onyx、nova、shimmer) | — |
凡是 OpenAI 兼容的语音端点都能用 openai 这条通道接进来——改 Base URL 即可(OpenAI、DashScope、SiliconFlow、本地服务……)。
安装
dsh plugin --profile web add dsh-multi-tts
再把包名加进 profile 的 bundles 清单(dsh plugin add 只写依赖,bundles 才是挂载清单):
{
"dsh": {
"profile": {
"bundles": ["dsh-multi-tts"]
}
}
}
重启 DSH,打开设置 → 语音朗读。
配置
1. 打开插件设置页;
2. 选服务商、再选音色(也可直接手填音色 ID);
3. 粘贴 API Key,或写进 $DSH_HOME/.env:
MINIMAX_API_KEY=sk-...
OPENAI_API_KEY=sk-...
4. 点 🔊 测试朗读 验证。Key 来自环境变量时,状态会显示「(来自环境/.env)」。
配置存在 $DSH_HOME/multi-tts/config.json(可用 stateDir 选项改目录)。
路由
host 端在 DSH web 服务器上挂 4 条路由:
| 方法 | 路径 | 用途 |
| POST | /multi-tts/synthesize | { text, voice?, provider?, speed? } → 音频字节(字符数在 x-tts-chars) |
| GET | /multi-tts/status | 当前服务商 / 音色 / 是否已配 Key |
| GET POST | /multi-tts/config | 读 / 改配置 |
| GET | /multi-tts/voices | 当前服务商的音色表 |
说明
- peer 依赖:@deepseek-ai/cordis ^4.0.1,由 DSH 本体提供。
- 单次合成文本上限 4000 字符。
- 需要 Node.js ≥ 22(用到全局 fetch)。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
WYR-233/dsh-multi-tts
为每条助手回复添加朗读按钮并自动播报
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个插件,给…
★ 814已汉化DSH
68.8
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 385已汉化DSH
67.9
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1
这是你的仓库?认领条目