【AI工具】PDFMathTranslate安装使用

用了一天时间,安装并使用了PDFMathTranslate这款PDF文档翻译工具。
PDFMathTranslate是能够完整保留排版的 PDF 文档全文双语翻译项目,之前使用文档翻译的时候,对于论文这种类型的文章,由于图表和公式太多,文档翻译经常出现格式错乱。试用下来,效果不错,而且免费。

资源地址:https://github.com/Byaidu/PDFMathTranslate

PDFMathTranslate是一款科学 PDF 文档翻译及双语对照工具,可以将PDF文档进行翻译,并且很好的保留格式。网站宣传如下:
在这里插入图片描述

安装过程并不轻松。先是安装了两次都失败了,安装成功后,因为这个项目借用的翻译服务谷歌、DeepL、Ollama等,都连接不上,又折腾一番。简单说就是,出现错误问AI,还真管用,一步一步走向成功安装并使用。
安装过程中,直接使用网站介绍的pip install pdf2zh,安装不成功,有依赖冲突。
连接翻译服务的选项,选择腾讯云服务。

一、安装过程

在 Miniconda 环境下安装 PDFMathTranslate 的步骤如下:

1. 创建 Conda 环境

首先,建议创建一个新的 Conda 环境以避免依赖冲突。可以使用以下命令创建一个名为 pdfmathtranslate 的环境,并指定 Python 版本(建议使用 Python 3.8 至 3.11):

conda create -n pdfmathtranslate python=3.9

2. 激活 Conda 环境

创建环境后,需要激活该环境:

conda activate pdfmathtranslate

3. 安装 PDFMathTranslate

在激活的环境中,使用 pip 安装 PDFMathTranslate:

pip install pdf2zh

4. 使用 PDFMathTranslate

安装完成后,可以通过命令行工具或图形界面使用 PDFMathTranslate。建议使用图形界面。

  • 命令行工具:使用以下命令进行翻译:

    pdf2zh your_document.pdf
    

    可以指定源语言和目标语言等选项:

    pdf2zh your_document.pdf -li en -lo zh
    
  • 图形界面:启动图形界面的命令如下:

    pdf2zh -i
    

    如果浏览器没有自动打开,可以手动访问 http://localhost:7860/

通过以上步骤,在 Miniconda 环境中成功安装了 PDFMathTranslate.

运行错误修复

但是输入pdf2zh -i,出现报错:

