🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

实时语音朗读 YevheniiMiachyn/dsh-tts-live

DeepSeek Harness
YevheniiMiachyn41 天前有提交已提供中文文档扫描:含敏感能力

把智能体回复逐句合成语音并即时播放

29.8/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add YevheniiMiachyn/dsh-tts-live
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/27·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 41 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 53 处,展示前 35 条)
  • 发起网络请求
    lib/client.js:1446
    fetch('/dsh-tts/pcm-telemetry', {
  • 发起网络请求
    lib/client.js:1556
    fetch('/dsh-tts/pcm-telemetry', {
  • 发起网络请求
    lib/client.js:1765
    fetch('/dsh-tts/bargein', {
  • 发起网络请求
    lib/client.js:1896
    const st = await fetch('/dsh-tts/status', { cache: 'no-store' })
  • 发起网络请求
    lib/client.js:1944
    const res = await fetch('/dsh-tts/pending?after=' + encodeURIComponent(player.after || ''), { cache: 'no-store' })
  • 发起网络请求
    lib/client.js:2000
    fetch('/dsh-tts/speak', {
  • 读取本地文件
    lib/updater.js:92
    if (existsSync(manifestPath)) {
  • 读取本地文件
    lib/updater.js:94
    const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'))
  • 发起网络请求
    lib/updater.js:182
    const response = await fetch(`${registry.replace(/ $/, '')}/${encodeURIComponent(packageName)}/latest`, {
  • 读取本地文件
    lib/updater.js:196
    const value = JSON.parse(await readFile(manifestUrl, 'utf8'))
  • 执行外部命令来自配置/变量
    lib/updater.js:220
    const child = spawn(
  • 执行外部命令来自配置/变量
    lib/local.js:8
    const proc = spawn(bin, args, { stdio: ['pipe', 'pipe', 'pipe'] })
  • 读取本地文件
    lib/local.js:59
    const bytes = await readFile(outFile)
  • 删除本地文件递归
    lib/local.js:63
    await rm(dir, { recursive: true, force: true })
  • 读取本地文件
    lib/local.js:76
    const bytes = await readFile(outFile)
  • 删除本地文件递归
    lib/local.js:80
    await rm(dir, { recursive: true, force: true })
  • 读取本地文件
    lib/local.js:102
    const bytes = await readFile(outFile)
  • 删除本地文件递归
    lib/local.js:106
    await rm(dir, { recursive: true, force: true })
  • 执行外部命令来自配置/变量
    lib/engines/f5.js:5
    const proc = spawn(pythonBin, [daemonPath, '--ping'])
  • 发起网络请求
    lib/client-src/20-player.js:375
    fetch('/dsh-tts/pcm-telemetry', {
  • 发起网络请求
    lib/client-src/20-player.js:485
    fetch('/dsh-tts/pcm-telemetry', {
  • 发起网络请求
    lib/client-src/20-player.js:694
    fetch('/dsh-tts/bargein', {
  • 发起网络请求
    lib/client-src/20-player.js:825
    const st = await fetch('/dsh-tts/status', { cache: 'no-store' })
  • 发起网络请求
    lib/client-src/20-player.js:873
    const res = await fetch('/dsh-tts/pending?after=' + encodeURIComponent(player.after || ''), { cache: 'no-store' })
  • 发起网络请求
    lib/client-src/20-player.js:929
    fetch('/dsh-tts/speak', {
  • 发起网络请求
    lib/client-src/40-editors.js:85
    fetch('/dsh-tts/models/status')
  • 发起网络请求
    lib/client-src/40-editors.js:101
    fetch('/dsh-tts/models/delete', {
  • 发起网络请求
    lib/client-src/40-editors.js:405
    fetch('/dsh-tts/stats', { cache: 'no-store' }).then((r) => r.json()).then(setData).catch(() => {})
  • 发起网络请求
    lib/client-src/40-editors.js:409
    fetch('/dsh-tts/stats', { method: 'DELETE' }).then(loadStats).catch(() => {})
  • 发起网络请求
    lib/client-src/50-settings.js:69
    fetch('/dsh-tts/config', { cache: 'no-store' }).then((res) => res.json()).then((data) => {
  • 发起网络请求
    lib/client-src/50-settings.js:74
    fetch('/dsh-tts/integrations', { cache: 'no-store' }).then((res) => res.json()).then((data) => {
  • 发起网络请求
    lib/client-src/50-settings.js:80
    fetch('/dsh-tts/stats', { cache: 'no-store' }).then((res) => res.json()).then((st) => {
  • 发起网络请求
    lib/client-src/50-settings.js:91
    fetch('/dsh-tts/status', { cache: 'no-store' }).then((res) => res.json()).then((st) => {
  • 发起网络请求
    lib/client-src/50-settings.js:117
    const res = await fetch('/dsh-tts/credential', {
  • 发起网络请求
    lib/client-src/50-settings.js:131
    const res = await fetch('/dsh-tts/credential', {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/dsh-credentials@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-settings@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 逐句合成语音
  • 即时播放
  • 支持打断取消

为 DeepSeek Harness 提供实时句子级 TTS,支持提前朗读、有序流式输出、打断取消,并修复自定义 WAV 服务商问题。

README

由 DeepSeek 最新模型翻译生成
📦 @goodandready/dsh-tts DeepSeek Harness 多引擎语音合成:云端与系统离线引擎、流式音频、IT 术语词典与即时通讯集成 🇬🇧 English • 🇷🇺 Русский • 🇨🇳 中文说明 ⭐ 如果您喜欢这个插件,请在 GitHub 上为它点亮 Star — 这能让我知道插件对您有用,并鼓励我继续开发和维护它。 🐛 如果您发现 Bug 或希望增加功能,请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议,并在后续版本中实现有价值的改进。 ⚡ 插件概览 dsh-tts 为 DeepSeek Harness Web 界面提供高保真智能体回复语音朗读服务。开启 朗读智能体回复 后,每条生成的助手回复或实时流式片段均由服务端合成并即时推流至浏览器播放。 API 密钥绝不暴露给前端:音频合成全程在服务端通过多服务商独立备用链执行,包括系统离线引擎(Edge TTS、Piper、eSpeak)。Kokoro/F5 仅可下载权重,推理未捆绑。
展开完整文档(README 剩余 1 节)
📦 @goodandready/dsh-tts

DeepSeek Harness 多引擎语音合成:云端与系统离线引擎、流式音频、IT 术语词典与即时通讯集成

🇬🇧 English •
🇷🇺 Русский •
🇨🇳 中文说明

⭐ 如果您喜欢这个插件,请在 GitHub 上为它点亮 Star — 这能让我知道插件对您有用,并鼓励我继续开发和维护它。

🐛 如果您发现 Bug 或希望增加功能,请使用任意语言在 GitHub 上提交 Issue — 我会评估您的建议,并在后续版本中实现有价值的改进。

⚡ 插件概览

dsh-tts 为 DeepSeek Harness Web 界面提供高保真智能体回复语音朗读服务。开启 朗读智能体回复 后,每条生成的助手回复或实时流式片段均由服务端合成并即时推流至浏览器播放。

API 密钥绝不暴露给前端:音频合成全程在服务端通过多服务商独立备用链执行,包括系统离线引擎(Edge TTS、Piper、eSpeak)。Kokoro/F5 仅可下载权重,推理未捆绑。

graph LR
subgraph Input [助手回复文本]
Reply[💬 智能体生成文本] --> Scrub[智能过滤 & IT术语词典]
end

subgraph Stream [低延迟流式音频 SSE[SSE /dsh-tts/stream]
SSE --> Worklet[AudioWorklet PCM 处理器]
end

subgraph Cache [性能缓存层]
Scrub --> LRU{磁盘 LRU 缓存}
LRU -->|命中缓存| Play[即刻推流播放]
end

subgraph Fallback [TTS 引擎备用链]
LRU -->|未命中| Chain{生效备用链}
Chain -->|离线| P1[Edge TTS / Piper / eSpeak]
Chain -.->|云端| P2[OpenAI / ElevenLabs / Google / Azure / Groq] Chain -.->|免费云端| P3[EdgeTTS / SiliconFlow] Chain -.->|系统兜底| P4[本地 Piper / eSpeak NG] end

subgraph Output [输出与集成]
P1 --> Store[写入磁盘缓存]
P2 --> Store
P3 --> Store
P4 --> Store
Store --> Play
Store --> Msg[Telegram / Discord via dsh-messenger-gateway]
end

style Input fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4
style Stream fill:#181825,stroke:#89dceb,stroke-width:2px,color:#cdd6f4
style Cache fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4
style Fallback fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4
style Output fill:#181825,stroke:#f38ba8,stroke-width:2px,color:#cdd6f4

🚀 核心功能

1. 📴 离线系统引擎与诚实的神经引擎状态
* Edge TTS / Piper / eSpeak:可用的离线/系统合成,无需云 API Key。
* Kokoro-82M / F5-TTS:仅权重下载与状态展示。推理未捆绑在本包中,provider 会明确失败并继续 fallback。
* ModelManager 管理界面:在设置中手动安装模型,实时显示下载进度条、SHA-256 校验和一键删除。无任何静默或自动下载。

2. ⚡ 实时流式音频播放(延迟 [!IMPORTANT] 安装后请重启 Web UI(systemctl --user restart dsh-web)并刷新浏览器标签页。

设置界面覆盖

插件设置卡片(设置 → 插件 → 插件设置)展示全部用户向 schema 字段,并含 Advanced 区:maxChars、sentenceChars、timeoutMs、maxQueue、openaiBaseUrl、mimoBaseUrl、mimoFormat、minimaxBin。

API 密钥不写入插件设置,只在链编辑器粘贴,经 PUT /dsh-tts/credential 写入 DSH credential store。

⚙️ 配置示例(settings.yaml)

dsh-tts:
speakReplies: true
enableLocalEngines: true
kokoroEnabled: true
streamingEnabled: true
enableItDictionary: true
voiceDuplexEnabled: true
vadBargeIn: true
messengerTtsEnabled: true
cache: true
cacheMaxMb: 150
autoDetect: true
chain:
- provider: kokoro
- provider: edge
voice: zh-CN-XiaoxiaoNeural
- provider: openai
model: tts-1
voice: alloy
roles:
coder:
provider: openai
voice: onyx
reviewer:
provider: edge
voice: zh-CN-YunxiNeural

🤖 HTTP API 路由

* GET /dsh-tts/stream — 实时 SSE 音频流推送。
* POST /dsh-tts/speak — { text, voice?, model? } → 返回合成音频。
* POST /dsh-tts/preview — { provider, model, voice, text? } → UI 中试听语音。
* GET /dsh-tts/models/status — 查询 Kokoro/F5 权重下载状态(推理未捆绑)。
* POST /dsh-tts/models/install — { engine: 'kokoro' | 'f5' } → 启动模型下载。
* DELETE /dsh-tts/models/delete — { engine: 'kokoro' | 'f5' } → 删除本地模型。
* GET /dsh-tts/integrations — 查询关联插件状态(dsh-voice、dsh-messenger-gateway)。
* GET /dsh-tts/status — 返回引擎链状态、缓存统计与引擎就绪信息。

📄 开源协议

MIT © GooDAnDReaDY
预览分享卡片长什么样 ↓YevheniiMiachyn/dsh-tts-live
分享 · DeepSeek Harness Hub
YevheniiMiachyn/dsh-tts-live

把智能体回复逐句合成语音并即时播放

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部