您现在的位置是:网站首页> 开发积累
开源软件收集
- 开发积累
- 2026-04-22
- 1847人已阅读
开源软件收集

大模型实时翻译PDF排版不变PDFMathTranslate
GitHub年度盘点来了 盘点2025年10个最实用的开源项目
Chandra OCR——连手写笔记都能识别的OCR,已经不只是“识别文字”
OpenAI Whisper——离线语音转文字,准确率已经够日常使用
开源免费的微信消息推送服务、10万次额度+2MB镜像,开发者福音
个人优秀开源项目
livego视频服务
使用
1.启动服务:执行 livego 二进制文件启动 livego 服务;
2.访问 http://localhost:8090/control/get?room=movie 获取一个房间的 channelkey(channelkey用于推流,movie用于播放).
3.推流: 通过RTMP协议推送视频流到地址 rtmp://localhost:1935/{appname}/{channelkey} (appname默认是live), 例如: 使用 ffmpeg -re -i demo.flv -c copy -f flv rtmp://localhost:1935/{appname}/{channelkey} 推流(下载demo flv);
4.播放: 支持多种播放协议,播放地址如下:
RTMP:rtmp://localhost:1935/{appname}/movie
FLV:http://127.0.0.1:7001/{appname}/movie.flv
HLS:http://127.0.0.1:7002/{appname}/movie.m3u8
使用soundtouch为音频加点料
为音频加点料就是实现音频的特效,可以实现音频的倍数播放,以及音乐的升降调、响度增加等功能。很多音频的倍数播放功能,如喜马拉雅,就是通过这项技术实现的。
SoundTouch简介
SoundTouch是一个用C++编写的开源的音频处理库,可以改变音频文件或实时音频流的节拍(Tempo)、音调(Pitch)、回放率(Playback Rates),还支持估算音轨的稳定节拍率(BPM rate)。ST的3个效果互相独立,也可以一起使用。这些效果通过采样率转换、时间拉伸结合实现。
Tempo节拍:通过拉伸时间,改变声音的播放速率而不影响音调
Playback Rate回放率: 以不同的转率播放唱片(不是很懂),通过采样率转换实现
Pitch音调 :在保持节拍不变的前提下改变声音的音调,结合采样率转换+时间拉伸实现。如:增高音调的处理过程是:将原音频拉伸时长,再通过采样率转换,同时减少时长与增高音调变为原时长
注意:SoundTouch只能处理wav格式的文件,其它格式的文件需要结合lame(一个mp3和wav相互转换的工具)进行处理。
SoundTouch下载和安装使用
在官网的http://soundtouch.surina.net/download.html有windows、linux、mac os的下载链接,windows和mac os有现成的编译好的执行文件,直接下载zip格式文件解压使用就可以。
windows环境下载安装使用:
下载 SoundStretch 2.1.1 for Windows ,下载后是一个zip文件,然后解压该文件得到一个soundstretch.exe,把这个exe文件的路径加入path环境变量即可以使用。例如实现把 input.wav 音频文件的声调增加3个半音(semi-tones):
#Pitch raised by +3 semi-tones.command syntax:
soundstretch input.wav output.wav -pitch=+3
我要用 SoundTouch下载 SoundStretch 干嘛用?答:SoundTouch是音频处理库,而SoundStretch 是命令行工具,反正用 SoundStretch 就对了
SoundStretch命令的使用
#Tempo reduced by -50%.
soundstretch input.wav output.wav -tempo=-50
#Beats-Per-Second rate adjusted to 60 BPM (original is 73.9 BPM). Note: This is equivalent to decreasing tempo by -18.8 %.
soundstretch input.wav output.wav -bpm=60
#Beats-Per-Second rate adjusted to 100 BPM (original is 73.9 BPM). Note This is equivalent to increasing tempo by +35.3%
soundstretch input.wav output.wav -bpm=100
#Pitch lowered by -3 semi-tones.
soundstretch input.wav output.wav -pitch=-3
#Pitch raised by +3 semi-tones
soundstretch input.wav output.wav -pitch=+3
#Playback rate increased by +35%. Note: This would be equivalent to playing a 331/3RPM vinyl LP audio disc at 45 RPM...
soundstretch input.wav output.wav -rate=+35
结合lame处理MP3
lame是一个mp3和wav相互转换的工具,windows和linux下都可以使用。SoundTouch只能处理wav格式的文件,需要使用lame进行 .mp3 => .wav 和 .wav => .mp3 转换。当然你也可以使用大名鼎鼎的ffmpeg,但是没有lame简单。
rustdesk多端远程协助开源软件


