VI-Translate:轻量级视觉翻译引擎,让截图与图片即时变成可编辑文本

> VI-Translate 是一个基于 Python 的视觉翻译工具,将 OCR 识别与机器翻译无缝结合,实现截图即译、图片即译的轻量级工作流。 ## 一、项目定位与痛点 在全球化协作、跨语言学习、海外内容消费日益频繁的今天,我们经常遇到这样的场景: - 阅读一篇英文论文截图,需要逐段复制到翻译软件,来回切换窗口,效率极低。 - 遇到一张包含多语言文字的图片(如产品说明书、漫画、海报),无法直接复制文字,只能手动输入或依赖手机拍照翻译。 - 已有 OCR 工具(如 Tesseract、百度 OCR)和翻译 API(如 Google Translate、DeepL)各自独立,缺乏一个开箱即用的整合层。 - 在线翻译工具需要上传图片,存在隐私泄露风险,且响应速度受网络影响。 VI-Translate 正是为了解决这些痛点而生的开源项目。它提供了一个简洁的 Python 命令行工具,能够从图片或屏幕截图中提取文字,自动检测源语言,翻译成目标语言,并直接输出到终端或剪贴板。整个过程完全本地控制(除翻译 API 调用外),无需切换应用,无需手动复制粘贴。 ## 二、快速上手与核心用法 ### 1. 安装 项目依赖 Python 3.8+,推荐使用 `pip` 安装: bash # 克隆仓库 git clone https://github.com/breslee1707/VI-Translate.git cd VI-Translate # 安装依赖(建议使用虚拟环境) python -m venv venv source venv/bin/activate # Windows 下使用 venv\Scripts\activate pip install -r requirements.txt ### 2. 基本使用 **翻译本地图片:** bash python vi_translate.py --image /path/to/image.png --target zh **翻译屏幕截图(需要额外安装截图库):** bash python vi_translate.py --screenshot --target en **输出到剪贴板:** bash python vi_translate.py --image image.jpg --target ja --clipboard ### 3. 代码示例(作为库调用) python from vi_translate import translate_image result = translate_image( image_path="screenshot.png", source_lang="auto", # 自动检测 target_lang="zh", engine="google" # 可选:google, deepl, baidu, offline ) print(result.text) print(result.detected_lang) ### 4. 配置翻译引擎 在 `config.ini` 或环境变量中设置 API 密钥: ini [google] api_key = YOUR_KEY [deepl] auth_key = YOUR_AUTH_KEY 如果不配置密钥,默认使用 Google Translate 的免费端点(非官方),但建议为生产环境配置官方 API 以保证稳定。 ## 三、核心亮点与技术解析 ### 1. 模块化架构,可插拔引擎 VI-Translate 将 OCR 和翻译解耦为独立模块。OCR 层默认采用 PaddleOCR(支持 80+ 语言),翻译层支持 Google、DeepL、百度、以及离线模型(如 argos-translate)。用户可以通过命令行参数或配置文件自由组合,例如: bash python vi_translate.py --image test.png --ocr paddle --translate deepl 这种设计使得项目极易扩展——如果你想接入自己的 OCR 或翻译服务,只需实现对应的抽象基类。 ### 2. 智能语言检测与自动选择 项目内置了语言检测模块(基于 fastText 或 lingua),在 OCR 识别后自动判断源语言,无需用户手动指定。同时,如果目标语言与源语言相同,会直接跳过翻译步骤,节省 API 调用。 ### 3. 低依赖,轻量部署 整个项目核心代码不到 1000 行,依赖库仅 5-6 个(PaddleOCR、requests、Pillow、click 等)。相比一些重量级 GUI 翻译工具,VI-Translate 可以轻松集成到自动化脚本、服务端流程或终端工作流中。 ### 4. 支持多种输入方式 - 本地图片文件(PNG、JPG、BMP、TIFF) - 屏幕截图(通过 `mss` 或 `pyautogui`) - 剪贴板图像(Windows/macOS 下从剪贴板直接粘贴) - 批量处理:可传入文件夹路径,自动遍历所有图片 ### 5. 结果格式化输出 翻译结果支持多种输出格式:纯文本、JSON(便于程序解析)、带坐标的标注(可输出识别文字的包围盒,方便后续可视化)。 ## 四、适用场景 1. **学术研究**:快速翻译论文图表、扫描页、PDF 截图,无需来回切换。 2. **跨境电商**:处理商品图片、买家秀截图,快速了解海外用户反馈。 3. **游戏本地化**:翻译游戏截图、UI 界面,辅助汉化组工作。 4. **日常办公**:翻译会议白板照片、名片、菜单、路牌等。 5. **自动化管道**:将 VI-Translate 作为子模块嵌入爬虫或文档处理系统,实现图片文字自动翻译入库。 6. **个人学习**:阅读外语漫画、手写笔记(OCR 支持手写体,准确率视语言而定)。 ## 五、同类项目对比 | 项目 | 定位 | 优点 | 缺点 | |------|------|------|------| | **VI-Translate** | 轻量级 CLI 视觉翻译 | 模块化、可编程、支持多种 OCR/翻译引擎、无 GUI 依赖 | 需要命令行基础,无图形界面 | | **Umi-OCR** | 桌面 OCR 工具 | 图形界面友好,支持批量,离线识别 | 翻译功能需额外配置,不内置翻译引擎 | | **Capture2Text** | Windows 截图 OCR | 快捷键操作,小巧 | 仅支持 Windows,翻译质量依赖外部 API | | **Google Lens** | 手机端视觉翻译 | 识别准确,实时 AR 翻译 | 闭源,无法集成到本地工作流,需联网 | | **Tesseract + translate-shell** | 手动组合 | 完全免费,可定制 | 需要自行组装,OCR 准确率一般,步骤繁琐 | **VI-Translate 的独特优势**在于: - **可脚本化**:作为 Python 库或 CLI 工具,可以轻松嵌入任何自动化流程。 - **引擎可替换**:不像某些工具绑定单一云服务,你可以根据成本、隐私、语言支持灵活切换。 - **轻量无 GUI**:适合服务器环境、树莓派等资源受限设备。 ## 六、局限与改进空间 - **OCR 准确率依赖 PaddleOCR 模型**:对于复杂背景、艺术字体或低分辨率图片,可能产生误识别,建议预处理(如放大、增强对比度)。 - **翻译 API 需联网**:虽然支持离线翻译模型,但默认配置仍依赖云端服务,完全离线场景需自行下载模型。 - **缺少 GUI**:对非技术用户不友好,但可以通过社区贡献的 Web 界面或 Electron 封装解决。 - **批量处理效率**:目前是串行处理,对于大量图片可考虑加入多线程/异步支持。 ## 七、总结 VI-Translate 是一个设计精巧、实用性强的开源工具。它没有追求大而全,而是把视觉翻译的核心链路(OCR → 语言检测 → 翻译 → 输出)做到极简和可扩展。对于开发者、研究者、以及任何需要在终端中高效处理图片文字翻译的人来说,这是一个值得加入工具箱的项目。 如果你厌倦了手动复制图片文字,或者想为你的下一个自动化项目添加视觉翻译能力,不妨试试 VI-Translate。 🔗 项目地址:https://github.com/breslee1707/VI-Translate
查看工具