01
花 $7 让 AI 操作一台真实 iPhone:AirPlay 当眼睛、USB HID 当手,绕开开发者账号与越狱
AI + 硬件 / 真机自动化
ESP32
闭环控制
本地运行
首次开源 2026-10-11
1646★ / 208 Fork
一句话结论:它用一整条工程闭环回答了「AI 怎么操作手机」这个被问了两年却始终绕不开苹果生态限制的问题——而解法只需要一块 $7 的开发板和一条 USB 线。
01|案例是什么?
esp32-iphone-agent 让 AI 模型操作一台真实的 iPhone。眼睛——手机把屏幕通过 AirPlay 镜像到电脑上运行的 UxPlay,GStreamer 管线把视频流转成 JPEG 帧,给 Agent 和网页看;手——一块 ESP32-S3 插在手机上,在系统里被识别成标准 USB 鼠标和键盘,配合 iOS 的 AssistiveTouch(辅助触控),鼠标移动就是屏幕上的指针移动,一次点击就是一次轻触,一次拖拽就是一次滑动;板子通过 Wi-Fi 连到电脑执行简单行命令(move、click、type 等),所有逻辑都留在电脑上。大脑分两个角色:Planner 从目标和当前屏幕写出简短计划,Actor 看每一张新截图决定下一个动作(轻触、滑动、画路径、输入、按键、回主页、结束)。手机端不需要安装任何东西。
02|为什么今天值得关注?
- 为什么是现在:2026-10-11 首次开源(北京 10-12 03:10),到数据快照时已达 1646★ / 208 Fork——是本期窗口内星标最高的项目,也是三天补做期内热度最高的一个。它的价值不在于星标,而在于它用一个极简方案绕开了长期无解的生态限制。
- 以前为什么不容易做:让程序操作 iPhone 的主流路径是 XCTest / WebDriverAgent。这条路要求:一台 Mac、Xcode、一个被签名的 test runner App、以及 Apple 开发者账号(免费账号的签名 7 天就过期)。对个人开发者和小团队来说,这几个条件是连续的硬门槛。
- 为什么现在变得容易:作者换了一个思路——不走「开发者路径」,走「人用的路径」。人怎么操作手机?用眼睛看屏幕、用手指点。那么:屏幕可以用 AirPlay 镜像出来(系统自带功能),手指可以用 USB HID 模拟(ESP32 本来就支持),而 iOS 的 AssistiveTouch 本来就是为了「用外接设备操作手机」而存在。三个现成能力拼起来,就得到了一条完全不需要开发者账号的通路。而视觉模型的成熟,最终让「看图决定下一步」这件事变得可行。
03|案例的前世今生
前世。手机自动化是个老问题,长期被三条路线分割:越狱(能力强但风险高、门槛高、随时可能失效)、开发者工具链(XCTest / WebDriverAgent,能力正规但依赖 Mac + 签名,且受系统限制,多数场景只能操作无障碍树暴露的元素)、投屏 + 人工(成本最低但完全不自动)。共同缺陷是:没有一条路能同时做到「免越狱 + 免开发者账号 + 免装 App + 通用」。
发展。转折点是两个能力同时成熟:① 视觉模型可以直接看截图做决策,不再依赖无障碍树——这意味着「只要能拿到画面」,就能操作任何 App,包括游戏这种无障碍树几乎没用的场景;② 低成本硬件生态成熟,ESP32-S3 这类芯片自带原生 USB、价格只有几美元、社区工具链完善(arduino-cli + ESP32 core)。作者在 README 中列出并对比了多个同类项目,指出本项目在「无需开发者模式、无需手机装 App、无需签名」上做了区分。
今生。2026-10-11,作者把这套方案开源。真正让它成为「工程」而不是「Demo」的,是两处闭环设计:① 指针校准闭环——指针是相对坐标,服务器会跟踪它在哪里;每次点击前先「晃一下」指针,在镜像画面里找到它并纠正偏差,并且边操作边持续校准;② 动作确认闭环——每次动作后检查屏幕是否真的变了并把结果告诉模型,所以一次没点中会被发现并重试,而不是在错误的基础上继续往下做。这两条把一个「大概能点」的演示,变成了一个能自我纠错的系统。
下一步可能怎么发展(以下为分析 / 推演,非事实):① 从「操作手机」扩到「闲置手机农场」——用一批旧手机做自动化任务;② 与端侧模型结合,把延迟进一步压低;③ 成为移动端 App 自动测试的低成本替代方案;④ 在无障碍领域出现真正有意义的应用(为行动不便者提供手机操作代理)。
04|原始资料
05|作者是谁?
GitHub 账号 onehumanbeing,社交账号 @iamhenryyuan(X),并提供了 YouTube 演示视频。README 未提供更详细的个人背景,本报告不做推测。
可观察到的事实:提交记录中多次出现 Co-Authored-By: Claude Opus 5.5,说明项目借助 AI 编码工具开发;README 的对比表写得非常克制(明确区分自己的方案与其他同类项目的差异,而非笼统宣称「首个」),硬件选型也给出了具体的实测板型与购买渠道(含国内淘宝搜索关键词),工程诚实度较高。
06|解决了什么真实问题?
从使用者视角,问题是:「我想让程序自动操作我的 iPhone,但我不想越狱、没有 Mac、也不想注册开发者账号。」
- 移动端 App 测试:小团队做 App 测试需要真机验证,但搭一套正规的自动化测试环境(Mac + Xcode + 签名)成本高、维护烦,尤其是签名 7 天过期这件事本身就是持续的运维负担。
- 无障碍:行动不便者使用手机的辅助方式是有限的——AssistiveTouch 是系统能力的上限。一个能「看懂屏幕并代操作」的代理,在这个场景下有真实价值。
- RPA 与重复操作:手机上大量操作(签到、填表、批量查找、跨 App 搬运信息)无法用 API 完成,只能靠人点。
- 现有方案的痛点:越狱风险高;开发者工具链门槛高、能力受限(依赖无障碍树,游戏类场景基本无效);投屏方案只能看不能动。
- 关键突破:因为它「只看像素」,所以在任意 App 上都能用——包括游戏。这是无障碍树方案做不到的。
07|完整技术栈
| 硬件(眼睛) | 无需额外硬件——用 AirPlay 把手机屏幕镜像到电脑 |
| 硬件(手) | ESP32-S3 开发板(实测 Seeed Studio XIAO ESP32S3,约 $7;国内淘宝搜「XIAO ESP32S3」约 ¥40–50)+ USB 线 |
| 手机 | USB-C 机型直插;Lightning 机型需 Lightning to USB Camera Adapter。手机给板子供电 |
| 电脑 | macOS 或 Linux,需与手机同网络(跑 UxPlay 与 server) |
| 屏幕采集 | UxPlay(AirPlay 接收)+ GStreamer 管线 → JPEG 帧 |
| 板子固件 | ESP32-S3 固件(hardware/hid_bridge/),需 arduino-cli 与 ESP32 core 3.x;secrets.h 填 2.4GHz Wi-Fi 与服务器 IP |
| 服务端 | Python(server/,venv 安装),Web UI 在 http://<电脑IP>:8890 |
| 模型 | 任何接受图像的 OpenAI 兼容 chat API;Planner 与 Actor 可用同一模型,也可按角色分别覆盖配置;也可本地跑 |
| iOS 侧设置 | AssistiveTouch(辅助触控)开启——这是全流程唯一的手机端配置,且是系统自带功能 |
| 协议 | MIT |
对比表(作者公开,ESPC32 方案 vs XCTest/WebDriverAgent 方案):
| Apple 开发者账号 | 不需要 ←→ 需要(签名 runner) |
| Xcode | 不需要 ←→ 需要 |
| 电脑 | Mac 或 Linux ←→ 仅 Mac |
| 手机安装 App | 无 ←→ 需装 test runner |
| 越狱 | 不需要 ←→ 不需要 |
| 额外硬件 | ESP32-S3(约 $7)+ USB 线 ←→ 仅 USB 线 |
| 任意 App 可用(含游戏) | 是(只看像素) ←→ 多数可以,取决于无障碍树 |
08|完整 Workflow
① 用户下达目标:在网页里输入类似「打开设置,进入 Wi-Fi」这样的自然语言目标,点 Start
↓
② 眼睛 · AirPlay 采集:手机屏幕镜像到电脑上的 UxPlay → GStreamer 管线转成 JPEG 帧
↓
③ Planner(规划器):根据目标与当前屏幕写出简短计划
↓
④ Actor(执行器):看每一张新截图,选下一个动作——轻触 / 滑动 / 画路径 / 输入 / 按键 / 回主页 / 结束
↓
⑤ 手 · USB HID 执行:服务器经 Wi-Fi 给 ESP32-S3 发简单行命令 → 板子以标准 USB 鼠标 / 键盘身份执行 → AssistiveTouch 把指针动作翻译成触摸手势
↓
⑥ 指针校准闭环:点前先「晃指针」→ 在镜像画面里找到它 → 纠正偏差(边操作边持续校准)
↓
⑦ 动作确认闭环:检查屏幕是否真的变化 → 把结果告诉模型 → 漏点被发现并重试,而不是在错误基础上继续
↓
⑧ 循环 ③–⑦ 直到完成或判定结束
09|它到底是怎么实现的?
为什么它能工作(架构上的三个关键判断):
- 判断一:视觉输入可以替代无障碍树。主流手机自动化依赖系统暴露的元素树,但树在很多 App 里并不完整。改成「只看像素」之后,通用性直接拉满——代价是需要一个能看懂截图的模型(而这在 2026 年已经不是瓶颈)。
- 判断二:用「人机接口」而不是「开发者接口」。USB HID 是操作系统最底层的输入方式,系统无法区分它和人手(或真实鼠标键盘)。配合 AssistiveTouch 把指针映射为触摸,就等于获得了一个「通用手指」。这条路绕开了所有签名与权限体系。
- 判断三:把闭环做在「校准」和「确认」上。纯视觉方案最大的敌人是「点偏了」和「其实没点中但模型以为点中了」。作者用两个闭环解决:点前晃指针定位并纠偏、点后比对屏幕变化。这两条是「演示」与「可用系统」的分界线。
数据流:手机屏幕 →(AirPlay)→ 电脑 UxPlay →(GStreamer)→ JPEG → 视觉模型 → 动作指令 → 电脑 server →(Wi-Fi 行命令)→ ESP32-S3 →(USB HID)→ 手机系统 → AssistiveTouch → 触摸事件 → 屏幕变化 → 回到顶部。整个回路里,手机端没有任何常驻程序,逻辑全在电脑。
延迟(作者自述):关闭思考模式时约 1.3 秒 / 动作、2 秒 / 计划。作者给出的计时环境是本地模型(两块 NVIDIA DGX Spark、张量并行 TP=2)——这意味着这是「本地最优配置」下的数据,普通用户用云 API 的延迟未公开。
10|手把手复现
以下整理自项目 README 的官方步骤(非本报告推导)。
方式零 · 让 AI 编码助手代做(README 原文提供的提示词,可粘贴到 Claude Code / Codex):
Clone https://github.com/onehumanbeing/esp32-iphone-agent and follow its README
to set it up on this machine: flash the ESP32-S3 plugged in over USB, install UxPlay
and the server, write server/.env for my model API, start the server and give me the
web UI address. Ask me for the Wi-Fi name/password and the model API key.
Step 1 · 刷板子(需先装 arduino-cli 与 ESP32 core 3.x):
cp hardware/hid_bridge/secrets.example.h hardware/hid_bridge/secrets.h
# 编辑 secrets.h:填 2.4GHz Wi-Fi 名称/密码 + 运行 server 的电脑 IP
hardware/flash.sh # 可选参数:[串口] [--debug]
Step 2 · 装并启动 server:
# UxPlay —— macOS:
brew install uxplay
# UxPlay —— Debian / Ubuntu:
sudo apt install uxplay gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav
cd server
python3 -m venv .venv && .venv/bin/pip install -e .
cp .env.example .env # 填 LLM_BASE_URL / LLM_MODEL / LLM_API_KEY
set -a && . ./.env && set +a && .venv/bin/python -m hidagent
然后打开 http://<电脑IP>:8890。
Step 3 · 设置手机(只需一次):① 设置 → 辅助功能 → 触控 → 打开 AssistiveTouch;② 板子插手机,出现圆点指针,网页显示 controller connected;③ 控制中心 → 屏幕镜像 → iPhone Agent,网页出现实时画面;④ 网页 Manual controls → Calibrate,服务器自动校准。
Step 4 · 下任务:输入目标(如 "Open Settings and go to Wi-Fi")点 Start。本报告未实际执行上述任一步骤(未具备硬件条件)。
11|Prompt / Code / Config
作者公开的关键配置项(来自 README):
# hardware/hid_bridge/secrets.h —— 板子侧
2.4GHz Wi-Fi 名称 / 密码
运行 server 的电脑 IP 地址
# server/.env —— 电脑侧
LLM_BASE_URL # 任何 OpenAI 兼容的接口地址(可指向国产模型)
LLM_MODEL # 模型名
LLM_API_KEY # 密钥
模型侧的关键设计(README 原文):Planner 与 Actor 可以是同一个模型,也可以按角色分别覆盖配置——这意味着可以在「规划」上用强模型、在「逐步执行」上用便宜的模型,是一个很实用的成本控制点。
作者在 README 中还演示了两个完整任务:①「打开 Whiteboard 并画一个笑脸」——Agent 自己搜索 App、打开、连续笔画画脸;②「设置每天早上 7:00 重复的闹钟并保存」——Agent 打开时钟、输入 0700、勾选重复日、保存。两个示例均为作者自述,本报告未独立复现。
12|踩坑
已知限制 1 · 有些画面根本看不到。作者原文:iOS 不镜像某些界面——密码输入、Apple Pay、DRM 视频,Agent 看不到这些内容。(本报告补充:这既是限制也是安全边界——敏感界面天然被排除在视觉输入之外。)
已知限制 2 · 锁屏即停。手机锁屏则镜像停止,因此 Agent 工作期间应关闭自动锁屏。
已知限制 3 · 键盘只支持 ASCII。中文等非 ASCII 输入无法通过键盘通道完成(本报告推断这会影响所有中文场景,属重要限制)。
已知限制 4 · 暂不支持横屏 App。作者原文:在横屏场景下,绘图与点击会落到错误位置。游戏、视频、横屏阅读类 App 目前基本不可用,这与「任意 App 可用」的宣传口径存在边界,需读者注意。
已知限制 5 · 校准会漂移。改了 AssistiveTouch 的追踪速度后需要重新校准。多网卡 Linux 机器上若手机发现不了接收端,需把 Avahi(mDNS)限制到手机所在网络接口。
硬件与网络前提。需要 2.4GHz Wi-Fi(板子通常不支持 5GHz)、需要手机与电脑同网络、需要一块支持原生 USB 的 ESP32-S3。若手机需边用边充电,需用带供电直通的 USB-C hub。
13|中国用户能不能直接做?
- 国内访问:GitHub 可访问(部分网络需加速);UxPlay 与 GStreamer 均为开源本地软件;需注意 AirPlay 镜像功能本身是 iOS 系统能力,不受网络封锁影响。基本可用
- 注册:不需要 Apple 开发者账号——这是本案例最大的可用性优势。只需一个视觉模型的 API(可用国产)。
- API:任何 OpenAI 兼容接口均可,可直指国产模型(Qwen-VL / GLM-4V / 豆包等)。也可本地跑模型。
- 成本:板子国内约 ¥40–50(淘宝搜「XIAO ESP32S3」);软件全免费开源;持续成本仅为模型调用费或本地电费。这是极少数「一次性投入几十元」就能起步的 AI 硬件项目。
- 技术门槛:开发者级——需要装 arduino-cli 刷固件、配置 venv 环境、编辑环境变量文件。作者提供了「让 AI 编码助手代做」的路径来降低门槛,但仍需动手改配置。
14|国产替代方案
| 原方案 | 中国用户方案 |
视觉模型 (任何 OpenAI 兼容接口) | Qwen-VL / GLM-4V / 豆包视觉 / Kimi 视觉——官方支持:项目本身只要求「接受图像的 OpenAI 兼容 chat API」,接口层完全兼容,这是本项目对国内用户最友好的设计。视觉定位能力(看图找坐标)是这类任务的核心指标,建议实测对比。 另可本地部署 Qwen-VL 系列,实现「画面不出本机」——对涉及隐私的自动化场景尤为重要。 |
| 开发板 | 国内可直接买到等价板型——淘宝搜「XIAO ESP32S3」约 ¥40–50,或选任意支持原生 USB 的 ESP32-S3 板。已验证(作者原文给出国内购买指引) |
| UxPlay / GStreamer | Linux 下 apt 直装(Ubuntu / Debian 官方源),国内镜像可用。 |
| iPhone 设备 | USB-C 机型直插;旧 Lightning 机型需转接器(国内电商有售)。 |
| 中文输入限制 | 目前无解——键盘通道仅支持 ASCII。若需要输入中文,需改用其他方式(如剪贴板、或依赖 App 内的语音输入)。这是中国用户最需要提前确认的限制 |
15|中国企业可以怎么用?
- 企业场景 1 · App 测试与验收:中小型 App 团队做真机回归测试。相比正规测试链路,省掉了 Mac、Xcode 与开发者账号;但需注意横屏 App 目前不可用,测试范围要事先确认。
- 企业场景 2 · 自有 App 的重复性运营:例如内部工具、门店巡检、导购辅助等场景中大量「点几下就好」的操作,可以用低成本方式自动化。前提是操作在竖屏、不含非 ASCII 输入。
- 企业场景 3 · 设备兼容性验证:用一批旧手机 + 多块 ESP32 做兼容性冒烟测试,硬件成本极低。
- 企业场景 4 · 无障碍产品:为行动不便员工提供手机操作代理。这是本案例社会价值最高的方向,且与商业目标不冲突。
合规提醒:本项目不绕过任何系统安全机制(不越狱、不破解),本质是「外接输入设备 + 屏幕镜像」。但企业使用时仍应确认:目标 App 的用户协议是否允许自动化操作、是否涉及他人账号、是否触碰平台的自动化限制条款。
16|中国消费者可以怎么用?
- 闲置手机再利用:旧手机不再当主力机后,可以变成一台「可被 AI 操作的设备」——用于信息采集、日常签到、跨 App 数据搬运等重复劳动(但须自行确认各 App 的自动化条款)。
- 无障碍辅助:为家中行动不便的长辈搭一套「说一句话,手机自己操作」的辅助工具。这是本案例最贴近普通人生活的用法,且技术门槛可借助 AI 编码助手降低。
- 技术学习与硬件兴趣:对想入门「AI + 硬件」的人来说,这是目前成本最低(约 ¥50)且成果最直观的项目之一——能亲眼看到 AI 控制一台真实设备。
17|如何变成一个赚钱的项目?
- 产品化:项目为 MIT 开源,直接转卖不可行。可行的方向是「开箱即用的真机自动化套件」——预刷好固件的板子 + 一键安装包 + 中文配置向导,把当前需要「刷固件、配环境、改配置文件」的三步变成插上就能用。卖的是「省掉动手成本」。
- 服务化:为企业提供「低成本真机自动化」方案实施——帮客户选定场景、搭好环境、写好任务脚本。客单价来自场景理解而非硬件。
- 咨询化:帮企业评估「哪些手机端流程值得自动化、哪些受限制不可做」(横屏限制、ASCII 限制、隐私界面限制都需要专业判断)。
- 培训化:面向测试工程师与硬件爱好者的工作坊:「用 50 元让 AI 控制你的手机」。现场刷板子、现场跑通,体验感极强。
- 内容化:「50 块钱让 AI 学会用我的手机」是极好的视频选题——硬件 + AI + 可见效果,天然适合 B站 / 小红书 / YouTube。
- 行业化:为特定行业做定制(如门店设备巡检、教育机构的学生设备管理),把通用能力落到具体流程上。
18|变现路径
| 路径 | 客户 | 产品 / 服务 | 收费方式 | 难度 |
| 硬件套件 | 开发者 / 测试团队 | 预刷固件板 + 一键安装包 | 硬件 + 软件授权 | 中 |
| 实施服务 | App 团队 / 企业 IT | 自动化方案落地 | 项目制 | 中 |
| 场景咨询 | 企业数字化部门 | 可自动化边界评估 | 按天 / 按项目 | 低 |
| 培训 / 工作坊 | 测试工程师 / 创客 | AI + 硬件实操课 | 按场 / 按人 | 低 |
| 内容 IP | 技术爱好者 | 硬件 + AI 系列视频 | 课程 / 广告 / 社群 | 低 |
重要说明:以上为基于案例结构推导的潜在商业模式,不是已验证的商业结果。作者未公开任何收入、客户或变现数据。特别提醒:任何基于真机自动化的商业应用,都必须先确认目标 App 的用户协议与平台自动化条款,不得用于刷量、批量注册、薅取平台权益等违规用途。
19|如果我是一个中国独立开发者
假设 1 人、预算有限、有基础编程能力、优先使用国产模型,7 天 MVP 路线(以下为本报告建议,非作者原始步骤):
- Day 1:下单一块 XIAO ESP32S3(约 ¥45),同时把仓库 clone 下来读 README 与
secrets.example.h。等货期间先摸清整体结构。
- Day 2:货到后刷固件(arduino-cli + ESP32 core 3.x),确认板子插上手机后能出现指针。这一步是整条链最容易卡的地方,务必先跑通。
- Day 3:在 Linux 或 Mac 上装 UxPlay + server,把
.env 指向国产视觉模型,跑通「截图 → 模型 → 动作」的最小回路。目标不是完成任务,而是确认延迟可接受。
- Day 4:用一个最简单的竖屏任务实测(如「打开设置→进入 Wi-Fi 页面」),记录失败率与失败原因(点偏?模型看错?动作没生效?)。
- Day 5:针对 Day 4 的失败原因做改进:调整模型、改 Planner/Actor 的角色分配(用强模型规划、便宜模型执行),或加长校准频率。
- Day 6:把跑通的任务脚本化(复用 README 里的提示词形式),做成一个可重复执行的命令。
- Day 7:用一个真实场景向潜在客户演示(若做 App 测试,就演示一次回归流程),同时主动说明横屏与中文输入的限制——诚实交代边界比夸大能力更容易拿到第一单。
关键判断:这条路线里最值钱的是 Day 4 与 Day 6——失败原因分析与任务脚本化。硬件本身是开源的,谁都能买;但「知道它在哪里会失败、以及怎么绕开」是实际交付能力。另外,Day 3 用国产视觉模型替换是本项目对中国开发者最实际的价值点。
20|如何迁移到其他行业
① App 测试外包真机回归测试服务:用低成本硬件替代高成本测试环境,按测试轮次收费。
② 门店与现场作业用固定手机 + AI 代理完成巡检、打卡、数据录入等重复性竖屏操作。
③ 无障碍辅助设备为养老机构、康复中心提供「语音指挥手机」的辅助方案,社会价值与商业价值并存。
迁移公式:低成本外接硬件(绕过权限门槛)+ 视觉模型决策(不依赖无障碍树)+ 校准与确认闭环(把演示变成可用系统)。这套公式同样适用于其他「有屏幕但没有开放 API」的设备。
21|培训课程设计
| 课程名称 | 《用不到 50 元让 AI 控制一台真机:视觉 Agent + 硬件入门》 |
| 适合人群 | 测试工程师、嵌入式爱好者、AI 应用开发者、创客、想入门 AI 硬件的人 |
| 建议时长 | 半天(3 小时,建议含硬件实操) |
| 30 分钟 Demo | 现场演示 AI 完成一次「打开设置→进入 Wi-Fi」,全程只看到手机自己在动 |
| 60 分钟 Workshop | 学员亲手刷固件 + 插板子 + 完成校准,看到网页出现实时画面 |
| 半天课程 | 完整链路拆解(AirPlay 采集 / USB HID 注入 / Planner+Actor / 双重闭环)+ 国产模型接入 + 限制与边界专题 |
| 课程目标 | 理解「视觉 + 人机接口」这条绕过生态限制的通用思路,而不只是学会装这个项目 |
| 学员最终能够 | 独立完成硬件环境搭建,并用国产视觉模型跑通一个自定义竖屏任务 |
| 现场 Demo | 故意让 AI 点偏一次,展示「动作确认闭环」如何发现并重试 |
| 学员练习 | 设计一个竖屏、纯 ASCII 输入的任务,并预测它可能在哪里失败 |
| 课后作业 | 提交「任务设计 + 失败记录 + 你如何绕过限制」 |
| 企业迁移 | 企业内训时替换为「本公司 App 的自动化测试可行性评估」 |
22|培训师点评
这个案例最值得教的,是「换一条路」的思维方式。所有人都在想办法突破苹果的开发者限制,作者的解法是干脆不走开发者路径——用屏幕镜像当眼睛、用 USB HID 当手,全部用系统本来就提供的功能。真正让它可用的是两个不起眼的闭环:点前校准、点后确认。学员该带走的是这两条设计,而不是硬件本身。
23|最终判断
说明:落地性评为「高」——成本极低(约 ¥45 硬件)、软硬件全部开源、模型可用国产替换,且已获得 1646★ 的社区验证。中国市场相关性评为「中」,主要因为「键盘仅支持 ASCII」这条限制会直接影响中文场景,且横屏 App 目前不可用——这两条需要在动手前确认清楚。复现难度「中」:主要卡点在刷固件与网络环境(2.4GHz Wi-Fi、同网络),作者已提供 AI 代做路径来降低门槛。
02
把整本书变成有声书:默认引擎跑在本地的 CosyVoice 3,零账号、零订阅、不按字收费
AI + 内容生产
语音克隆
CosyVoice 3
全本地运行
首次开源 2026-10-11
57★ / 5 Fork
一句话结论:它把「做有声书」从一项按字计费的外包服务,变成了一次装好之后不再花钱的本机操作——而支撑这件事的默认引擎,是阿里开源的 CosyVoice 3。
01|案例是什么?
Folivox 是一个把整本书转成有声书的工具。你把 FB2、EPUB、DOCX、PDF 或 TXT 丢进去,选一个声音,按下渲染,它输出带章节、封面和元数据的 .m4b 或 .mp3。它同时提供 Web 工作台(folivox ui,支持 9 种界面语言)和命令行,底层是同一条流水线。最关键的一点写在 README 第一段:开箱默认使用 CosyVoice 3——一个能从短样本克隆音色的开源模型,完全跑在你自己的机器上:没有账号、没有订阅、没有按字符收费、什么都没有上传。当然它也留了在线引擎的口子(ElevenLabs、OpenAI、Gemini、Cartesia),用你自己的 key 即可切换。
02|为什么今天值得关注?
- 为什么是现在:2026-10-11 首次开源(北京 10-12 05:04),窗口内持续提交。它出现的时间点很关键——开源 TTS 的质量刚刚跨过「做有声书够用」这条线,而这正是「按字计费」这门生意被动摇的时刻。
- 以前为什么不容易做:做有声书的成本结构一直很硬:真人录制最贵;外包 TTS 服务按字符或按小时计费,一本 10 小时的书成本可观;而且长文本有大量脏活——多音字、数字和单位怎么读、罗马数字、金额、章节结构、诗歌与题词的特殊排版。更麻烦的是渲染中途失败就意味着从头再来。
- 为什么现在变得容易:四个条件同时到位:① 开源 TTS 支持从几秒样本克隆音色,不需要训练;② 本地推理速度可接受(Apple Silicon 的 Metal、NVIDIA CUDA 都有成熟支持);③ Whisper 这类开源 ASR 可以对合成结果做自动回听质检;④ 消费级显卡与统一内存的容量,已经能装下这些模型。这四条合起来,意味着「做有声书」第一次可以在本机免费完成闭环。
03|案例的前世今生
前世。有声书制作的演进很清楚:① 真人录制——质量最好、成本最高、产能最低;② 传统 TTS 合成——便宜但机械感重,长文本听感差,多音字与数字朗读经常出错;③ 云端神经语音——质量大幅提升,但按字符 / 按小时计费,长内容的成本被放大,且文本必须上传到服务方(对未出版物、内部资料、个人手稿来说,这是实质性的顾虑)。
发展。转折发生在开源语音模型的成熟上。CosyVoice 系列(阿里通义实验室开源)把「短样本音色克隆 + 可本地部署」变成了公开能力,且采用宽松许可(权重 Apache-2.0)。同时 Whisper 系列提供了可靠的自动转写,让「机器自己检查自己读得对不对」成为可能。但把这两块能力拼成一条能跑完一本书的流水线,仍然是一件需要工程耐心的事——这正是 Folivox 补上的位置。
今生。2026-10-11,作者开源了这条流水线。它把工程细节做扎实了:五步管线(文本解析 → 语音规范化 → 分句打包 → 合成 → 质量控制);每个分片用 Whisper 回听,不匹配就重读,保留最好的一版(--takes 默认 3 次);每个完成的分片都记日志,停止、崩溃、断电后重跑会继续。第二条尤其重要——它把「一本 10 小时的书」从「一次不能出错的长时间任务」变成了「可以随时中断的增量任务」。
作者还给出了一条几乎免费的推荐路径:用在线模型生成约 10 秒的语音样本(约 $0.0023/10 秒)→ 用 Whisper 排名保留最佳样本 → 用 CosyVoice 3 克隆该音色 → 本地免费渲染整本书。也就是说,只需为「10 秒样本」付一次钱,之后的全部渲染都是零成本。
下一步可能怎么发展(以下为分析 / 推演,非事实):① 与电子书阅读器 / 笔记工具打通,实现「本地书库一键有声化」;② 多角色配音(按对话人物分配音色);③ 与本地书源结合,形成完全离线的个人有声图书馆;④ 对国内而言,公版书与网文的有声化是一个明显的规模机会。
04|原始资料
05|作者是谁?
GitHub 账号 vatavale。README 中明确写明「Folivox is maintained by one person」(由一个人维护),未提供姓名、机构、社交账号或地域信息,本报告不做任何推测。
可观察到的工程特征:项目状态自标 early development(早期开发),但安装体验做得相当完整——一条命令安装脚本、跨平台支持、模型断点续传下载、folivox update / folivox uninstall 生命周期管理、密钥存入系统钥匙串而非配置文件。这是一个「早期但认真」的项目形态,也是它被评为可复现的原因。
06|解决了什么真实问题?
从使用者视角,问题有两层:
- 成本层:「我要把一本 10 小时的书变成有声书,不想按小时付费。」云端服务按小时计费(本项目 README 给出的同类参考价约为 $0.8 / 小时音频,10 小时约 $8)。单本看不多,但如果要处理一整个书库,这就是一笔持续支出;而且费用随内容量线性增长,无法通过技术优化摊薄。
- 隐私层:「这些文本不能上传。」对未出版手稿、企业内部资料、个人日记、客户文档来说,「必须上传到服务方」常常是直接否决项。本地运行是唯一的解法。
- 工程层:「长文本的脏活太多。」数字、日期、金额、单位、罗马数字怎么读;章节、嵌套段落、诗歌、题词的结构怎么保留;渲染到第 8 小时崩了怎么办。这些都不是模型能力问题,而是工程问题——而恰恰是决定「能不能真的做完一本书」的问题。
07|完整技术栈
| 语言 | Python 3.10–3.12 |
| 默认 TTS 引擎 | CosyVoice 3——开源、短样本克隆音色、完全本地运行(无账号 / 无订阅 / 无按字计费 / 不上传) |
| 可选在线引擎 | ElevenLabs · OpenAI · Gemini · Cartesia(自带 key,存 OS 钥匙串) |
| 质检 | Whisper / faster-whisper / mlx-whisper——每个分片回听比对 |
| 本地语音设计 | Qwen3-TTS |
| 硬件支持 | Apple Silicon(Metal GPU,Whisper 走 MLX)· NVIDIA CUDA · 纯 CPU(可运行但更慢) |
| 依赖 | FFmpeg · PyTorch · PyMuPDF · EbookLib · python-docx · Starlette · Typer · Rich · uv |
| 输入格式 | FB2 · EPUB · DOCX · PDF · TXT |
| 输出格式 | .m4b / .mp3(含章节、封面、元数据) |
| 界面 | Web studio(folivox ui,9 种界面语言)+ 命令行 |
| 语言覆盖 | 书语言 9 种:俄、英、德、法、西、意、中、日、韩 |
| 模型体积 | 约 6 GB 语音模型 + 1.6 GB 质检模型 ≈ 7.6 GB(安装器支持断点续传) |
| 协议 | Apache-2.0(vendored 的 CosyVoice 推理代码 Apache-2.0;Matcha-TTS 与 Whisper 部分 MIT;CosyVoice 3 权重 Apache-2.0,下载而非重分发) |
08|完整 Workflow
① 文本解析:读取 FB2 / EPUB / DOCX / PDF / TXT,保留章节、嵌套段落、诗歌、题词等结构
↓
② 语音规范化:数字、日期、金额、单位、罗马数字等按目标语言正确读出(这是长文本朗读最容易翻车的地方)
↓
③ 分句、打包成分片(fragments)
↓
④ 合成:本地 CosyVoice 3(免费)或在线引擎(自带 key)
↓
⑤ 质量控制:每个分片用 Whisper 回听,与原文不匹配就重读,保留最好的一版(--takes 默认 3)
↓
⑥ 合成为有声书文件:输出 .m4b / .mp3,带章节、封面与元数据
↓
断点续传机制:每个完成的分片都写入日志(journal)——停止、崩溃、断电之后重新运行会从断点继续,而不是从头再来
推荐工作流(README 给出的「几乎免费」路径):
① 用在线模型(如 Gemini)生成约 10 秒的语音样本(约 $0.0023 / 10 秒)
↓
② 用 Whisper 排名,保留最佳 take,存入语音库
↓
③ 用 CosyVoice 3 克隆该音色
↓
④ 本地免费渲染整本书——不再产生任何按字 / 按小时费用
09|它到底是怎么实现的?
几个让它「真的能做完一本书」的设计:
- 分片(fragment)+ 日志(journal)=可中断的长任务。把整本书拆成大量小分片,每个分片完成后写日志。这是把「10 小时的一次性任务」变成「10 小时的增量任务」的关键——长任务最大的风险不是慢,而是失败后必须重来。
- Whisper 回听=用 ASR 给 TTS 做质检。合成后的分片再转写成文字,与原文比对,不匹配就重读并保留最好版本。这是一个「用另一个模型检查这个模型」的通用模式,在本期两个补做期里已经出现过两次(10-10 期的旁白转写校验用的是同一思路)。它解决的是「AI 无法自我评估主观质量」的问题:把主观听感转化为客观文本比对。
- 语音规范化单独成一步。数字、日期、金额、单位、罗马数字的读法被抽成独立环节,而不是丢给模型碰运气——这是长文本朗读质量的隐性门槛,也是自研脚本与直接用 API 的关键差别。
- 引擎可插拔但默认本地。README 的表述很明确:「它是一个应用,背后有很多引擎。书可以由免费的本地模型朗读,也可以由 ElevenLabs、OpenAI、Gemini 或 Cartesia 用你自己的 key 朗读。」默认值是本地,在线是可选项——这个默认值的取向决定了隐私边界。
- 密钥不落盘。README 原文:key 存在环境变量或操作系统钥匙串里,从不写入配置文件。
10|手把手复现
以下整理自项目 README 的官方说明(非本报告推导)。
方式一 · 一条命令(推荐):
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/vatavale/folivox/main/scripts/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/vatavale/folivox/main/scripts/install.ps1 | iex
方式二 · git 克隆:
git clone https://github.com/vatavale/folivox.git
cd folivox
bash scripts/install.sh
安装器会自动配置 uv、ffmpeg、匹配硬件的 PyTorch,并下载模型(约 6 GB 语音模型 + 1.6 GB 质检模型,支持断点续传)。
启动:folivox ui → 浏览器打开 studio → 拖入书 → 选声音 → 按 Render。
维护命令:folivox update / folivox uninstall(会先确认是否删模型)/ folivox uninstall --everything(连语音和设置一起删)/ uv tool uninstall folivox(删程序本身)。
本报告未实际执行上述任一步骤(需下载约 7.6 GB 模型且需相应硬件),请以仓库最新 README 为准。
11|Prompt / Code / Config
作者公开的关键可配置项(来自 README):
# 质检重试次数
--takes N # 默认 3:每个分片最多重读的版本数,保留最好的一版
# 在线引擎成本上限
--max-cost # 使用在线引擎时先预估再确认,可设上限
# 密钥存放(不落配置文件)
环境变量 或 操作系统钥匙串
引擎选择:默认本地 CosyVoice 3;在 studio 里粘贴任一家在线服务的 key 即可切换(ElevenLabs / OpenAI / Gemini / Cartesia)。
值得注意的设计:「先预估再确认 + 可设成本上限」是使用在线引擎时的标准做法,与 10-11 期案例 01(lead-signal-listener)的「单次运行预算」思路一致——这两个补做期反复出现了同一个工程模式:涉及按量计费的操作,必须提供预算闸门。
12|踩坑
坑 1 · 模型体积与硬件门槛是真实门槛。需要约 7.6 GB 模型空间,且 Apple Silicon(Metal)/ NVIDIA CUDA / 纯 CPU 三种路径速度差异明显。README 明确表示「渲染时间取决于你的硬件,所以我们不给出具体数字」——作者拒绝编造一个性能数字,这个态度本身值得记录。
坑 2 · PDF 只支持文本层,没有 OCR。扫描版 PDF(图片型)无法直接处理,需要先自行 OCR。这一点在做旧书、影印本、公版书扫描件时是硬阻塞。
坑 3 · 项目处于早期开发阶段。README 自标 early development。这意味着接口、配置项与工作流都可能变动,不建议直接用于生产环境的关键路径。
坑 4 · 音色克隆的伦理与法律边界。README 原文要求:只能用「你自己的声音,或你有明确授权使用的声音」,并明确说明 Folivox 不附带任何名人或第三方声音。这是使用本工具的前置合规条件,不可忽视。
坑 5 · 在线引擎会把内容发出去。README 提示:使用在线引擎时,文本与音频会发送给相应提供商,并可能产生费用。如果隐私是选择本工具的理由,就不要混用在线引擎。
13|中国用户能不能直接做?
- 国内访问:GitHub 可访问(部分网络需加速);安装脚本会从 GitHub 拉取,国内网络环境下可能需要代理或镜像。模型与代码均为本地运行,不依赖境外服务。需自行验证
- 注册:本地路径零注册;仅在选用在线引擎时才需要相应账号。
- API:本地路径不需要任何 API Key。直接可用
- 成本:本地路径 0 元(除电费)。若走「10 秒样本 + 本地克隆」的推荐路径,成本约为 $0.0023(一次样本费用)。在线引擎路径约 $0.8 / 小时音频(10 小时书约 $8)。
- 技术门槛:有一定门槛——一条命令安装,但需要约 7.6 GB 磁盘空间与可用的 GPU / Apple Silicon;纯 CPU 能跑但慢。不是「点一下就完」的工具级别。
14|国产替代方案
本案例的情况比较特殊:它的默认引擎本身就是国产开源模型,因此不存在「用国产替换海外依赖」的问题,反而是「国产模型被海外项目选为默认」。这值得单独说明:
CosyVoice 3 (本项目默认引擎) | 阿里通义实验室开源,Apache-2.0 权重,支持短样本音色克隆。已被本项目选为开箱默认引擎——这是国产开源语音模型在海外项目中被默认采用的一个实际例证。 同时项目还把 Qwen3-TTS(同样来自通义)用于本地语音设计。 |
| 在线引擎(可选) | 国内可替换为 MiniMax 语音 · 火山引擎语音 · 讯飞 · 通义语音——中文自然度与情感表现在中文有声书上通常更有优势,且成本明显低于国际服务商。 |
| Whisper 质检 | 可替换为 FunASR / Paraformer(阿里开源)等中文 ASR,中文回听准确率可能更好(本报告未验证替换成本)。 |
| 中文朗读质量 | 本项目已支持中文作为书语言(9 种之一),但中文的多音字、量词、姓氏读音是特有的难点,建议实际试听一本书后再决定是否用于正式内容。 |
15|中国企业可以怎么用?
- 企业场景 1 · 知识付费与出版:把已有的电子书、专栏、课程讲义批量转成有声内容,投放到音频平台。核心价值是成本结构改变——一旦本地环境搭好,第 2 本书到第 100 本书的边际成本接近于零。
- 企业场景 2 · 内部培训材料:把员工手册、合规文档、操作规范转成音频,供通勤、外勤场景收听。这类内容通常不能上传第三方——本地运行正好解决这个前提问题。
- 企业场景 3 · 无障碍与公共文化服务:图书馆、公益机构、教育机构为视障读者提供有声内容。这类机构往往内容量大、预算有限,正是本地化方案最匹配的场景。
- 企业场景 4 · 有声内容出海:支持 9 种书语言,同一本书可产出多语种版本(需确认各语种的实际听感质量)。
16|中国消费者可以怎么用?
- 个人有声书库:把自己买的无 DRM 电子书、下载的公版书做成有声版,用自己或家人克隆出来的音色朗读——这是一个过去不存在、现在才成立的用法。
- 听书辅助学习:把教材、技术文档、长篇报告转成音频,利用通勤与运动时间。
- 给孩子或长辈做内容:用自己克隆的音色朗读童话或家书,作为陪伴型音频内容(注意:使用他人音色须获得授权)。
- 网文与个人创作:自写的小说、长文可以低成本产出有声版,用于平台投稿或自我留存。
17|如何变成一个赚钱的项目?
- 产品化:项目为 Apache-2.0 开源,直接转卖不可行。可行的产品化方向是「中文有声书工业化生产服务」——不是卖软件,而是卖「把一批书变成一批有声书」的交付能力,同时配合人工审听形成质量承诺。
- 服务化:「有声书代制作」。成本结构与外包截然不同:你的边际成本主要是机器时间与电费,而不是按小时购买 TTS 额度。这让你可以在报价上做出与现有服务商完全不同的价格结构。
- 咨询化:帮出版机构 / 知识付费团队搭建本地有声化流水线(含硬件选型、模型部署、质量控制规范)。「数据不出内网」是这类咨询的核心卖点。
- 培训化:面向内容团队的工作坊:「自己搭建一条本地有声书生产线」。包含硬件预算、模型选择、多音字处理与质检标准。
- 内容化:「我用自己克隆的声音读完了整本书」是极强的内容选题;也可做「公版书有声化」类账号,版权风险低(须逐本确认公版状态)。
- 行业化:面向特定内容类型的定向方案(法律文书朗读、医疗科普、儿童读物、外语学习材料),每类都有不同的规范化需求与质检标准。
18|变现路径
| 路径 | 客户 | 产品 / 服务 | 收费方式 | 难度 |
| 有声书代制作 | 出版社 / 知识付费团队 / 个人作者 | 成品有声书交付 | 按本 / 按小时 | 中 |
| 流水线实施 | 出版机构 / 图书馆 / 培训机构 | 本地有声化生产线搭建 | 项目制 + 维护费 | 中 |
| 本地化隐私方案 | 对数据出网敏感的企业 | 纯内网语音内容生产 | 项目制 | 高 |
| 培训 / 工作坊 | 内容团队 / 创作者 | 本地有声书生产实操 | 按场 / 按人 | 低 |
| 内容 IP | 音频平台受众 | 公版书有声化 / 自制有声内容 | 平台分成 / 广告 | 中 |
重要说明:以上为基于案例结构推导的潜在商业模式,不是已验证的商业结果。作者未公开任何用户量或收入数据。合规底线:① 音色克隆必须使用本人声音或已获明确授权的声音,不得克隆他人(包括名人)音色;② 有声化他人作品前必须确认版权状态;③ 本项目 README 已明确「不附带任何名人或第三方声音」,使用者不得自行引入侵权音色。
19|如果我是一个中国独立开发者
假设 1 人、预算有限、有基础编程能力,7 天 MVP 路线(以下为本报告建议,非作者原始步骤):
- Day 1:评估硬件条件——是否有 Apple Silicon 或 NVIDIA 显卡、是否有约 8 GB 可用磁盘。若只有 CPU,先把预期降到「能跑,但慢」,避免第一天就挫败。
- Day 2:完成安装并跑通一本书的第一章(不要直接上整本)。目标是确认端到端能出音。
- Day 3:专门测中文难点:多音字(「还行」「一行字」)、数字与金额(「1.5 万」「2026 年 10 月」)、姓氏、缩写与英文混排。列出出错清单——这份清单就是你未来交付的质量控制项。
- Day 4:用
--takes 调整质检强度,观察「增加重读次数」对质量与耗时的影响,找出你的成本 / 质量平衡点。
- Day 5:测中断恢复——渲染中途强制结束进程再重跑,确认断点续传是按预期工作的。这一步决定了你能否承接长书订单。
- Day 6:用公版书(如已进入公有领域的经典作品)完整产出一本书,同时用国产 ASR 做一次独立回听复核,形成你的质检流程文档。
- Day 7:把「一本公版书有声版 + 质检报告 + 成本结构说明」作为作品集,去找第一批客户(出版机构、知识付费团队、有声平台)。
关键判断:这条路线里最值钱的是 Day 3 的「中文出错清单」与 Day 6 的「质检流程文档」。工具人人可装,但「知道中文有声书在哪些地方会翻车、以及怎么发现翻车」是交付能力。另外 7.6 GB 模型与硬件要求意味着这不是零成本启动——但相比每次渲染都付费,前期一次性投入的硬件成本可以被快速摊薄。
20|如何迁移到其他行业
① 无障碍服务图书馆与公益组织的有声读物生产:内容量大、预算有限、对隐私敏感,本地化方案天然匹配。
② 企业培训与合规把内部规章、安全手册、操作流程转成音频,用于通勤与外勤场景,且内容不出内网。
③ 医疗与法律把专业文书、患者教育材料、法规条文转成可听版本,本地运行满足隐私要求。
迁移公式:本地推理(隐私与成本)+ 分片与日志(长任务可中断)+ 模型互检(把主观质量变成客观比对)+ 规范化前置(领域特有的读法规则)。这套公式同样适用于字幕制作、视频配音、长文档朗读等场景。
21|培训课程设计
| 课程名称 | 《在自己电脑上建一条有声书生产线:从电子书到成品有声书》 |
| 适合人群 | 内容创作者、出版从业者、知识付费团队、有声书从业者、AI 应用开发者 |
| 建议时长 | 半天(3 小时) |
| 30 分钟 Demo | 现场把一本书的开头三页变成有声片段,对比「本地引擎」与「在线引擎」的成本与听感 |
| 60 分钟 Workshop | 学员完成安装 + 跑通自己带来的一本书的第一章,并记录中文出错点 |
| 半天课程 | 完整五步管线 + 质检机制 + 断点续传演示 + 中文规范化难点专题 + 版权与音色授权合规 |
| 课程目标 | 理解「本地推理 + 模型互检 + 可中断流水线」这套长内容生产的通用范式 |
| 学员最终能够 | 独立产出符合自己质量标准的成品有声书,并说清成本构成与版权边界 |
| 现场 Demo | 故意在渲染中途中断,展示断点续传如何避免从头再来 |
| 学员练习 | 找出 5 个中文朗读错误,判断哪些能靠规范化规则解决、哪些需要人工介入 |
| 课后作业 | 完成一本公版书的有声版,提交「质检报告 + 成本核算 + 版权状态说明」 |
| 企业迁移 | 企业内训时替换为「本机构内容的本地有声化流程与合规规范」 |
22|培训师点评
它教的是「用另一个模型给这个模型把关」。AI 无法评估自己的听感,于是把合成分片再转写成文字与原文比对——把主观质量变成客观检查,这个思路可以搬到字幕、配音、翻译等一切「输出是感官内容」的场景。另外值得教的是它拒绝给出渲染时间数字的态度:不知道就不说。
23|最终判断
说明:中国市场相关性评为「高」——它的默认引擎就是国产开源模型(CosyVoice 3 / Qwen3-TTS),中文是受支持的书语言,且涉及隐私的文档本地化需求在国内非常真实。落地性「高」(一条命令安装、本地零成本、已有完整生命周期管理);复现难度「中」(约 7.6 GB 模型 + 实际硬件要求是真实门槛)。商业价值与变现潜力评为「中」:代价是硬件前置投入与项目早期状态,且有声书制作是一个已有成熟服务商的存量市场,需要靠「本地 + 隐私 + 极低边际成本」这三条差异化切入,而不是靠技术领先。