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 接入智能體工作流。

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

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

小夜