dsh-tts-bridge-wechatagent-bridge:把朗读桥的声音变成微信原生语音条

前言

在 DSH 与 WeChatAgent 里做微信智能体时,常见做法是发文字、文件卡片,或靠虚拟声卡加麦克风模拟「按住说话」。这些方式要么不像真人发语音,要么链路复杂。朗读桥(dsh-tts-bridge)可以在 Edge 的 chat.deepseek.com 页面里念文字,但念出来的声音默认还在浏览器里,不会自动变成微信聊天窗口里的语音条。

dsh-tts-bridge-wechatagent-bridge 由社区维护者 epsilonH-eps 发布,分类为工作流。它把朗读桥(或兜底 TTS)产生的声音录下来,编码成微信使用的 SILK,并通过 WeChatAgent 发到当前会话,结果是真正的微信语音消息,不是文件卡片,也不是虚拟声卡方案。

这是什么

插件全名对应仓库 epsilonH-eps/dsh-tts-bridge-wechatagent-bridge(GitHub 上约 5 stars)。一句话定位:把 朗读桥(dsh-tts-bridge)念出来的声音,变成真正的微信语音条,发到当前微信聊天。

维护者:epsilonH-eps。许可:MIT(package.json 版本 0.1.0)。运行环境要求 Windows 10/11 x64,匹配版微信 4.1.10.27(WeChatAgent hook 版本锁),Python 3.10+(推荐 3.12),Node.js >= 22,DSH >= 0.2.0-rc.2。

核心功能

下面介绍 README 里已写明的链路,便于对照实现。

整体流程:

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

能力要点(均来自官方 README):

  • 朗读桥在 Edge / chat.deepseek.com 页面里念文字;WASAPI loopback 录制系统正在播放的声音。
  • 若朗读桥页面没出声,自动用 edge-tts(zh-CN-XiaoxiaoNeural)兜底,仍发原生语音条。
  • 自动裁静音、转 24 kHz 单声道 PCM、编码成微信 SILK(bin/silk_v3_encoder.exe,SILK v3,-tencent)。
  • 优先调用改过的 WeChatAgent hook POST /SendVoiceMsg;原版 hook 没有该路由时自动退回 Frida send_message。
  • 发送后用 WeChatAgent reader 数据库确认新的 localType=34 语音消息。
  • 作为 DSH 工具 wechat_voice_send 暴露给微信里的智能体,由智能体决定何时用语音。

安装与启用

安装前请在本机核对仓库源码与 MIT 许可证;插件以当前 DSH 进程权限运行,涉及 Frida 注入与可选替换 version.dll,仅建议在本机自用。

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 / WeChatAgent。
  • Edge 里 https://chat.deepseek.com 页面开着并登录(优先用朗读桥声音);朗读桥不出声时 edge-tts 兜底,需能访问 Microsoft 语音服务。

工具描述已说明智能体可在合适时主动调用,无需用户每次说「发语音」。重启 DSH 后生效。

典型用法

智能体调用

微信里正常聊天即可;短句、情绪、提醒等场景下智能体可自行选用语音。也可明确说明,例如:

用朗读桥发一条语音,内容是:今天辛苦了,早点休息。

工具参数:

{
  "text": "要念的文字",
  "maxSeconds": 35
}

单条语音建议 1~200 字,工具层限制 500 字。

命令行

$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
}

常用配置项:WECHATAGENT_ROOT(默认 D:\WeChatAgent\data\workspace)、--chat(wechat:private:<id> 或 wechat:group:<id>)。

可选:改版 hook 与 /SendVoiceMsg

原版 WeChatAgent hook 可能没有语音路由。仓库 native/prebuilt/version.dll 为预编译改版 hook(微信 4.1.10.27),新增 POST /SendVoiceMsg;/WeChatAgent/health 会多 "nativeVoiceSend": true。安装前需备份原 version.dll,且 WeChatAgent 启动脚本可能对 state\hook\native\version.dll 与 build.json 做哈希校验——细节见 README「可选:把语音路由加进 hook 副本」一节。不替换 hook 时,插件仍可走 Frida 回退。

适用场景与注意

适合谁:已在 Windows 上使用 DSH + WeChatAgent,并希望智能体在微信里发原生语音条而非纯文字或文件卡片的开发者。

边界与安全(README 原文要点):

  • 优先朗读桥;页面未开、未登录或不出声时用 edge-tts 兜底,兜底声音为 zh-CN-XiaoxiaoNeural,不是 DeepSeek 网页端音色;两者都失败才报错。
  • 依赖 Weixin.dll 4.1.10.27 偏移;微信升级后需重新核对。
  • Frida 会注入微信进程;改版 hook 会替换客户端 version.dll,务必先备份。
  • 勿将 wechatagent-hook.token、账号数据、聊天记录提交进仓库。

若 DSH 中看不到 wechat_voice_send,按 README 检查 dsh.profile.bundles、是否完全重启 DSH、以及 dshAccess 是否包含工具名。

DeepSeek Harness 的生态理念是「一切皆插件」;社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

延伸阅读

  • 插件目录页:https://www.skillhub.cn/plugins/epsilonH-eps/dsh-tts-bridge-wechatagent-bridge
  • 源码与完整说明:https://github.com/epsilonH-eps/dsh-tts-bridge-wechatagent-bridge

经过上面的步骤,朗读桥产生的声音可以稳定落到微信会话里的原生语音消息,并由 wechat_voice_send 接入智能体工作流。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