朗读转微信语音 epsilonH-eps/dsh-tts-bridge-wechatagent-bridge
DeepSeek Harness把 朗读桥dsh-tts-bridge念出来的声音,变成真正的微信语音条,发到当前微信聊天
36.3/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/31 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add epsilonH-eps/dsh-tts-bridge-wechatagent-bridge该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 4 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-tts-bridge-wechatagent-bridge(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 04:17:06
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
- 读取本地文件lib/index.js:46
if (!existsSync(accounts)) return '' - 读取本地文件lib/index.js:47
for (const name of readdirSync(accounts)) { - 读取本地文件lib/index.js:49
if (!existsSync(file)) continue - 读取本地文件lib/index.js:51
const data = JSON.parse(readFileSync(file, 'utf8').replace(/^ FEFF/, '')) - 读取本地文件lib/index.js:64
if (!existsSync(PYTHON)) { - 执行外部命令来自配置/变量lib/index.js:75
const child = spawn(PYTHON, args, { cwd: ROOT, windowsHide: true })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-tts-bridge-wechatagent-bridge
把朗读桥(dsh-tts-bridge)念出来的声音,变成真正的微信语音条,发到当前微信聊天。
不是文件卡片,也不是虚拟声卡 + 麦克风按住说话。
特性
- 朗读桥在 Edge / chat.deepseek.com 页面里念文字;
- WASAPI loopback 录下系统正在播放的声音;
- 朗读桥页面没出声时,自动用 edge-tts(zh-CN-XiaoxiaoNeural)兜底,仍然发原生语音条;
- 自动裁静音、转 24 kHz 单声道 PCM、编码成微信 SILK;
- 优先调用改过的 WeChatAgent hook /SendVoiceMsg;原版 hook 没有该路由时自动退回 Frida send_message;
- 发送后用 WeChatAgent reader 数据库确认新的 localType=34 语音消息;
- 作为 DSH 工具 wechat_voice_send 暴露给微信里的智能体,它可以自己决定什么时候用语音。
展开完整文档(README 剩余 1 节)
dsh-tts-bridge-wechatagent-bridge
把朗读桥(dsh-tts-bridge)念出来的声音,变成真正的微信语音条,发到当前微信聊天。
不是文件卡片,也不是虚拟声卡 + 麦克风按住说话。
特性
- 朗读桥在 Edge / chat.deepseek.com 页面里念文字;
- WASAPI loopback 录下系统正在播放的声音;
- 朗读桥页面没出声时,自动用 edge-tts(zh-CN-XiaoxiaoNeural)兜底,仍然发原生语音条;
- 自动裁静音、转 24 kHz 单声道 PCM、编码成微信 SILK;
- 优先调用改过的 WeChatAgent hook /SendVoiceMsg;原版 hook 没有该路由时自动退回 Frida send_message;
- 发送后用 WeChatAgent reader 数据库确认新的 localType=34 语音消息;
- 作为 DSH 工具 wechat_voice_send 暴露给微信里的智能体,它可以自己决定什么时候用语音。
链路
WeChatAgent 微信会话 → DSH 工具 wechat_voice_send(text) → 朗读桥 /say → Edge chat.deepseek.com 朗读 → WASAPI loopback 录音 → 没出声时:edge-tts 兜底 → 裁剪 + 24k PCM + SILK → WeChatAgent hook /SendVoiceMsg (可选) └─ 没有该路由时:Frida send_message → 微信原生语音条 → reader 数据库确认 localType=34
环境要求
- Windows 10/11 x64
- 匹配版微信 4.1.10.27(WeChatAgent 的 hook 版本锁)
- 已安装并登录 DSH / WeChatAgent
- Edge 里的 https://chat.deepseek.com 页面开着并登录(优先用朗读桥的声音);朗读桥不出声时 edge-tts 兜底,需要能访问 Microsoft 语音服务
- Python 3.10+(推荐 3.12)
- 可选:Visual Studio C++ Build Tools(只在你要自己编译 native hook 时需要)
安装
1. 放到任意目录
例如:
D:\dsh-mod\dsh-tts-bridge-wechatagent-bridge
2. 建 Python 环境
powershell -NoProfile -ExecutionPolicy Bypass -File .\setup.ps1
如果 python 不在 PATH:
.\setup.ps1 -Python "C:\Path\To\python.exe"
会生成 .venv 并安装 requirements.txt。
3. 装进 DSH profile
dsh plugin --profile desktop add "link:D:\dsh-mod\dsh-tts-bridge-wechatagent-bridge"
如果 dsh.profile.bundles 里没有 dsh-tts-bridge-wechatagent-bridge,手动加在数组末尾:
"dsh-tts-bridge-wechatagent-bridge"
然后完全退出 DSH 再打开(托盘退出,不是关窗口),让工具重新注册。
4. 给微信会话开工具权限
在 WeChatAgent\data\workspace\config\wechatagent.json 的目标聊天里,把工具名加进 dshAccess.chats["wechat:private:<id>"].tools:
"tools": [
"...",
"wechat_voice_send"
]
state/bridge-config.json 里的 platforms.wechat.dshAccess 同步加一份。
5. 让智能体知道它可以用
工具描述已经写成「想用声音时就可以主动调用」,不需要用户每次说「发语音」。重启 DSH 后生效。
用法
智能体调用
微信里正常聊天即可;适合短句、情绪、晚安/安抚/撒娇/提醒时它会自己用语音。也可以明确说:
用朗读桥发一条语音,内容是:今天辛苦了,早点休息。
工具参数:
{
"text": "要念的文字", "maxSeconds": 35 }
命令行
$d = "D:\dsh-mod\dsh-tts-bridge-wechatagent-bridge"
& "$d\.venv\Scripts\python.exe" "$d\lib\bridge.py"
--text "你好,这是朗读桥发来的语音。"
--chat "wechat:private:128560812"
--wechat-root "D:\WeChatAgent\data\workspace"
--mode auto
--mode:
- auto:有 /SendVoiceMsg 就先走 hook,否则 Frida;
- hook:强制 hook,路由不存在就报错;
- frida:强制 Frida。
成功返回:
{
"ok": true,
"engine": "WeChatAgent hook /SendVoiceMsg",
"confirmed": true,
"messageId": "51",
"durationMs": 2400
}
可选:把语音路由加进 hook 副本
仓库里的 native/ 是一份复制出来再改的 hook,不碰现有 WeChatAgent 的 state\hook。
native/
hook-copy/
WeChat-Hook/ 上游源码副本 native-hook/ WeChatAgent 定制路由 + voice_sender.cpp/h prebuilt/version.dll 预编译的改版 hook(4.1.10.27) build-voice-hook.ps1 从源码重新编译
预编译版: native/prebuilt/version.dll
sha256 = dac3a4f442ba0de16996304e2ab6358de9437ab6ec45c721dfcd96c66207c691
它包含:
- 原有文本、文件、表情路由;
- 新增 POST /SendVoiceMsg;
- /WeChatAgent/health 多一个 "nativeVoiceSend": true。
安装改版 hook(可选)
只在匹配版 4.1.10.27 客户端上做,先备份:
$dir = "D:\WeChatAgent\data\workspace\state\hook\wechat-4.1.10.27"
Copy-Item "$dir\version.dll" "$dir\version.dll.original" -Force
Copy-Item ".\native\prebuilt\version.dll" "$dir\version.dll" -Force
Start-Process "$dir\Weixin.exe" -ArgumentList "StartPort=30001" -WorkingDirectory $dir
验证:
$token = (Get-Content "$dir\wechatagent-hook.token" -Raw).Trim()
Invoke-RestMethod "http://127.0.0.1:30001/WeChatAgent/health"
-Headers @{ Authorization = "Bearer $token" }
看到 nativeVoiceSend: true 即生效。
WeChatAgent 的 launch-hook-wechat.ps1 会用 state\hook\native\version.dll 和 build.json 做哈希校验。要把改版 hook 纳入它的启动流程,需要同时替换这两个文件并更新 build.json 的 sha256/voiceRoute。
自己编译
powershell -NoProfile -ExecutionPolicy Bypass -File .\native\build-voice-hook.ps1
需要 MSVC + Windows SDK;默认用 vswhere 找 MSBuild,也可传 -MsBuild <path>。
配置
- WECHATAGENT_ROOT:WeChatAgent 数据目录,默认 D:\WeChatAgent\data\workspace;
- --chat:wechat:private:<id> 或 wechat:group:<id>;
- 语音编码器:bin/silk_v3_encoder.exe(SILK v3,-tencent)。
安全与边界
- 优先用朗读桥;页面没开、没登录或点了朗读不出声时自动 edge-tts 兜底,两者都失败才报错;
- edge-tts 兜底需要网络;声音是 zh-CN-XiaoxiaoNeural,不是 DeepSeek 网页端的声音;
- 单条语音建议 1~200 字,工具层限制 500 字;
- 依赖 Weixin.dll 4.1.10.27 的偏移(send_message、语音 vtable、参数构造);微信升级后需要重新核对;
- Frida 会注入微信进程;只建议在本机使用;
- 改版 hook 会替换客户端 version.dll,务必先备份;
- 不要把 wechatagent-hook.token、账号数据、聊天记录提交进仓库。
常见问题
Q:DSH 里没有 wechat_voice_send?
检查:
1. desktop profile 的 dsh.profile.bundles 是否有本包;
2. 是否完全退出并重开 DSH;
3. WeChatAgent 的 dshAccess 是否加了工具名。
Q:报 schema type: null?
本仓库的 lib/index.js 已使用完整 JSON Schema(type: "object" + required),不会再走简化参数表。
Q:/SendVoiceMsg 返回 409?
通常是微信没登录、账号不唯一,或 nativeVoiceSend 不为 true。
Q:返回“当前微信进程没有 /SendVoiceMsg 路由”?
说明加载的还是原版 hook:确认替换后重启了微信,并且 health.nativeVoiceSend 为 true。
Q:WeChatAgent 启动时报 Native build hash/version mismatch?
state\hook\native\version.dll 与 build.json.sha256 不一致。恢复原版 DLL/原 build.json,或把两者一起更新为改版并同步 sha256。
目录
lib/
index.js DSH 工具注册 bridge.py 朗读桥录音、SILK、目标解析、发送、回执 send_voice.py Frida 原生语音发送(fallback) bin/ silk_v3_encoder.exe native/ hook-copy/ hook 源码副本 prebuilt/ 改版 version.dll + sha256 build-voice-hook.ps1 cordis.patch.yml package.json requirements.txt setup.ps1
许可
本项目代码 MIT。第三方组件见 THIRD_PARTY_NOTICES.md。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
epsilonH-eps/dsh-tts-bridge-wechatagent-bridge
把 朗读桥dsh-tts-bridge念出来的声音,变成真正的微信语音条,发到当前微信聊天
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7