Commit a4c2c52dc38ae0ad5fc625091794975c8cc9a264
1 parent
00e00326
feat(phoneuse): Hermes wechat-voice-sender skill + 语音发送指南
skills/wechat-voice-sender/SKILL.md: - when to use、核心工具调用示例、已知联系人 wxid 表 - 明确告知 Hermes:不要自己实现 edge-tts/silk-wasm,调工具即可 - 错误处理表、安全约束 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Showing
1 changed file
with
78 additions
and
0 deletions
phoneuse/hermes_skill_wechat_voice/SKILL.md
0 → 100644
| 1 | +--- | |
| 2 | +name: wechat-voice-sender | |
| 3 | +description: 通过 LSPosed 内部 API 发送微信语音消息(TTS 一键合成,无 UI 模拟) | |
| 4 | +version: 1.0 | |
| 5 | +category: communication | |
| 6 | +--- | |
| 7 | + | |
| 8 | +# WeChat 语音发送 | |
| 9 | + | |
| 10 | +## When to Use | |
| 11 | + | |
| 12 | +- 用户要求「发语音」、「发条语音」、「语音通知」等 | |
| 13 | +- 需要让消息听起来更有温度、更像真人说的 | |
| 14 | +- 发送语音摘要、日报、提醒(比文字更直观) | |
| 15 | +- 对方不便看屏幕时 | |
| 16 | + | |
| 17 | +文字消息用 `send_wechat_message`,语音消息用 `send_wechat_voice_tts`。 | |
| 18 | + | |
| 19 | +## 核心工具(直接调用,不要自己实现任何编解码) | |
| 20 | + | |
| 21 | +### `send_wechat_voice_tts` — 文字 → 语音,一步到位 | |
| 22 | + | |
| 23 | +```python | |
| 24 | +# 发语音给火星人 | |
| 25 | +result = mcp.call("send_wechat_voice_tts", { | |
| 26 | + "to": "yibooo", # 火星人的 wxid | |
| 27 | + "text": "你好,明天下午三点开会,记得准时。", | |
| 28 | + "voice": "zh-CN-XiaoxiaoNeural" # 可选,默认女声 | |
| 29 | +}) | |
| 30 | +# 返回: {"status": "sent", "duration_ms": 4200, ...} | |
| 31 | +``` | |
| 32 | + | |
| 33 | +**工具内部自动完成**:edge-tts → ffmpeg → SILK V3 编码 → WeChat hook 发送。 | |
| 34 | +**不要**自己调 edge-tts、ffmpeg、silk-wasm——那是工具的事,不是你的事。 | |
| 35 | + | |
| 36 | +### 可用声音 | |
| 37 | + | |
| 38 | +| voice 参数 | 风格 | | |
| 39 | +|---|---| | |
| 40 | +| `zh-CN-XiaoxiaoNeural`(默认)| 女声,自然亲切 | | |
| 41 | +| `zh-CN-YunxiNeural` | 男声,自然 | | |
| 42 | +| `zh-CN-YunyangNeural` | 男声,新闻播报风 | | |
| 43 | + | |
| 44 | +### 已知联系人 wxid | |
| 45 | + | |
| 46 | +| 名字 | wxid | | |
| 47 | +|---|---| | |
| 48 | +| 火星人 | `yibooo` | | |
| 49 | +| 文件传输助手(测试用)| `filehelper` | | |
| 50 | + | |
| 51 | +其他联系人用 `send_wechat_message` 的 `to` 字段(支持昵称模糊搜索),或先查 WeChat DB: | |
| 52 | + | |
| 53 | +```python | |
| 54 | +# 查 wxid | |
| 55 | +result = mcp.call("query_wechat_contacts", {"query": "联系人昵称"}) | |
| 56 | +``` | |
| 57 | + | |
| 58 | +## 技术说明(了解即可,不需要操心) | |
| 59 | + | |
| 60 | +- 走 LSPosed hook(wechathook 模块),调 WeChat 内部 `w11.r0` 工厂 | |
| 61 | +- DB INSERT 在 r0 构造器内完成,status=4(已送达),不触发 CDN 上传 | |
| 62 | +- 无 UI 模拟,不影响微信界面,不会被反自动化检测 | |
| 63 | +- 语音格式:SILK V3(Tencent 变体),存为 `.amr` | |
| 64 | + | |
| 65 | +## 错误处理 | |
| 66 | + | |
| 67 | +| status | 含义 | 处理 | | |
| 68 | +|---|---|---| | |
| 69 | +| `sent` | 成功 | 完成 | | |
| 70 | +| `error: WeChat not running` | 微信进程未启动 | 稍等重试,工具会自动尝试启动 | | |
| 71 | +| `error: edge-tts not installed` | 依赖缺失 | `pip install edge-tts` | | |
| 72 | +| `error: ffmpeg not found` | 依赖缺失 | `pkg install ffmpeg` | | |
| 73 | +| `error: silk-wasm not found` | 依赖缺失 | `npm install -g silk-wasm` | | |
| 74 | + | |
| 75 | +## 安全约束 | |
| 76 | + | |
| 77 | +- 不要对陌生联系人发送大量语音(有封号风险) | |
| 78 | +- 批量发送时每条间隔 ≥ 5s | ... | ... |