使用后发现重启电脑后,电脑客户端的ID/中继服务器配置会消失。需手动重新填写一遍,比较麻烦。
可按如下步骤操作:
RustDesk windows客户端支持:把rustdesk.exe 修改为 rustdesk-host=<host-ip-or-name>,key=<public-key-string>.exe,
例如:rustdesk-host=192.168.10.14,key=XXX.exe
这样就不用填写ID/中继服务器配置了,这样比较方便。

执行服务的皮处理如:
path C:\Program Files\RustDeskServer\bin
hbbs.exe
hbbr.exe
即时通讯开源
hula一款基于Rust+Vue3极致性能的跨平台即时通讯桌面应用
Excalidraw开源白板
通过源码部署
1.安装 Node.js:Excalidraw 基于 Node.js 运行,需先安装 Node.js。前往 Node.js 官网下载适合 Windows 的安装包,按照安装向导提示完成安装。
2.安装 Git:Git 用于获取 Excalidraw 源码。从 Git 官网下载 Windows 版安装程序,安装过程中可保持默认设置,一路点击 “Next” 直至安装完成。
3.获取 Excalidraw 源码:点击 “Win+R” 键,输入 “cmd” 打开命令窗口,使用git clone命令克隆 Excalidraw 仓库,如git clone https://github.com/excalidraw/excalidraw.git。
4.安装依赖项:在命令窗口中,进入克隆后的 Excalidraw 目录,如cd excalidraw,然后运行npm install -g yarn安装 yarn,再使用yarn install命令安装项目所需依赖。
5.启动服务器:在 Excalidraw 目录下的命令窗口中,输入yarn start启动服务器。
6.本地链接测试:服务器启动后,打开浏览器,访问http://localhost:3000,即可使用 Excalidraw。
使用内网穿透实现公网访问
如果想在公网远程访问本地部署的 Excalidraw,可以使用 cpolar 内网穿透工具。
1.安装 cpolar:进入 cpolar 官网,注册账号后下载 Windows 版本并安装,安装时可保持默认设置。
2.配置 cpolar:安装完成后,在浏览器上访问http://localhost:9200,使用注册的 cpolar 账号登录,进入 web 配置界面。点击左侧仪表盘的 “隧道管理” - “创建隧道”,协议选择 “http”,创建一个 Excalidraw 的公网 http 地址隧道。
3.获取公网地址:隧道创建成功后,点击左侧的 “状态” - “在线隧道列表”,查看生成的公网访问地址。使用该地址,可在其他设备的浏览器中访问本地的 Excalidraw。若需固定公网地址,可在 cpolar 官网左侧点击 “预留”,选择保留二级子域名,设置好相关信息后,将其配置到隧道中即可。
当你在使用 npm 时遇到npm ERR! code CERT_HAS_EXPIRED错误,这通常是由于 SSL 证书过期导致的。以下是几种解决方法:
方法 1:清除 npm 缓存并重新安装依赖
bash
# 清除npm缓存
npm cache clean --force
# 重新安装依赖
npm install
方法 2:临时禁用 SSL 验证(不推荐用于生产环境)
bash
# 临时关闭SSL验证
npm config set strict-ssl false
# 完成操作后建议重新开启
npm config set strict-ssl true
方法 3:更新 npm 和 Node.js
证书过期可能是因为使用了较旧版本的 npm/Node.js,更新到最新版本通常能解决问题:
bash
# 更新npm
npm install -g npm@latest
# 如果需要更新Node.js,建议到官网下载最新版本安装
方法 4:手动更新根证书
bash
# 对于Windows系统,可以尝试更新npm的证书
npm config set cafile "<path-to-your-certificate-file>"
如果不知道证书文件位置,可以重新安装 Node.js,安装程序会自动配置正确的证书。
方法 5:检查系统时间
如果你的系统时间不正确(尤其是日期超前或滞后较多),也可能导致证书验证失败。请确保 Windows 系统时间和时区设置正确。
尝试以上方法后,通常能解决证书过期的问题。如果是企业网络环境,可能需要联系 IT 部门获取正确的证书配置。
电子礼单系统
本地礼账记录工具,开源免费,无任何限制,能记账、能导出电子礼单,pdf(生成带封面的 PDF 礼簿(真·像书一样))、Excel、能统计,能打印…
使用最直接的前端技术HTML + CSS + JavaScript来实现的,浏览器直接运行
打开上面的Github页面

