Commit a4c2c52dc38ae0ad5fc625091794975c8cc9a264

Authored by yibo
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>
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
... ...