MTools
Flet桌面工具集,集成ASR/OCR/字幕修复等AI功能,跨平台支持GPU加速
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Flet桌面工具集,集成ASR/OCR/字幕修复等AI功能,跨平台支持GPU加速
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:MTools 深色主题界面
想象一下,你是一位内容创作者,手头有一堆素材要处理——视频要去字幕、配音要转字幕、图片要OCR识别、音频要去人声提取伴奏——结果光是找工具、装软件就花了大半天。MTools 正是为解决这类痛点而生的:它把创作者日常最刚需的多媒体处理功能,全部打包进一个界面精美的桌面应用中,还内置了 AI 能力,让原本需要专业技能的操作变得人人可上手。
多媒体处理领域长期存在"工具孤岛"现象。FFmpeg 命令行强大但门槛高;在线工具网站受限于文件大小和网络质量;专业软件(如 Adobe 全家桶)功能齐全但价格不菲、学习曲线陡峭。GitHub 上围绕 FFmpeg、Whisper、OCR 等开源工具的封装项目并不少,但大多数停留在"一个脚本解决一个问题"的阶段,缺乏统一的用户体验。
MTools 的作者 HG-ha 正是看到了这个空白,选择以 Flutter 的 Web 框架 Flet 作为 UI 层,用 Python 实现底层逻辑,打造了一个跨平台(Windows/macOS/Linux)的桌面工具集。项目 Star 数突破 1100,说明社区对这类"大一统"工具确实有强烈需求。
MTools 的功能被划分为四大类,每一类都集成了多个子工具:
1. 媒体处理(Media)
2. 图片处理(Image)
3. 开发辅助(Dev Tools)
4. 其他工具(Others)
前端框架:Flet
Flet 是 Flutter 的 Python 封装,开发者可以用纯 Python 构建跨平台桌面/Web/移动应用,而不需要写 Dart 代码。相比 Tkinter 或 PyQt,Flet 原生支持现代化 UI(Material Design 3)、响应式布局、深浅色主题切换,且打包产物更小。MTools 利用 Flet 实现了图 1 所示的精美界面,主题切换、导航栏、设置面板等组件均为开箱即用。
AI 推理引擎:ONNX Runtime
所有 AI 功能(ASR、TTS、OCR、补帧、去字幕等)的推理均通过 ONNX Runtime 完成。ONNX Runtime 是微软开源的高性能推理框架,支持跨平台部署和硬件加速(CUDA/DirectML/CoreML)。MTools 根据不同平台选择不同后端:
| 平台 | ONNX Runtime 版本 | GPU 加速方式 |
|---|---|---|
| Windows | onnxruntime-directml | DirectML(AMD/NVIDIA/Intel 通用) |
| macOS (Apple Silicon) | onnxruntime | CoreML(硬件原生加速) |
| Linux | onnxruntime | 可选 onnxruntime-gpu(CUDA) |
DirectML 版本的一个重要限制是无法手动管理显存大小,CUDA 版本则支持显存的细粒度控制,对显存小于 8GB 的用户影响较大。
代码组织结构
src/
├── main.py # 应用入口
├── views/ # 页面视图(主视图、设置页、开发工具、图片处理等子目录)
├── services/ # 业务逻辑层(ffmpeg_service、ai_subtitle_fix_service 等)
├── models/ # 数据模型
├── components/ # 可复用 UI 组件
├── utils/ # 工具函数
└── constants/ # 常量定义
extensions/
└── flet-gpt-markdown # Markdown 渲染扩展(自定义依赖)
services 目录下有 20+ 个 service 文件,每个功能模块职责清晰。例如 ai_subtitle_fix_service.py 处理 AI 字幕修复逻辑,speech_recognition_service.py 封装 ASR 调用,tts_service.py 处理 TTS,ffmpeg_service.py 封装音视频转码命令。这种分层架构使得新增功能或替换底层模型(如换一个 ASR 引擎)都相对独立,不会牵一发而动全身。
依赖管理:uv
项目使用 uv 作为 Python 包管理器(Astral 公司的极速包管理器,Rust 实现)。pyproject.toml 中定义了所有依赖,README 中仅需 uv sync 即可完成环境同步。相比 pip,uv 在锁文件和依赖解析上速度优势明显,也避免了 "pip install -e ." 的各种兼容性问题。
方式一:下载预编译包(推荐普通用户)
作者在 GitHub Releases 提供了针对不同平台的预编译版本,Windows 版本还区分了通用加速版、CUDA 版和 CUDA_FULL(全量 CUDA 库内置,体积最大但无需配置)三个变体。对于普通用户,下载对应平台的 zip 包、解压、双击运行即可,全程不需要安装 Python 或配置环境——这是对非技术人员最友好的方式。
方式二:源码运行(适合开发者)
git clone https://github.com/HG-ha/MTools.git
cd MTools
uv sync # 自动创建虚拟环境并安装依赖
uv run flet run # 启动应用
启用 CUDA 加速:
uv remove onnxruntime-directml onnxruntime
uv add onnxruntime-gpu==1.24.4
注意:pyproject.toml 中 requires-python = ">=3.11,<3.12",这是一个严格的版本锁定范围,需要 Python 3.11.x,不支持 3.12+。如果系统安装了 Python 3.12,uv sync 会直接报错拒绝。
部署注意点
1. AI 字幕修复依赖外部 API
虽然 ASR 和 OCR 可以在本地离线运行,但 AI 字幕修复功能接入了 Atlas Cloud 的付费 API。虽然 Atlas Cloud 提供免费试用额度,但生产环境使用需要付费。对于对数据隐私有严格要求的用户(如处理企业内部会议记录),这可能是一个障碍。本地模型(如 Qwen、LLaMA)做字幕修复在技术上是可行的,但目前版本尚未支持。
2. Python 3.11 严格锁定
<3.12 的版本锁定对使用较新 Python 版本的项目造成兼容性问题。许多现代 AI 库(如 vLLM、transformers 最新版)已要求 Python 3.12+,如果用户的其他项目依赖较新的 Python 环境,MTools 的固定版本要求会带来环境切换成本。
3. macOS/Linux GPU 加速支持不完整
macOS 版仅支持 M 系列芯片的 CoreML,Intel Mac 无 GPU 加速;Linux 版的 CUDA 支持需要手动安装驱动和 CUDA Toolkit,不够开箱即用。
4. 项目活跃度存疑
从 GitHub 数据看,Stars 1197 但 Forks 仅 109,Open Issues 为 0,这可能说明项目主要作为工具集使用,而非社区协作开发。README 最后一部分涉及"合作伙伴/赞助",暗示项目有商业化运营倾向,需要留意 License(MIT)和代码使用的合规性。
随着 AI 模型推理逐步从云端向端侧迁移,类似 MTools 这样"将 AI 能力封装为桌面应用"的模式正在成为一种趋势。相比纯 API 调用或命令行工具,桌面应用在以下场景有独特价值:
MTools 的 Star/Forks 比(约 11:1)说明其传播主要靠个人用户 fork 后自行使用,而非企业级协作开发。这与桌面工具集的产品定位相符——它是个人效率工具,而非需要团队协作的基础设施。
从技术选型看,Flet + ONNX Runtime 的组合也值得借鉴:Flet 解决了跨平台 UI 开发效率问题,ONNX Runtime 解决了 AI 模型跨硬件部署问题,两者结合可以在保持较低包体积的同时提供足够的 AI 能力。
MTools 是一个定位清晰、功能实在的桌面工具集。它没有试图成为"AI 全栈平台",而是专注于多媒体创作者最常用的几个高频场景(字幕、OCR、格式转换),用 Flet 包装出精美的 UI,用 ONNX Runtime 封装好 AI 推理能力。对于有批量处理需求的视频博主、内容创作者或技术爱好者来说,这是一个值得一试的工具;对于企业用户,数据隐私和 API 依赖是需要评估的风险点。