找到这个下载按钮,下载到电脑上是一个gift-book-main.zip压缩包文件,解压后找到 index.html 这个文件,用浏览器打开就能直接用,不需要安装任何环境,也不需要网络,方便在无网络的环境下使用,简简单单。
打开后是这样的,先创建一个事项,可以单独为每场活动建立一个独立的“账本”,设置密码,开始结束时间、主题色、语音音色、封面图。

关于数据存储
这是我最引以为傲的设计。整个系统就是一个单网页应用,所有的逻辑都在你的浏览器里运行。
- 数据存储在哪? 我用了浏览器的 IndexedDB。你可以把它理解成一个在你电脑上的、只有你的浏览器能访问的小型数据库。你的所有礼金记录、创建的事项信息,都安安静-静地躺在里面,不会被发送到任何地方。
- 如何保证安全? 当你创建一个新的“事项”(比如“xxx升学宴”)时,系统会强制你设置一个管理密码。这个密码不仅仅是用来登录的,而是作为一把“密钥”。之后你录入的每一条礼金信息,都会用这个密钥通过 AES 加密 算法处理后,再存入 IndexedDB。这意味着,哪怕有人拷贝了你电脑里的数据库文件,没有你的密码,看到的也只是一堆乱码。
就跟传统的礼账金额要用笔画繁杂大写一样,使用aes加密就是防篡改。
强大的统计、打印与导出
IOE 进销存管理系统
IOE是一个基于Django开发的综合性库存管理系统,专为零售商店、小型仓库和商品销售场所设计。系统提供了完整的商品管理、库存跟踪、销售记录、会员管理和数据分析功能,帮助企业高效管理库存和销售流程
- 商品信息管理:添加、编辑和查看商品详细信息,包括名称、条码、价格等
- 商品分类管理:创建和管理商品分类,便于组织和查询
- 商品规格管理:设置商品的颜色、尺码、规格和制造商等属性
- 商品图片上传:上传和管理商品图片
- 实时库存跟踪:精确掌握每个商品的库存数量
- 智能库存预警:设置阈值,低库存自动提醒
- 入库/出库管理:系统自动更新库存数量
- 库存调整:支持手动调整和批量操作
- 全面交易记录:详细记录所有库存变动明细
- 盘点计划创建:周期性或临时库存盘点安排
- 高效盘点执行:记录实际与系统差异
- 盘点审核流程:确保盘点数据准确性
- 详细盘点报告:生成可视化盘点差异报告
- 自动库存调整:根据盘点结果一键调整
- 销售单创建:直观便捷的销售操作界面
- 多元支付方式:现金、微信、支付宝、银行卡和账户余额等
- 灵活销售折扣:支持多种折扣策略
- 销售记录查询:多维度筛选历史销售数据
- 无忧退货处理:简化销售退货流程
- 会员信息管理:全面记录会员基础资料
- 会员等级体系:自定义等级和专属优惠
- 积分奖励系统:消费自动累积积分
- 消费历史追踪:会员消费行为分析
- 账户余额管理:充值与消费一体化
- 贴心生日提醒:增强会员关怀
- 销售趋势图表:直观展示业务走向
- 商品表现分析:识别热销与滞销商品
- 库存健康评估:优化库存投资回报
- 利润精准计算:多维度利润分析
- 会员价值评估:深入了解会员贡献
- 系统使用审计:全面操作日志记录
开源在线白板工具 Drawnix
开发
npm install
npm run start
Docker
docker pull pubuzhixing/drawnix:latest
淘到了 4 个开源 GitHub 项目,太惊艳了
01、游戏串流服务
这是一个开源的游戏串流服务器,专为 Moonlight 客户端设计。
你在自己台式机上安装 Sunshine,就能在手机、平板、电视等设备上,通过 Moonlight 客户端流畅地远程玩主机上的游戏。
02、屏幕共享工具
Bananas 是一个简单易用的跨平台屏幕共享工具,支持 Windows、macOS 和 Linux 系统。
它基于点对点连接技术,不需要注册账号或依赖复杂的服务器架构,就能轻松分享屏幕内容,而且支持多个光标协作。
该项目使用 WebRTC 实现实时传输,仅需借助 STUN/TURN 和服务发现服务器建立初始连接,后续数据直接在双方之间传输。
03、终端图形界面工具
刚开源两周就获得 6K 的 Star。
这个叫 term.everything 的开源项目让你能在命令行终端里运行任何带有图形界面的软件。
打个比方, 游戏、浏览器、视频播放器一般是在你的电脑桌面上显示的。
而这个工具能捕捉到这些软件的图形界面,然后把它「翻译」成你的终端能够理解并显示出来的文字或图像。
04、抖音下载工具
Douyin-Downloader 是一个功能强大的抖音内容下载工具,支持批量获取视频、图集、合集和原声音频,并自动去除水印。
大模型实时翻译PDF排版不变PDFMathTranslate
基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/MCP/Docker/Zotero
保留公式、图表、目录和注释
文件快传
Docker 一键部署。
docker run -d-p8080:8080 --name file-transfer-go matrixseven/file-transfer-go:latest
本地构建部署
git clone https://github.com/MatrixSeven/file-transfer-go.git
cd file-transfer-go
./build-fullstack.sh
./dist/file-transfer-go
开发环境部署
# 后端服务
make dev
# 前端服务(新终端)
cd chuan-next && yarn && yarn dev
下载对应平台的二进制文件
给文件添加执行权限(Linux/macOS): chmod +x 文件名
运行: ./文件名 或直接双击(Windows)
访问: http://localhost:8080
hula一款基于Rust+Vue3极致性能的跨平台即时通讯桌面应用
服务端项目介绍
HuLa-Server 是一款基于 SpringCloud、SpringBoot3、Netty、MyBatis-Plus 和 RocketMQ 构建的高性能即时通讯系统服务端。它采用了微服务架构设计,提供高性能的实时通信能力,支持单聊、群聊、消息推送等核心功能。系统具有高可扩展性和可靠性,适用于各类即时通讯场景。
核心优势
模块化与高内聚: 服务按功能拆分为独立模块(网关、认证、IM、AI、ws、base、system、presence等),通过清晰隔离,降低耦合度,提升开发与维护效率。
弹性扩展能力: webflux异步架构,基于Spring Cloud 2024 & Spring Boot 3.x构建,支持动态扩缩容。如luohuo-gateway可通过增加节点应对高并发流量。
技术栈统一管理: luohuo-dependencies-parent集中管控依赖版本,避免冲突,提升协作效率。
技术栈
Redis: 高性能的内存数据库,用于存储用户会话信息、消息缓存等数据,提供了高速的数据访问能力。
MySQL: 可靠的关系型数据库,用于存储用户信息、消息记录等持久化数据。
Netty: Reactor 线程模型,高并发连接管理,零拷贝优化,支持实时消息推送。
RocketMQ: 高性能消息中间件,各项服务之间解耦的关键,im场景下实现事务消息保障、顺序消费
AI能力
Spring AI: 统一的AI接口抽象层,支持多平台切换
Gitee AI: 魔力方舟AI平台,支持对话、图片、音频、视频生成
硅基流动: 国产AI平台,提供多模态AI能力
OpenAI/DeepSeek/Kimi: 主流AI大模型集成
客户端项目介绍
HuLa 是一款基于 Tauri、Vite 7、Vue 3 和 TypeScript 构建的即时通讯系统。它利用了 Tauri 的跨平台能力和 Vue 3 的响应式设计,结合了 TypeScript 的类型安全特性和 Vite 7 的快速构建,为用户提供了一个高效、安全和易用的通讯解决方案。
🛠️ 技术栈
Tauri: 为本项目提供了一款轻量级的、高性能的桌面应用容器,使得我们可以使用前端技术栈来开发跨平台的桌面应用。Tauri 的设计哲学是在保证安全性的前提下,尽可能减少资源占用。
Vite 7: Vite 是一个现代化的前端构建工具,它利用原生 ES 模块导入的能力来提供一个快速的开发服务器,与此同时,它也为生产环境打包提供了强大的支持。Vite 7 是其最新的版本,带来了更多的优化和特性。
Vue 3: Vue 3 是一个渐进式JavaScript框架,用于构建用户界面。它的组合式API、更好的TypeScript集成和对移动端的优化使得开发复杂的单页应用变得更加简单和高效。
TypeScript: TypeScript 是 JavaScript 的一个超集,它在 JavaScript 的基础上增加了类型系统。这让我们能够在开发过程中捕获更多的错误,并且提供更好的编辑器支持。
GitHub年度盘点来了 盘点2025年10个最实用的开源项目
Whisper:多语言语音识别、语音翻译和语言识别
PaddleOCR:文字识别、发票合同等
n8n:AI自动化工作流工具
aider:写代码改代码工具
Perplexica:本地搜索
Open-wenui:多模型同时交互
Ollama:本地模型部署工具
gpt4all:本地模型部署工具(搭建知识库)
comfyUI:生成图像工作流工具
Fabric:常用提示词
推荐 5 个小众但有趣的 GitHub 开源项目。
将视频瞬间转化为手绘故事
开源地址:https://github.com/RanFeng/clipsketch-ai
聊天记录分析工具:ChatLab
开源地址:https://github.com/hellodigua/ChatLab
AI 全自动短视频引擎
开源地址:https://github.com/AIDC-AI/Pixelle-Video
哪里约会?MeetSpot
开源地址:https://github.com/JasonRobertDestiny/MeetSpot
全自动 AI 自媒体流水线
开源地址:https://github.com/Anning01/AIMedia
AIMedia 可以爬微博、抖音、网易新闻的热点,然后用 AI 根据这些热点自动写文章。写完还不算完,它还能自动给你配图,甚至自动发到今日头条、公众号和小红书上。
GitHub 下载神器,开源了
GitHub 应用商店
它就是一个专门为 GitHub 打造的“第三方应用商店”,我们可以在上面搜索相关的开源工具,直接一键下载其中的安装包。
真正吊打付费的4款开源软件
Syncthing——文件同步这件事,完全可以零成本
Syncthing是一款开源的跨平台文件实时同步软件。简单说,就是让你的电脑、手机之间自动互传文件,不用云盘、不用会员。
你能用它做什么?
两台电脑实时同步工作文件,改动自动更新
手机照片自动同步到电脑指定文件夹
在家电脑和公司电脑之间无缝接力办公
给团队搭建一个私有文件同步方案
不限容量,只受自己硬盘空间限制
HopToDesk——远程控制电脑,不必年年续费
你能用它做什么?
远程帮父母修电脑
在外地用笔记本连接家里主机
远程访问办公室电脑文件
多平台互通,Windows、Mac、Linux都支持
Ventoy——开源免费的U盘多系统启动工具
你能用它来做什么?
一个U盘同时存放多个系统镜像
直接复制ISO文件,无需反复格式化
随时添加或删除系统版本
维护电脑时快速切换不同安装环境
WiFi-DensePose实时感应人体
项目地址:https://gitcode.com/GitHub_Trending/wi/wifi-densepose
Chandra OCR——连手写笔记都能识别的OCR,已经不只是“识别文字”
传统 OCR 的逻辑很简单:把图片里的文字识别出来。
但实际用的时候问题很多,像表格会乱掉、公式识别不准、排版完全丢失、手写内容基本不可用等。
Chandra OCR解决的核心点,是“结构化识别”。它不只是识别文字,而是把整个文档还原出来。

