停止从图像复制粘贴:使用 Python 构建通用屏幕翻译器
Source: Dev.to
介绍 Lingo‑Live
Lingo‑Live 起源于我们许多人都曾感受过的挫败感:想要从 YouTube 视频(或任何屏幕内容)中复制文字几乎是不可能的。大多数人要么手动逐字输入,要么掏出手机使用 Google Lens——既笨拙又打断注意力,远非理想。
Lingo‑Live 是一款简洁的桌面应用,能够即时翻译你屏幕上看到的任何内容,宛如拥有超能力。
- 隐形 – 静默运行于后台
- 即时 – 按下热键,选取区域,即可得到翻译
- 现代 – 玻璃质感 UI、暗色模式、模糊效果
按下 Ctrl + Alt + T,在屏幕任意位置拖动选择,翻译后的文字会直接显示在你正在操作的内容之上。
“玻璃”覆盖层
最棘手的部分是创建一个始终置顶且不令人烦扰的窗口。我使用 CustomTkinter 构建了一个无边框、半透明的覆盖层,轻盈且现代。
- 始终置顶,确保翻译内容可见
- 半透明,仍能看到下方的上下文
- 无边框 – 没有标题栏;自定义拖拽实现
最终的效果更像是桌面上的一层薄膜,而不是传统的应用程序。
眼睛(OCR)
当你触发热键时,Lingo‑Live 并不尝试“读取屏幕”。它的流程是:
- 让你选取一个区域
- 对该区域进行截图
- 将截图发送给 Tesseract OCR,从像素中提取文字
# OCR step
from PIL import ImageGrab
screenshot = ImageGrab.grab(bbox=(x1, y1, x2, y2))
text = ocr_engine.extract_text(screenshot)
这一步就是魔法的起点——把图像转化为真实的文本。
大脑(翻译)
OCR 得到类似 こんにちは 的文字后,我们需要一个能够真正理解语义的翻译。这时 Lingo.dev 派上用场。它不像单纯的词典替换,而是能够正确处理上下文,这在 UI 文本、错误信息和游戏对白等场景中差别巨大。翻译结果自然流畅,而非机械化。
声音(文本转语音)
有时你不想阅读,只想听。为此我加入了 Edge TTS,它使用 Microsoft Edge 中的高质量语音。Lingo‑Live 现在可以朗读翻译内容——非常适合练习发音或保持免提操作。
“鱼是生活在水中的脊椎动物……”
提升体验:AI 摘要
完整翻译固然好,但有时你只想抓住要点。Google Gemini 驱动的 Summarize 按钮可以帮你:
- 将翻译后的文本发送给 Gemini
- Gemini 返回一条简洁的一句话摘要
瞬间获取核心信息——非常适合快速浏览外文文章、冗长的错误信息或 RPG 对话文本。
让它属于你:真正有用的设置
Lingo‑Live 包含一个基于 JSON 的完整设置系统,让你可以自由定制体验:
- 更改热键(例如
Alt + Z) - 切换主题(默认暗色模式)
- 选择不同字体(例如 Roboto → Segoe UI)
{
"hotkey": "Ctrl+Alt+T",
"theme": "dark",
"font": "Segoe UI"
}
入门指南
该仓库是开源的。克隆代码,探索实现,告别像素复制粘贴的烦恼。
git clone https://github.com/Samar-365/lingo_live.git
致谢
特别感谢 @sumitsaurabh927 和 @maxprilutskiy 在整个黑客马拉松期间的持续指导,以及提供的这次绝佳机会。
祝编码愉快!