Traceback (most recent call last):
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connection.py", line 198, in _new_conn    sock = connection.create_connection(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\util\connection.py", line 85, in create_connectionraise err
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\util\connection.py", line 73, in create_connectionsock.connect(sa)
socket.timeout: timed outThe above exception was the direct cause of the following exception:Traceback (most recent call last):
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connectionpool.py", line 787, in urlopenresponse = self._make_request(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connectionpool.py", line 488, in _make_requestraise new_e
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connectionpool.py", line 464, in _make_requestself._validate_conn(conn)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connectionpool.py", line 1093, in _validate_connconn.connect()
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connection.py", line 704, in connectself.sock = sock = self._new_conn()
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connection.py", line 207, in _new_conn    raise ConnectTimeoutError(
urllib3.exceptions.ConnectTimeoutError: (<urllib3.connection.HTTPSConnection object at 0x0000029FA1EAF400>, 'Connection to huggingface.co timed out. (connect timeout=1)')The above exception was the direct cause of the following exception:Traceback (most recent call last):
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\requests\adapters.py", line 667, in sendresp = conn.urlopen(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\connectionpool.py", line 841, in urlopenretries = retries.increment(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\urllib3\util\retry.py", line 519, in increment    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /wybxc/DocLayout-YOLO-DocStructBench-onnx/resolve/main/doclayout_yolo_docstructbench_imgsz1024.onnx (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000029FA1EAF400>, 'Connection to huggingface.co timed out. (connect timeout=1)'))During handling of the above exception, another exception occurred:Traceback (most recent call last):
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 1374, in _get_metadata_or_catch_errormetadata = get_hf_file_metadata(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fnreturn fn(*args, **kwargs)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 1294, in get_hf_file_metadatar = _request_wrapper(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 278, in _request_wrapperresponse = _request_wrapper(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 301, in _request_wrapperresponse = get_session().request(method=method, url=url, **params)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\requests\sessions.py", line 589, in requestresp = self.send(prep, **send_kwargs)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\requests\sessions.py", line 703, in sendr = adapter.send(request, **kwargs)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\utils\_http.py", line 93, in sendreturn super().send(request, *args, **kwargs)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\requests\adapters.py", line 688, in sendraise ConnectTimeout(e, request=request)
requests.exceptions.ConnectTimeout: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /wybxc/DocLayout-YOLO-DocStructBench-onnx/resolve/main/doclayout_yolo_docstructbench_imgsz1024.onnx (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x0000029FA1EAF400>, 'Connection to huggingface.co timed out. (connect timeout=1)'))"), '(Request ID: e70cfc15-4eff-4fef-bd59-b2a810063e73)')The above exception was the direct cause of the following exception:Traceback (most recent call last):
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\runpy.py", line 197, in _run_module_as_mainreturn _run_code(code, main_globals, None,
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\runpy.py", line 87, in _run_codeexec(code, run_globals)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\Scripts\pdf2zh.exe\__main__.py", line 4, in <module>from pdf2zh.pdf2zh import main
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\pdf2zh\__init__.py", line 2, in <module>from pdf2zh.high_level import translate, translate_stream
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\pdf2zh\high_level.py", line 24, in <module>model = DocLayoutModel.load_available()
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\pdf2zh\doclayout.py", line 21, in load_availablereturn DocLayoutModel.load_onnx()
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\pdf2zh\doclayout.py", line 13, in load_onnxmodel = OnnxModel.from_pretrained(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\pdf2zh\doclayout.py", line 73, in from_pretrainedpth = hf_hub_download(repo_id=repo_id, filename=filename, etag_timeout=1)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\utils\_validators.py", line 114, in _inner_fnreturn fn(*args, **kwargs)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 860, in hf_hub_downloadreturn _hf_hub_download_to_cache_dir(
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 967, in _hf_hub_download_to_cache_dir_raise_on_head_call_error(head_call_error, force_download, local_files_only)
File "C:\ProgramData\Miniconda3\envs\pdfmathtranslate\lib\site-packages\huggingface_hub\file_download.py", line 1485, in _raise_on_head_call_errorraise LocalEntryNotFoundError(
huggingface_hub.errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.

这个问题是在尝试从 Hugging Face Hub 下载模型时出现了连接超时和文件未找到的错误。

pdf2zh的运行依赖于额外模型(wybxc/DocLayout-YOLO-DocStructBench-onnx),该模型在魔搭上也可以找到。如果在启动时下载该模型遇到问题,请使用如下环境变量:

set HF_ENDPOINT=https://hf-mirror.com

然后输入:

pdf2zh -i

然后就可以正常启动了,运行过程如下:
在这里插入图片描述
运行pdf2zh -i之后,浏览器出现:

在这里插入图片描述

二、开通翻译服务

因为这个项目借用的翻译服务谷歌、DeepL、Ollama等,都连接不上。发现项目支持腾讯云的翻译服务,就开通了腾讯云的相关服务。

1、先开通腾讯云

要获取腾讯云的 TENCENTCLOUD_SECRET_KEY,需要在腾讯云控制台中创建一个 API 密钥。以下是详细步骤:

步骤 1:登录腾讯云账号

  1. 访问腾讯云官方网站并登录账号。

步骤 2:创建 API 密钥

  1. 在腾讯云界面,搜索“访问管理”。
  2. 在“访问管理”页面中,选择“API 密钥管理”。
  3. 点击“新建密钥”按钮。
  4. 输入相关验证信息(如手机验证码),然后系统会为你生成一对 SecretIdSecretKey

步骤 3:复制密钥信息

  1. 在生成密钥后,系统会显示你的 SecretIdSecretKey。请立即复制并保存这些信息,因为 SecretKey 只会在创建时显示一次。
2、再开通腾讯云翻译服务

步骤 1:登录腾讯云控制台

  1. 访问腾讯云官方网站并登录账号。

步骤 2:开通服务
2. 在控制台中找到翻译服务。
3. 点击进入该服务的页面。
4. 按照页面提示完成服务开通流程。腾讯云的翻译有免费额度,文本翻译每月有500万字符的免费额度。

三、工具试用

终于可以使用工具,进行文档翻译了!
选择了最新比较热门的DeepSeek V3的技术报告进行翻译,文件大小1.6M,文件长度为53页。
在这里插入图片描述

效果对比

翻译完成后,选取有公式的部分作为对比。
原文:
在这里插入图片描述
翻译效果:
在这里插入图片描述
效果还是不错的。

翻译完,看了一下腾讯云的额度情况:
在这里插入图片描述

DeepSeek V3的技术报告的文件长度为53页,按照这个使用情况,一天翻译一篇重要文档,免费额度应该够用:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda 批量安装requirements.txt文件

conda 批量安装requirements.txt文件中包含的组件依赖 conda install --yes --file requirements.txt #这种执行方式&#xff0c;一遇到安装不上就整体停止不会继续下面的包安装。 下面这条命令能解决上面出现的不执行后续包的问题&#xff0c;需要在CMD窗口执行&#xff1a; 点…

网络安全图谱以及溯源算法

​ 本文提出了一种网络攻击溯源框架&#xff0c;以及一种网络安全知识图谱&#xff0c;该图由六个部分组成&#xff0c;G <H&#xff0c;V&#xff0c;A&#xff0c;E&#xff0c;L&#xff0c;S&#xff0c;R>。 1|11.知识图 ​ 网络知识图由六个部分组成&#xff0c…

上汽乘用车研发流程

目的 最近刚入职主机厂&#xff0c;工作中所提到各个阶段名称与之前在供应商那边不一致&#xff0c;概念有点模糊&#xff0c;所以打算学习了解一番 概念 术语 EP: enginerring prototype car 工程样车 Mule Car: 骡子车 Simulator Car&#xff1a;模拟样车 PPV&#xff1a;…

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计&#xff1a;高内聚&#xff0c;低耦合&#xff1b; 高内聚&#xff1a;将类的内部操作“隐藏”起来&#xff0c;不需要外界干涉&#xff1b…

计算机网络 (23)IP层转发分组的过程

一、IP层的基本功能 IP层&#xff08;Internet Protocol Layer&#xff09;是网络通信模型中的关键层&#xff0c;属于OSI模型的第三层&#xff0c;即网络层。它负责在不同网络之间传输数据包&#xff0c;实现网络间的互联。IP层的主要功能包括寻址、路由、分段和重组、错误检测…

【W800】UART 的使用与问题

1.开发环境 OS: Windows 11开发板&#xff1a;海凌科 HLK-W800-KIT-PROSDK: W80X_SDK_v1.00.10IDE: CSKY Development Kit 2.UART 使用 在 SDK 中创建文件 uart_test.h 和 uart_test.c&#xff0c;然后在 CDK 项目中添加这两个文件&#xff0c;CDK 会自动 include 头文件。 …

万界星空科技质量管理QMS系统具体功能介绍

一、什么是QMS系统&#xff0c;有什么价值&#xff1f; 1、QMS 系统即质量管理系统&#xff08;Quality Management System&#xff09;。 它是一套用于管理和控制企业产品或服务质量的集成化体系。 2、QMS 系统的价值主要体现在以下几个方面&#xff1a; 确保产品质量一致性…

【C++】B2099 矩阵交换行

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述题目描述输入格式输出格式输入输出样例输入 #1输出 #1 &#x1f4af;题目分析&#x1f4af;不同解法分析我的做法实现步骤&#xff1a;优点&#xff1a;不足&#…

Tableau数据可视化与仪表盘搭建-数据连接

目录 连接本地文件 课程操作 连接方式&#xff08;实时/数据提取&#xff09; 保存工作簿 筛选器 数据处理 连接数据有三种类型 第一种&#xff0c;连接到本地文件&#xff0c;例如Excel&#xff0c;csv&#xff0c;JSON等 第二种&#xff0c;连接到数据库&#xff0c;例…

系统日志优化---自定义springboot-starter日志组件供各个服务使用

在优化项目时发现各个微服务都有各自的接口调用日志逻辑&#xff0c;比如每个服务都定义一个aop类拦截&#xff0c;十分冗余&#xff0c;其实是可以做成starter被各个服务引用使用&#xff0c;前提要先了解一下springboot自动装配原理 创建springboot工程&#xff0c;如果是jdk…

Android V QCOM GPS | APN for LocationService

问题 在高通平台上验证 GPS 功能流程时候,block 在 APN 数据库的查询。经查,发现高通有内部实现的 LocationService(aosp源码和mtk都没有的类) 包含查询 TelephonyProvider 数据库的逻辑,直接原因是查询到 APN Protocol 不符合预期,直接fail。 关于 Android APN 数据列的…

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化

基于 Apache Commons Pool 实现的 gRPC 连接池管理类 GrpcChannelPool 性能分析与优化 1. 输出关键信息的代码示例 日志记录方法 使用以下代码记录连接池的关键信息&#xff0c;帮助分析连接池的状态和性能瓶颈&#xff1a; import org.apache.commons.pool2.impl.GenericO…

小程序开发-页面事件之上拉触底实战案例

&#x1f3a5; 作者简介&#xff1a; CSDN\阿里云\腾讯云\华为云开发社区优质创作者&#xff0c;专注分享大数据、Python、数据库、人工智能等领域的优质内容 &#x1f338;个人主页&#xff1a; 长风清留杨的博客 &#x1f343;形式准则&#xff1a; 无论成就大小&#xff0c;…

STM32-笔记38-I2C-oled实验

一、什么是I2C&#xff1f; I2C总线&#xff0c;全称Inter-Integrated Circuit&#xff08;互连集成电路&#xff09;&#xff0c;是一种由Philips&#xff08;现NXP半导体&#xff09;公司在1980年代初开发的同步 串行 半双工通信总线。 二、有了串口通信为什么要使用I2C&…

《C++11》右值引用深度解析:性能优化的秘密武器

C11引入了一个新的概念——右值引用&#xff0c;这是一个相当深奥且重要的概念。为了理解右值引用&#xff0c;我们需要先理解左值和右值的概念&#xff0c;然后再理解左值引用和右值引用。本文将详细解析这些概念&#xff0c;并通过实例进行说明&#xff0c;以揭示右值引用如何…

libevent定时器的性能测试(与rte_timer对比)

前言 接着上篇文章&#xff0c;rte_timer的性能测试https://blog.csdn.net/jacicson1987/article/details/144997298 进行常用的libevent的定时器测试&#xff0c;看看有什么区别&#xff0c;测试方法还是一样&#xff0c;代码放在下面。 测试方法 100万个定时器&#xff0…

C# 事件

目录 1、事件模型的5个组成部分2、使用内置委托类型声明事件2.1 EventHandler2.1.1 &#xff1f;2.1.2 this2.1.3 使用匿名函数和lamda表达式2.1.3.1 匿名函数2.1.3.2 lamda表达式 2.1.4 异常处理 2.2 EventHandler<TEventArgs> 3、使用自定义委托类型声明事件3.1 事件的…

英伟达 RTX 5090 显卡赋能医疗大模型:变革、挑战与展望

一、英伟达 RTX 5090 与 RTX 4090 技术参数对比 1.1 核心架构与制程工艺 在探讨英伟达 RTX 4090 与 RTX 5090 的差异时&#xff0c;核心架构与制程工艺无疑是最为关键的基础要素&#xff0c;它们从根本上决定了两款显卡的性能上限与应用潜力。 1.1.1 核心架构差异 RTX 4090…

爬虫学习记录

1.概念 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 通用爬虫:抓取的是一整张页面数据聚焦爬虫:抓取的是页面中的特定局部内容增量式爬虫:监测网站中数据更新的情况,只会抓取网站中最新更新出来的数据 robots.txt协议: 君子协议,网站后面添加robotx.txt…

玩机搞机基本常识-------列举安卓机型一些不常用的adb联机命令

前面分享过很多 常用的adb命令&#xff0c;今天分享一些不经常使用的adb指令。以作备用 1---查看当前手机所有app包名 adb shell pm list package 2--查看当前机型所有apk包安装位置 adb shell pm list package -f 3--- 清除指定应用程序数据【例如清除浏览器应用的数据】 …