你上传一份 PDF 或图片,它可以直接输出,而且布局是带着的:
Markdown(适合做笔记、知识库)
HTML(保留页面结构)
JSON(方便程序处理)
这在做文档整理、知识库建设、数据抽取时,价值很高。
识别准确率达77.8%
3月更新2.0版本之后,它在几个点上明显提升:
数学公式识别更稳定
表格结构更准确
多语言支持(90+语言)
手写识别能力明显增强
还有一个比较实用的点是:它可以把表单里的复选框也识别出来。
部署方式也比较灵活,可以本地跑(适合隐私数据),也可以用远程推理(速度更快)。
Jellyfish——开源免费的一站式制作短剧工具
Jellyfish可以把这整条生产链路打通的同时利用AI力提升效率。
从剧本输入 → 智能分镜 → 角色/场景/道具一致性管理 → AI视频生成 → 后期剪辑 → 一键导出成片
整个过程都在同一个工具里完成,它里面几个比较关键的模块:
项目管理(多个短剧同时推进)
分镜控制(可以细调每一帧逻辑)
提示词模板(减少反复调参)
剪辑工作台(直接出成片)
这类工具对于做短视频矩阵、短剧账号的人会更实用些。
OpenAI Whisper——离线语音转文字,准确率已经够日常使用
OpenAI Whisper 是一个完全开源的语音识别模型,而且可以离线使用。
特点:
支持多语言(包括中文)
可以识别音频,也可以直接处理视频
自动生成字幕
实际使用中几个优势比较明显:
对口音的容忍度比较高
背景噪音下依然能识别
长音频处理稳定
你可以把它理解成一个“本地版语音助手”,专门负责转录。
很多人会拿它做视频字幕批量生成、播客内容整理、会议纪要。
如果对隐私有要求,本地运行这一点会很关键。
开源免费的微信消息推送服务、10万次额度+2MB镜像,开发者福音
源码地址:https://github.com/hezhizheng/go-wxpush
最近发现一个开源项目 go-wxpush,用 Go 语言写的,完美解决了这个问题:极简部署、完全免费、每天10万次额度,而且 Docker 镜像才 2MB
三步搞定微信测试账号
正式部署前,需要先搞定微信这边的配置。别担心,5 分钟就能搞定。
第一步:申请测试公众号
打开这个链接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox
扫码登录后会看到一个测试号管理界面,这里有两个关键信息:
- appID:类似 `wx1234567890abcdef` 的字符串
- appsecret:一串加密字符串
第二步:获取你的 UserID
在测试号页面下方有个”用户列表”区域,用你的微信扫描页面上的二维码,扫码后你的微信号就会出现在列表中,格式通常类似 oXXXXXX-xxxx。
这个 UserID 就是消息接收者的唯一标识。
第三步:创建消息模板
在测试号页面的”新增测试模板”处,创建一个模板。关键点来了:
模板内容必须按这个格式填写:
内容: {{content.DATA}}
注意!不要只填 {{content.DATA}},前面必须加个”内容:“或者其他文字,否则推送会不显示内容!
创建成功后会得到一个 template_id,记下来,后面要用。


