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

QQ 多媒体发送 Dnsthandsome/dsh-qq-media

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

让 QQ 机器人发送语音、图片、视频和文件

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · platform
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 20 处,展示前 15 条)
  • 读取本地文件
    index.js:57
    if (!existsSync(文件)) return {};
  • 读取本地文件
    index.js:59
    return JSON.parse(readFileSync(文件, 'utf8').replace(/^ FEFF/, ''));
  • 读取本地文件
    index.js:78
    if (existsSync(文件)) 磁盘 = JSON.parse(readFileSync(文件, 'utf8').replace(/^ FEFF/, ''));
  • 读取本地文件
    index.js:78
    if (existsSync(文件)) 磁盘 = JSON.parse(readFileSync(文件, 'utf8').replace(/^ FEFF/, ''));
  • 发起网络请求
    index.js:87
    const 响应 = await fetch(`${baseUrl}/${动作}`, {
  • 读取本地文件
    index.js:130
    if (!existsSync(规整)) throw new Error(`文件不存在:${规整}`);
  • 读取本地文件
    index.js:136
    const 头 = readFileSync(文件);
  • 写入本地文件
    index.js:174
    mkdirSync(dirname(输出路径), { recursive: true });
  • 写入本地文件
    index.js:175
    writeFileSync(输出路径, Buffer.concat([头, pcm]));
  • 执行外部命令固定命令
    index.js:194
    const 子 = spawn('powershell.exe', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', 脚本], {
  • 执行外部命令来自配置/变量
    index.js:230
    const 子 = spawn(c.python, 参数, {
  • 发起网络请求
    index.js:260
    const r = await fetch(`${apiUrl}/health`, { signal: AbortSignal.timeout(毫秒) });
  • 写入本地文件
    index.js:285
    mkdirSync(dirname(日志), { recursive: true });
  • 执行外部命令来自配置/变量
    index.js:286
    const 子 = spawn(c.python, ['-m', 'breeze_infer.api', c.modelDir, '--host', '127.0.0.1', '--port', String(端口)], {
  • 发起网络请求
    index.js:307
    const r = await fetch(`${c.apiUrl}/v1/audio/speech`, {
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-qq-media 给 DeepSeek Harness 的 QQ 机器人(dsh-qq-moony)补上语音 / 图片 / 视频 / 文件出口。 dsh-qq-moony 本身只能发文字和表情包。这个插件给它加了 5 个工具,让它真的能「发一条语音过来」「把这张图发我」「这段视频发你」。 功能 | 工具 | 作用 | | qq_send_voice | 合成语音条并发送(默认微软晓伊少女音,1~2 秒出结果) | | qq_send_image | 发图片,本机路径或网络 URL 都行(走 QQ 图片消息,不是文字链接) | | qq_send_video | 发视频文件 | | qq_send_file | 发任意文件(可自定义显示名) | | qq_media_check | 自检:OneBot 通不通、登录哪个号、TTS 各引擎可用不可用 | 另有一个版本探针路由 GET /api/qq-media/ping,返回当前宿主里跑的版本号 —— 改完插件代码想确认有没有真的重载,打这个接口就行。 语音引擎 三种,按优先级自动降级: | 引擎 | 说明 | | edge(默认) | 微软在线语音(edge-tts)。免费、无 key、1~2 秒出结果,不占显卡。
展开完整文档(README 剩余 1 节)
dsh-qq-media

给 DeepSeek Harness 的 QQ 机器人(dsh-qq-moony)补上语音 / 图片 / 视频 / 文件出口。

dsh-qq-moony 本身只能发文字和表情包。这个插件给它加了 5 个工具,让它真的能「发一条语音过来」「把这张图发我」「这段视频发你」。

功能

| 工具 | 作用 |
| qq_send_voice | 合成语音条并发送(默认微软晓伊少女音,1~2 秒出结果) |
| qq_send_image | 发图片,本机路径或网络 URL 都行(走 QQ 图片消息,不是文字链接) |
| qq_send_video | 发视频文件 |
| qq_send_file | 发任意文件(可自定义显示名) |
| qq_media_check | 自检:OneBot 通不通、登录哪个号、TTS 各引擎可用不可用 |

另有一个版本探针路由 GET /api/qq-media/ping,返回当前宿主里跑的版本号 —— 改完插件代码想确认有没有真的重载,打这个接口就行。

语音引擎

三种,按优先级自动降级:

| 引擎 | 说明 |
| edge(默认) | 微软在线语音(edge-tts)。免费、无 key、1~2 秒出结果,不占显卡。音色可换、音调语速可调 |
| breeze | 本机跑 Breeze TTS 2,用自然语言描述音色("一个二十出头的女生,声音偏软偏轻……"),效果接近真人。但很慢 —— 8GB 显卡上一条 5 秒音频要一两分钟,不适合聊天 |
| sapi | Windows 自带 System.Speech。难听但一定在,只作兜底 |

默认只走 edge,失败就报错,不会偷偷换成难听的 SAPI。 想允许降级到 SAPI,在配置里加 "allowSapiFallback": true。

edge-tts 偶尔会抽风(403 / 空音频),插件内置 3 次重试(间隔 400/1200ms)。另外发语音前会自动清洗文本:emoji、*_#>、控制符全去掉 —— 这些东西会让 edge-tts 整句哑掉。

内置音色

zh-CN-XiaoyiNeural 晓伊,少女,活泼 zh-CN-XiaoxiaoNeural 晓晓,温柔 zh-CN-shaanxi-XiaoniNeural 晓妮,明亮(陕西口音) zh-CN-liaoning-XiaobeiNeural 晓北(东北口音)

音调 pitch 用 +18Hz 这种写法(不写正负号插件会自动补 +),语速 rate 用 +3% / -5%。

安装

尚未发布到 npm,直接从 GitHub 装。

dsh plugin --profile desktop add github:Dnsthandsome/dsh-qq-media

或者本地打包:

git clone https://github.com/Dnsthandsome/dsh-qq-media.git
cd dsh-qq-media
pnpm pack --pack-destination dist-pkgs
dsh plugin --profile desktop add dist-pkgs/dsh-qq-media-0.2.2.tgz

前置条件

1. 装了 dsh-qq-moony,并且它的 config.json 里配好了 baseUrl 和 token(本插件复用这份连接配置,不单独存凭据)
2. Python 环境装了 edge-tts(默认引擎要用):

pip install edge-tts

然后在 qq-media/config.json 里把 python 指向那个环境的解释器。

本插件不会自动装 Python,也不会自己找解释器 —— 路径必须给。Windows 上建议用独立 venv,避免污染全局。

3. (可选)想用 breeze 引擎,需要额外部署 Breeze TTS 2,并在配置里填 serverDir / modelDir / apiUrl。不配也能用,qq_media_check 会报「没在跑」。

配置

<DSH_HOME>/qq-media/config.json(每次调用都现读磁盘,改完立即生效,不用重启):

{
"engine": "edge",
"edgeVoice": "zh-CN-XiaoyiNeural",
"edgePitch": "+18Hz",
"edgeRate": "+3%",
"python": "D:\\edge-tts\\.venv\\Scripts\\python.exe",
"allowSapiFallback": false,

"breezeEngine": "breeze",
"apiUrl": "http://127.0.0.1:7861",
"instruction": "一个二十出头的女生,声音偏软偏轻,说话慢一点,语气亲近,像私下里聊天。", "cfgScale": 2, "serverDir": "D:\\breeze-tts\\src\\breezeblue-ai-breeze-tts-6eba901", "modelDir": "D:\\breeze-tts\\models\\Breeze-TTS-2", "autoStart": false }

连接配置从 <DSH_HOME>/qq-moony/config.json 读 baseUrl(默认 http://127.0.0.1:3000)和 token。

工具参数

qq_send_voice
to 必填,QQ 号;发群写 "group:群号" text 必填,要念的话(纯口语,别带 Markdown) voice 可选,音色 id pitch 可选,如 "+18Hz" rate 可选,如 "+3%" engine 可选,edge | breeze | sapi

qq_send_image to, source(本地路径或 http(s) 链接) qq_send_video to, path qq_send_file to, path, name(可选显示名) qq_media_check 无参数

to 的写法很宽松:1245661522、group:123456、群 123456 都认。

HTTP 接口

| 方法 | 路径 | 说明 |
| GET | /api/qq-media/ping | 版本探针:{version, engine, edgeVoice, pid} |

踩过的坑(写在代码里了)

- edge-tts 对 emoji 会整句哑掉 → 发之前先 清洗文本()
- edge-tts 偶尔 403/空音频 → 3 次重试,别一次失败就降级
- SAPI 太难看 → 默认不降级,宁可报错让它重说一遍
- 宿主不重载插件代码 → 改完要 dsh plugin remove 再 add,或者重启宿主;/api/qq-media/ping 的版本号就是用来验证这个的
- PowerShell Set-Content 会把中文 JSON 写坏(UTF-8 读成 GBK)→ 改配置请用编辑器或 node 脚本

配套

- dsh-qq-moony —— 机器人本体(OneBot / NapCat)
- dsh-qq-persona —— 人格切换(切换时按预设改写本插件的音色配置)
- dsh-qq-memory —— 记忆管理面板

License

MIT
预览分享卡片长什么样 ↓Dnsthandsome/dsh-qq-media
分享 · DeepSeek Harness Hub
Dnsthandsome/dsh-qq-media

让 QQ 机器人发送语音、图片、视频和文件

这是你的仓库?认领条目

回到顶部