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

扬声器喊话 2102638035-svg/dsh-plugin-catgod-call

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

把文字合成语音并拉满音量喊你回来

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

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

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

状态速览

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

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
  • 执行外部命令固定命令
    lib/index.js:270
    const child = spawn('powershell.exe', args, { windowsHide: true })
  • 写入本地文件
    lib/index.js:404
    await mkdir(AUDIO_DIR, { recursive: true })
  • 写入本地文件
    lib/index.js:405
    await writeFile(
  • 删除本地文件
    lib/index.js:568
    await unlink(STATE_FILE).catch(() => {})
  • 删除本地文件
    lib/index.js:581
    await unlink(STATE_FILE).catch(() => {})
  • 删除本地文件
    lib/index.js:587
    if (recovered) await unlink(STATE_FILE).catch(() => {})
  • 读取本地文件
    lib/index.js:638
    if (!existsSync(STATE_FILE)) return null
  • 读取本地文件
    lib/index.js:639
    const raw = await readFile(STATE_FILE, 'utf8')
  • 删除本地文件
    lib/index.js:643
    await unlink(STATE_FILE).catch(() => {})
  • 删除本地文件
    lib/index.js:647
    await unlink(STATE_FILE).catch(() => {})
  • 写入本地文件
    lib/index.js:667
    await mkdir(AUDIO_DIR, { recursive: true })
  • 发起网络请求
    lib/index.js:693
    const res = await fetch(cfg.apiUrl, {
  • 写入本地文件
    lib/index.js:716
    await writeFile(outFile, buf)
  • 读取本地文件
    lib/index.js:751
    const buf = await readFile(outFile)
  • 删除本地文件
    lib/index.js:894
    try { await unlink(synthesized.file) } catch { }
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 文字合成语音
  • 音箱大声播放
  • 喊用户回来

DSH 插件:给 AI 一个喊话工具——合成语音,用音箱大声放出来,把用户叫回来

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-catgod-call 给 AI 一个「喊话」工具:把文字合成语音,用扬声器大声喊出来。 一个 DSH (DeepSeek Harness) 插件,让 AI 在需要你回来的时候真的把你叫过来。 它解决什么问题 AI 在对话里说「请回来看一下」——但你不在屏幕前,看不到。 这个插件给 AI 一个工具 catgod_call。当它觉得该叫你时,直接调用: 合成语音 → 音量拉满 → 叮咚 → 大声播放 → 音量还给你。 特性 - 双引擎:在线(硅基流动 CosyVoice2)/ 离线(Windows SAPI,零成本兜底) - 自动回退:在线失败自动切离线,保证一定喊出声 - 叫醒模式:叮咚提示音 + 强制音量 100% + 可循环重喊 - 音量三重保险:用完必定还回去,详见下文 - 零依赖:不需要 @deepseek-ai/dsh-tools,手写 defineTool 等价物 安装 1. 放置插件 把本目录放到任意位置,然后建链接到 profile 的 node_modules: mklink /J "%DSH_HOME%\profiles\<profile>\node_modules\dsh-plugin-catgod-call" "<本目录>" 2. 注册到 profile
展开完整文档(README 剩余 1 节)
dsh-plugin-catgod-call

给 AI 一个「喊话」工具:把文字合成语音,用扬声器大声喊出来。

一个 DSH (DeepSeek Harness) 插件,让 AI 在需要你回来的时候真的把你叫过来。

它解决什么问题

AI 在对话里说「请回来看一下」——但你不在屏幕前,看不到。

这个插件给 AI 一个工具 catgod_call。当它觉得该叫你时,直接调用: 合成语音 → 音量拉满 → 叮咚 → 大声播放 → 音量还给你。

特性

- 双引擎:在线(硅基流动 CosyVoice2)/ 离线(Windows SAPI,零成本兜底)
- 自动回退:在线失败自动切离线,保证一定喊出声
- 叫醒模式:叮咚提示音 + 强制音量 100% + 可循环重喊
- 音量三重保险:用完必定还回去,详见下文
- 零依赖:不需要 @deepseek-ai/dsh-tools,手写 defineTool 等价物

安装

1. 放置插件

把本目录放到任意位置,然后建链接到 profile 的 node_modules:

mklink /J "%DSH_HOME%\profiles\<profile>\node_modules\dsh-plugin-catgod-call" "<本目录>"

2. 注册到 profile

编辑 $DSH_HOME/profiles/<profile>/package.json:

{
"dependencies": {
"dsh-plugin-catgod-call": "link:<本目录绝对路径>" },
"dsh": {
"profile": {
"bundles": [
"dsh-plugin-catgod-call"
]
}
}
}

3. 配置密钥

推荐用环境变量,别把密钥写进文件:

$env:SILICONFLOW_API_KEY = "sk-..."
$env:CATGOD_TTS_PROXY = "http://127.0.0.1:7890" # 可选

也可以直接写在 cordis.patch.yml 的 apiKey / proxy 字段里。

4. 重启 DSH

插件改动必须重启才生效。

配置项

编辑 cordis.patch.yml:

| 配置 | 默认 | 说明 |
| engine | online | online = 在线合成;offline = 仅离线 SAPI |
| fallbackToOffline | true | 在线失败是否回退离线 |
| apiUrl | 硅基流动 | 兼容 OpenAI /v1/audio/speech 的服务 |
| apiKey | 空 | 留空则读 SILICONFLOW_API_KEY 环境变量 |
| model | FunAudioLLM/CosyVoice2-0.5B | 模型名 |
| voice | ...:alex | 音色,见下方说明 |
| proxy | 空 | HTTP 代理,留空直连 |
| speed | 1.1 | 语速 0.25 ~ 4.0 |
| sapiVoice | Microsoft Huihui Desktop | 离线音色 |
| sapiRate | 2 | SAPI 语速 -10 ~ 10 |
| wakeDingdong | true | 叫醒模式是否播叮咚 |
| forceMaxVolume | true | 播放前拉满音量,播完恢复 |
| repeatIntervalMs | 0 | 循环重喊间隔(毫秒),0 = 不循环 |
| repeatMax | 3 | 最多喊几次 |
| addressAs | 主人 | 默认称呼 |
| toolDescription | — | 给 AI 看的工具说明 |

音色怎么填

官方内置音色

格式:FunAudioLLM/CosyVoice2-0.5B:<name>

可用的 name:alex benjamin charles david anna bella claire diana

voice: "FunAudioLLM/CosyVoice2-0.5B:alex"

克隆音色

先上传参考音频,再查自己的音色列表:

curl -X POST https://api.siliconflow.cn/v1/audio/voice/list \
-H "Authorization: Bearer $SILICONFLOW_API_KEY"

返回的 uri 字段就是要填的值,格式为:

speech:<自定义名>:<音色ID>:<哈希>

⚠️ 这是三段结构,少一段会报 20047 Invalid voice。
这个 uri 与你的账号绑定,不要公开分享。

AI 能传的参数

| 参数 | 类型 | 说明 |
| text | string | 必填,要喊的话 |
| wake | boolean | 叫醒模式(叮咚 + 音量拉满 + 循环) |
| address | string | 开头称呼 |
| prefix_address | boolean | 是否自动加称呼 |
| engine | enum | default / online / offline |
| repeat_max | number | 最多播几次 |
| repeat_interval_ms | number | 间隔毫秒 |

音量安全:四重保险

播放前拉满音量,播放后必定恢复原值。 四层保障:

| 保险 | 机制 | 应对场景 |
| 一 | PowerShell try/finally | 播放中途崩溃 |
| 二 | Node 侧超时兜底 | PowerShell 进程被强杀 |
| 三 | 恢复后校验 + 补恢复 | PowerShell 说恢复了但值不对 |
| 四 | 看门狗(启动时 + 每次调用前) | 整个宿主被杀 |

状态文件机制

拉高音量之前把原音量写入状态文件:

%TEMP%\catgod-call-volume-state.json

- 恢复并校验成功后才删除
- 恢复失败时保留,留给下次补救
- 看门狗在插件启动时和每次喊话前都会检查它,发现残留立刻补还

早期版本有个 bug:无论恢复成功与否都删除状态文件,导致恢复失败后看门狗再也救不回来,音量永久卡在 100%。
现在只在确认恢复成功时才清除。

一个实现细节

Restore-Volume 函数内部整体 try/catch 且绝不外抛。
因为它在 finally 里调用,一旦抛出会覆盖真实错误、连结果输出都跳过, Node 侧将完全收不到诊断信息。

许可

MIT
预览分享卡片长什么样 ↓2102638035-svg/dsh-plugin-catgod-call
分享 · DeepSeek Harness Hub
2102638035-svg/dsh-plugin-catgod-call

把文字合成语音并拉满音量喊你回来

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