这样你就获得了
appid
secret
userid
template_id
把值复制出来备用。
部署方式
准备好上述参数后,就可以部署服务了。项目提供了三种方式:
方式一:Docker 一键部署(推荐)
这是最推荐的方式,镜像只有 2MB,秒启动。
# 重新部署请先拉一遍最新的镜像
docker pull hezhizheng/go-wxpush:v4
# 参数格式与终端启动保持一致, 替换成实际值即可
docker run -it -d -p 5566:5566 --init --name go-wxpush4 hezhizheng/go-wxpush:v4 \
-port "5566" \
-title "测试标题5566" \
-content "测试内容5566" \
-appid "xxx" \
-secret "xxx" \
-userid "xxx-k08" \
-template_id "xxx-Ks_PwGm--GSzllU" \
-tz "Asia/Shanghai"
星哥实测:
[root@xxxx ~]# curl http://127.0.0.1:5566/wxsend?title=服务器通知&content=服务已于北京时间%2026:00%20重启
[1] 15196
[root@xxxx ~]# {"errcode":0,"errmsg":"ok"}
方式二:直接下载编译好的文件(最简单)
项目在 Releases 页面提供了编译好的可执行文件,支持 Windows、macOS、Linux 多平台。
下载后直接运行:
./go-wxpush_windows_amd64.exe -port "5566" \
-title "测试标题" \
-content "测试内容" \
-appid "你的appID" \
-secret "你的appsecret" \
-userid "你的UserID" \
-template_id "你的template_id" \
-base_url "https://push.hzz.cool"
方式三:自行编译(完全控制)
如果你需要自定义或者想学习源码,可以直接编译:
# 安装 gox 工具
go install github.com/mitchellh/gox@latest
# 生成各平台可执行文件
gox -osarch="windows/amd64" -ldflags "-s -w"
gox -osarch="linux/amd64" -ldflags "-s -w"
gox -osarch="darwin/amd64" -ldflags "-s -w"
API 使用:GET 和 POST 都支持
服务启动后,默认监听 5566 端口,推送接口非常简单。
GET 请求(适合快速测试)
http://127.0.0.1:5566/wxsend?title=服务器通知&content=服务已于北京时间%2022:00%20重启
| 参数 | 必填 | 说明 |
|---|---|---|
| title | 是 | 消息标题 |
| content | 是 | 消息内容 |
| appid | 是 | 微信测试号 appID |
| secret | 是 | 微信测试号 appsecret |
| userid | 是 | 接收者 UserID |
| template_id | 是 | 消息模板 ID |
| base_url | 否 | 消息详情页跳转地址 |
| tz | 否 | 时区(默认东八区) |
POST 请求(适合 Webhook 集成)
更适合自动化场景,比如 GitHub Actions、CI/CD、服务器监控等。
curl --location --request POST 'http://127.0.0.1:5566/wxsend' \
--header 'Content-Type: application/json' \
--data-raw '{
"title": "Webhook 通知",
"content": "自动化任务已完成。",
"appid": "你的appID",
"secret": "你的appsecret",
"userid": "你的UserID",
"template_id": "你的template_id"
}'
免费在线视频编辑工具OpenCut
Setup
1.Fork and clone the repository
2.Copy the environment file:
# Unix/Linux/Mac
cp apps/web/.env.example apps/web/.env.local
# Windows PowerShell
Copy-Item apps/web/.env.example apps/web/.env.local
3.Start the database and Redis:
docker compose up -d db redis serverless-redis-http
4.Install dependencies and start the dev server:
bun install
bun dev:web
The application will be available at http://localhost:3000.
The .env.example has sensible defaults that match the Docker Compose config — it should work out of the box.
Self-Hosting with Docker
To run everything (including a production build of the app) in Docker:
docker compose up -d
The app will be available at http://localhost:3100.
可以用python的pytesseract
转之前最好将图片转白底黑字
使用 ImageMagick 进行预处理,生成黑白图像
convert color_image.jpg -colorspace Gray -threshold 50% processed.png
下面我结合详细讲解和具体例子,让你彻底掌握 Tesseract 命令行。
识别通过:tesseract 1.png result --psm 11 -l chi_sim
一、命令基本格式
bash
tesseract input_image output_prefix [options] [configfile]
input_image:图片文件路径(支持 PNG、JPG、TIFF、BMP、PDF 等)。
output_prefix:输出文件的前缀(不要加扩展名)。
[options]:主要参数(-l 语言,--psm 分割模式,--oem 引擎模式)。
[configfile]:输出格式配置(如 pdf、hocr、tsv)或自定义配置文件。
二、最常用例子(直接复制可用)
1. 基础识别(英文)
bash
tesseract english_doc.png result
# 生成 result.txt,内容是图片中的英文
2. 指定语言(简体中文 + 英文)
bash
tesseract chinese_doc.jpg result -l chi_sim+eng
3. 单行文本识别(如验证码、标题)
bash
tesseract captcha.png result --psm 7 -l eng
4. 单个单词识别
bash
tesseract word.png result --psm 8
5. 输出为 PDF(带文字层的可搜索 PDF)
bash
tesseract scanned_page.png output pdf
# 生成 output.pdf
6. 同时输出多种格式(txt + pdf + hocr)
bash
tesseract multi_page.png out pdf txt hocr
# 生成 out.pdf, out.txt, out.hocr
7. 只识别数字(限制字符集)
bash
tesseract number_plate.jpg result -c tessedit_char_whitelist=0123456789
8. 使用用户自定义词库(提升专有名词准确率)
bash
# 先创建 mywords.txt,每行一个词,例如:
# Tesseract
# OCR
tesseract tech_doc.png result --user-words mywords.txt
9. 处理多页 PDF 输入(Tesseract 5.x 以上支持)
bash
tesseract multi_page.pdf output pdf
# 逐页识别,生成带有文字层的 PDF
10. 获取带位置信息的 JSON 输出(需要 tesseract 4.x+)
bash
tesseract receipt.png result tsv
# 生成 result.tsv,包含每个字符的坐标、置信度等
三、核心参数详解 + 例子
参数 说明 示例
-l lang 识别语言。多语言用 + 连接 -l eng+fra(英+法)
--psm N 页面分割模式(见下表) --psm 6 单文本块
--oem N OCR 引擎模式:1 LSTM,3 自动 --oem 1
--dpi N 手动指定图片分辨率 --dpi 300
-c var=value 设置配置变量 -c preserve_interword_spaces=1
PSM 常用值举例
PSM 含义 适用场景 命令示例
3 全自动(默认) 普通文档 tesseract doc.png out --psm 3
6 单一均匀文本块 纯文字段落 tesseract paragraph.png out --psm 6
7 单行文本 标题、按钮、验证码 tesseract button.png out --psm 7
8 单个单词 标志、标签 tesseract logo_word.png out --psm 8
11 稀疏文本 随机位置文字(如截图) tesseract screenshot.png out --psm 11
四、高级例子(综合运用)
1. 针对低分辨率屏幕截图优化
bash
tesseract screenshot.png out --psm 11 --dpi 150 -l eng
2. 识别表格区域(只保留字母数字和空格)
bash
tesseract table.png out -c tessedit_char_whitelist="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 "
3. 输出标准 ALTO XML(用于数字图书馆)
bash
tesseract newspaper.jpg out alto
4. 调试模式:保存中间图像结果(方便调整 PSM)
bash
tesseract blurry.jpg out --psm 6 --dpi 300 -c tessedit_write_images=1
# 会在当前目录生成 tesseract_*.png 等中间处理图
5. 使用多个配置叠加(自定义输出格式)
bash
# 先创建一个 config 文件 myconfig.txt,内容:
# hocr
# tessedit_create_hocr 1
# tessedit_char_whitelist 0123456789
tesseract numbers.png out myconfig
五、常见问题与解决命令
1. 识别结果全是乱码?
原因:未指定正确语言。
解决:加上 -l chi_sim(简体中文)或 -l jpn(日文)。
bash
tesseract chinese.jpg out -l chi_sim
2. 文字粘连在一起,没有空格?
原因:PSM 模式不对或图像分辨率太低。
解决:使用 --psm 6 并提高 --dpi。
bash
tesseract bad_format.png out --psm 6 --dpi 300
3. 识别速度太慢?
原因:使用了旧版引擎或 LSTM 处理大图。
解决:缩小图片尺寸,或指定 --oem 0(用原版引擎,更快但略不准确)。
bash
tesseract big_image.jpg out --oem 0 --psm 3
4. 如何查看系统已安装的语言包?
bash
tesseract --list-langs
5. 如何获取帮助?
bash
tesseract --help-psm # 查看所有 PSM 模式
tesseract --help-oem # 查看引擎模式
tesseract --help-extra # 查看所有配置参数
六、一条完整的实战命令(高质量识别)
bash
tesseract business_card.jpg card_result -l eng+chi_sim+fra --psm 6 --oem 3 --dpi 300 -c preserve_interword_spaces=1 pdf txt
这条命令会:
识别英文、简体中文、法文混合的名片
按统一文本块处理(适合整齐排列的信息)
使用自动引擎
强制 DPI 300
保留单词间空格
同时生成 PDF 和 TXT 文件