GNU General Public License v3.0

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

Diraw/AI-Screenshot-Translator 深度技术分析

项目背景与痛点

在学术和专业领域,科技文献的阅读仍然是理解和研究的关键。特别是在多语言环境中,英语作为技术交流的通用语言,对于非英语母语的读者来说,理解文献中的复杂信息是一个巨大挑战。同时,这些文献往往包含大量的公式和符号,传统翻译工具往往无法准确翻译这些内容。

Diraw/AI-Screenshot-Translator 就是为了解决这一痛点而生。它提供了一种无缝的翻译体验,用户可以通过简单的截图,直接获得精准的翻译结果,包括复杂公式的翻译。这项功能不仅仅提高了阅读效率,同时也为研究人员节省了大量的时间。

核心技术揭秘

技术架构与实现原理

该项目采用了先进的计算机视觉和自然语言处理技术,结合 AI 模型,构建了一个高效的工作流。下面通过 Mermaid 图表展示其技术架构:

graph TD A[用户截图] --> B[图像预处理] B --> C[OCR 文字提取] C --> D{"数学公式检测?"} D -->|"是"| E[数学公式识别] D -->|"否"| F[文字翻译] E --> G[公式翻译] F --> H{"语言类型?"} H -->|"多语种"| I[多语言处理] H -->|"单一语种"| J[单一语言处理] G --> K[翻译合并] I --> K J --> K K --> L[结果输出]

该项目的架构显示了从用户截图到最终输出结果的过程。整个流程包括:

  1. 图像预处理:将截图进行转换和增强,以便于后续处理。
  2. OCR 文字提取:使用 OCR 技术,提取截图中的文字内容。
  3. 数学公式检测:检测截图中是否包含数学公式,并进行分类处理。
  4. 公式识别与翻译:对数学公式进行识别,并使用专门的 AI 模型进行翻译。
  5. 文字翻译:对普通文字内容进行翻译,支持多语言处理。
  6. 结果合并与输出:将翻译后的结果合并,输出给用户。

核心技术栈

  • 图像处理库:如 OpenCV,用于图像预处理、增强。
  • OCR 引擎:如 Tesseract,用于识别图像中的文字。
  • 公式识别与处理:使用专门的数学公式识别库。
  • 翻译引擎:除了传统的机器翻译模型,还加入了特定的数学公式翻译算法。

功能亮点与差异

Diraw/AI-Screenshot-Translator 的功能亮点在于其对数学公式的处理能力和多语言支持。在面对复杂的数学公式时,该项目能够准确地识别并翻译,这是同类产品难以实现的功能。此外,项目中引入了窗口锁定、贴片截图等功能,提高了使用体验,让用户在处理大图时更加方便。

相比于其他翻译工具,该项目的杀手锏在于能够对复杂数学公式进行识别和翻译,这是其差异化特点所在。此外,贴片截图等功能也大大增强了用户的使用体验,使得用户在特定场景下使用更加舒适。

应用场景与落地建议

该项目适用于需大量阅读和处理英文科技文献的研究人员。尤其是需要频繁阅读和理解包含大量数学公式的论文时,此工具可以显著提高效率。

需要注意的是,在生产环境中使用时,需要对资源使用进行监控,确保服务不会因为用户的使用而崩溃。同时,推荐对翻译结果进行人工检查,以确保准确性。

综合评价

优点

  • 多语言支持:内置多语言翻译引擎,可处理非英语文献。
  • 数学公式识别与翻译:针对学术研究中特有的数学公式,能够准确识别翻译。
  • 用户体验良好:贴片截图、窗口锁定等功能锦上添花,极大改善了用户体验。

缺点

  • 性能问题:高负载时,系统可能面临性能瓶颈,需要更强大的计算资源支持。
  • 依赖复杂:由于涉及图像处理、OCR 和翻译等多种技术,系统部署和维护相对复杂。

综上所述,Diraw/AI-Screenshot-Translator 在学术文献翻译领域取得了显著的进步,提供了一个强大而易用的解决方案。然而,项目在大规模应用时仍需优化和扩展,以保证其稳定可靠的运行。

简要分析

热度分
266
价值分
135
活跃状态
活跃

语言占比

C
C++
CMake
CSS
HTML
Inno Setup
JavaScript
PowerShell

Release

贡献者

README

中文 | English

AI 截图翻译工具 (AI Screenshot Translator)

Qt6 WebView2 GitHub release (latest by date) GitHub issues Downloads

一个基于 Qt 6 + WebView2 的截图翻译/归档工具:

  • 截图 → AI 翻译 → 富文本结果(Markdown/代码高亮/LaTeX)
  • 结果窗口支持快捷键翻页/编辑/查看原图/标签
  • 归档窗口支持筛选、批量操作与键盘导航
  • 多配置文件、代理、连通性测试

注:目前本项目仅支持 Windows,将在未来支持跨平台

适用场景(想解决的痛点)

  1. 不想用“整篇文档翻译”那种笨重工作流
  2. PDF 复制文本后公式(LaTeX)经常乱或不可用
  3. 扫描版 PDF 无法复制文本
  4. 划词翻译/截图翻译很多无法正确识别和渲染公式

