# easyrobtweixin **Repository Path**: ooooinfo/easyrobtweixin ## Basic Information - **Project Name**: easyrobtweixin - **Description**: 自动截取微信聊天窗口,通过 OCR 识别文字,调用 DeepSeek / GLM-4 / Kimi 等大模型翻译为 16 种语言(支持语音朗读(edge-tts)、一键复制、SQLite 翻译缓存(相似文本直接命中)。开启自动回复后,AI 会联网搜索相关信息并生成回复,通过模拟键盘自动发送到微信(15秒冷却,不重复回复)。支持 Windows / macOS / Linux。 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信聊天悬浮翻译器 v10 (跨平台) 实时截取微信聊天窗口,OCR 识别文字,多语言翻译,AI 自动回复并发送。 支持 **Windows / macOS / Linux**。 ## 功能 - **实时翻译**:自动截取微信聊天区域,OCR 识别 → 翻译为多种语言 - **动态语言管理**:点击"语言+"添加语言(支持中/英/日/韩/法/德/西/俄/葡/意/泰/越/阿拉伯/印尼/荷兰/土耳其),点击 ✕ 删除 - **语音朗读**:每种语言独立朗读按钮(edge-tts) - **一键复制**:每种语言独立复制按钮 - **自动聊天**:AI 根据聊天内容自动生成回复并发送到微信 - 自动搜索相关信息(股票/地名/文学等话题会联网搜索) - 回复语言可选(自动/中文/英语/日语等) - 15秒冷却,不重复回复 - 记住已发送内容,不会回复自己的消息 - **模型切换**:支持 DeepSeek / GLM-4 / Kimi 三个模型 - **翻译缓存**:SQLite 存储所有翻译结果,相似文本(>85%)直接查库 - **跨平台**:Windows / macOS / Linux 全支持 ## 安装步骤 ### 1. Python 包(所有平台) ```bash pip install easyocr edge-tts Pillow pyperclip pygetwindow pyautogui pygame numpy ``` ### 2. 平台特定设置 **Windows:** - 无需额外系统依赖 - 微信桌面版窗口标题默认为 "微信" - macOS: - 首次运行 pyautogui 会请求辅助功能权限(系统偏好设置 → 安全性与隐私 → 辅助功能) **macOS:** - 首次运行会请求辅助功能权限(系统设置 → 隐私与安全性 → 辅助功能) - 微信桌面版窗口标题默认为 "WeChat" 或 "微信" **Linux:** ```bash sudo apt install -y python3-pip python3-tk # 推荐安装(pygetwindow 不可用时回退): sudo apt install xclip scrot xdotool ``` ### 3. API Key 配置 复制模板并填写: ```bash cp .env.example .env ``` 编辑 `.env` 填入 API Key: ``` DEEPSEEK_API_KEY=sk-你的key ZHIPU_API_KEY=xxx.xxx MOONSHOT_API_KEY=sk-xxx ``` 至少需要一个 Key(默认用 DeepSeek)。也可以使用 `~/.hermes/.env`(程序会优先读本地 `.env`)。 ### 4. GPU 加速(可选) EasyOCR 默认使用 GPU。如果有 NVIDIA 显卡: ```bash pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 ``` 没有 GPU 会自动降级到 CPU(速度较慢)。 ### 5. 代理(搜索功能需要) 自动回复的联网搜索功能需要代理,默认 `127.0.0.1:7890`。 如需修改,编辑 `app.py` 中 `web_search()` 函数的 `proxy` 配置。 ### 6. 运行 ```bash # 先打开微信,进入聊天窗口 python app.py ``` ## 打包 ### 单文件可执行 ```bash pip install pyinstaller pyinstaller --onefile --name wechat-translator app.py ``` 生成的可执行文件在 `dist/wechat-translator`(Windows: `dist/wechat-translator.exe`)。 > 注意:easyocr 的模型文件(~1.7GB)不会被自动打包。首次运行会自动下载到 `~/.EasyOCR/`。 ## 配置 ### 语言配置 语言列表保存在 `~/.local/share/wechat-translator/languages.json` 默认三种:中文、English、日本語 ### 翻译缓存 SQLite 数据库:`~/.local/share/wechat-translator/cache.db` ## 使用 1. 打开微信,进入聊天窗口 2. 运行 `python app.py` 3. 程序自动找到微信窗口,弹出悬浮翻译窗口 ## 窗口布局 ``` ┌─────────────────────────┐ │ 聊天翻译器 v10 [模型][语言+]│ ← 标题栏,可拖动 ├─────────────────────────┤ │ 中文 [复制][朗读][✕] │ │ ┌─────────────────────┐ │ │ │ 翻译结果... │ │ │ └─────────────────────┘ │ │ English [Copy][Speak][✕] │ │ ┌─────────────────────┐ │ │ │ Translation... │ │ │ └─────────────────────┘ │ │ ...更多语言... │ ├─────────────────────────┤ │ [自动回复:开] [语言按钮组] │ │ [生成回复] [复制][朗读] │ │ AI 回复建议 │ │ ┌─────────────────────┐ │ │ │ AI生成的回复... │ │ │ └─────────────────────┘ │ └─────────────────────────┘ ``` ## 工作流程 1. 每 3 秒截图微信聊天区域(PIL.ImageGrab / pyautogui) 2. 裁掉左侧联系人列表、顶部标题栏、底部输入框 3. EasyOCR 识别文字,过滤时间戳和 UI 元素 4. 检查是否为从未见过的新文本(跳过已发送的) 5. 调用 LLM 翻译为所有已添加语言 6. 结果存入 SQLite 缓存 7. 如果开启自动回复: - 搜索相关话题信息(DuckDuckGo) - LLM 结合搜索结果生成回复 - pyautogui 模拟键盘粘贴发送到微信 - 记录已发送内容,15秒冷却 ## 文件说明 ``` weixinchat/ ├── app.py # 主程序 (跨平台) ├── .env.example # API Key 模板 ├── .env # API Key 配置 ├── README.md # 本文档 └── data/ ├── cache.db # 翻译缓存 + 发送记录(SQLite) └── languages.json # 语言配置 运行时数据目录:~/.local/share/wechat-translator/ ``` ## 跨平台实现 | 功能 | Windows | macOS | Linux | |------|---------|-------|-------| | 截图 | PIL.ImageGrab | PIL.ImageGrab | PIL.ImageGrab (回退 scrot) | | 窗口查找 | pygetwindow | pygetwindow (回退 AppleScript) | pygetwindow (回退 xdotool) | | 剪贴板 | pyperclip | pyperclip | pyperclip (回退 xclip) | | 键盘操作 | pyautogui | pyautogui | pyautogui | | TTS 播放 | pygame / 系统播放器 | pygame / afplay | pygame / ffplay | ## 代理 搜索功能使用本地代理 `127.0.0.1:7890`,如需修改请编辑 `web_search()` 函数中的 `proxy` 配置。 ## 注意事项 - 需要微信窗口可见(不能最小化) - macOS 首次运行需授权辅助功能权限 - OCR 对中文/英文识别较好,其他语言可能不准 - 自动回复会操作鼠标键盘,回复期间不要手动操作 - 窗口默认置顶,可拖动标题栏移动位置