功能亮点

  • 全局快捷键:截图、打开归档、打开设置(可自定义)
  • 截图工作流:框选区域 → 预览卡片(拖拽/缩放/可选边框) → 结果窗口
  • AI Provider:OpenAI / Gemini / Claude(可扩展),提示词可自定义,支持代理
  • 结果窗口:锁定置顶、翻页、编辑 Markdown、查看原图、标签弹窗、快捷键导航
  • 归档窗口:日期/标签筛选,批量选择删除/加减标签,键盘切换查看/编辑/截图预览
  • 本地历史:storage/history.json + storage/images/*(删除图片会同步删除条目)
  • 多配置文件:%AppData%/AI-Screenshot-Translator-Cpp/profiles/*.json,支持导入/导出/复制/重命名
  • 调试日志:设置里开启 Debug Mode,输出到工作目录 debug.log

演示视频

https://github.com/user-attachments/assets/458abdde-0d36-4b84-b486-8638194c3555

快速上手

  1. 启动程序(Release 包或自行构建)。
  2. 首次启动会自动弹出设置窗口:
    • 选择 Provider
    • 填写 API Key
    • (可选)设置 Base URL / Endpoint / Proxy
  3. 使用托盘菜单或快捷键开始截图翻译。

默认快捷键

  • 截图:ctrl+alt+s
  • 打开归档:alt+s
  • 结果窗口:上一页 z / 下一页 x;标签 t
  • 归档窗口:编辑 e、查看切换 r、截图预览 s
  • 编辑辅助:加粗/下划线/高亮:ctrl+b / ctrl+u / ctrl+h

API 配置说明

Base URL + Endpoint 是如何拼接的?

  • 请求地址统一按 Base URL + Endpoint 组合。
  • 默认 Endpoint(可自行改):
    • OpenAI:/chat/completions
    • Gemini:/v1beta
    • Claude:/v1/messages

注意:如果你在 Base URL 里已经包含了版本路径(例如 .../v1),Endpoint 就不要再写 /v1/...,避免重复路径

测试连通性

设置页提供“测试”按钮,用于快速验证:

  • 代理是否可连接(若配置了 Proxy)
  • API 端点是否可访问(基于当前 Base URL + Endpoint)

目录结构

  • src/ 核心代码:App、配置、服务(API/历史/翻译)、UI 窗口与小部件、平台封装(GlobalHotkey)、WebView 封装
  • assets/ 静态资源与前端库(marked/highlight/katex、字体、图标、模板等)
  • webview2_pkg/ WebView2 SDK 依赖
  • build/ 构建输出(本地生成)

环境与依赖

  • Windows + MSVC(推荐 VS 2022 工具链)
  • CMake ≥ 3.16
  • Qt 6(Widgets、Network、Gui、Core)
  • WebView2 Runtime(Windows 11 默认有,Windows 10 可能需要单独安装)
  • 仓库内置 WebView2 SDK(webview2_pkg)以及前端库(assets/libs)

WebView2 包说明

  • 仓库已内置官方 NuGet 包 Microsoft.Web.WebView2 1.0.2903.40(已精简,保留 build/native/x64/WebView2Loader.dll(.lib)、WebView2.h/.idl/.tlb 和 LICENSE/NOTICE),克隆后可直接编译。
  • 若仓库未包含 webview2_pkg/,可执行:
    nuget install Microsoft.Web.WebView2 -Version 1.0.2903.40 -OutputDirectory third_party
    
    然后将生成的 .nupkg 解压到仓库根目录的 webview2_pkg/。

本地构建

  1. 安装 Qt 6,并设置 CMAKE_PREFIX_PATH(或在 VS 开发者命令行中使用 -DCMAKE_PREFIX_PATH=".../Qt/6.x/msvc2019_64/lib/cmake")。
  2. 生成并构建:
    cmake -S . -B build -G "Visual Studio 17 2022" -A x64
    cmake --build build --config Release
    
  3. 运行:
    .\build\Release\AI-Screenshot-Translator-Cpp.exe
    

打包

构建后可将运行所需依赖统一放到 build/Release/:

# 1) 构建
cmake --build build --config Release

# 2) 部署 Qt 运行时(将 QTDIR 替换为你的 Qt 安装路径;--compiler-runtime 会把 MSVC 运行库也拷进来)
& "$Env:QTDIR\bin\windeployqt.exe" --release --compiler-runtime --no-translations build\Release\AI-Screenshot-Translator-Cpp.exe

# 如果看到 windeployqt 提示找不到 Visual Studio(如 VCINSTALLDIR 未设置),请在
# “x64 Native Tools Command Prompt/Developer PowerShell for VS 2022” 中运行上述命令,
# 这样才能把 MSVC 运行库 DLL 一并复制到 Release 目录。

# 3) 复制资产与 WebView2 Loader
cmake -E copy_directory assets build/Release/assets
cmake -E copy_if_different webview2_pkg/build/native/x64/WebView2Loader.dll build/Release/

完成后 build/Release/ 下的 exe + DLL + assets 即为可分发包。

常见问题(FAQ)

1) 测试连通但实际请求失败?

  • 重点检查 Base URL 和 Endpoint 是否重复包含了版本路径(例如 /v1)。
  • 如果你配置的是“兼容 OpenAI”的第三方服务,Endpoint 可能不是 /chat/completions,请按服务文档调整。

2) WebView2 相关问题

  • Windows 10 可能需要单独安装 WebView2 Runtime。
  • 如果窗口空白/崩溃,先确认系统 WebView2 Runtime 正常,再检查打包时 WebView2Loader.dll 是否拷贝到 exe 同目录。

许可

项目包含的 webview.h 遵循 MIT 许可,其余代码请根据仓库实际许可使用。

其他

喜欢本项目不妨点个 star 支持一下。

Star History Chart

评论

暂无评论