你有没有过这种经历:开会到一半,突然一句关键分工从耳边飘过,你下意识抬起手腕,按下 Apple Watch 的录音键。语音备忘录多了一条新录音,然后……就没有然后了。我翻过自己的语音备忘录,里面躺着四十多条录音,最早的是半年前的,大部分我再也没点开过。不是不想整理,是整理成本实在太高——回听一小时录音,手打摘要,抽待办,光是想想就放弃了。这个项目的出发点很简单:把 Apple Watch 当成一个纯粹的"捕获设备",让 AI 接管后面所有脏活累活,录音进去,结构化的摘要、决策和待办出来。最终做出来的效果,就是一枚手腕上的 AI 录音助手。
这个项目适合两类人。一类是像我这样会议多、想法碎、手上又总有别的活的打工人;另一类是刚入手 Apple Watch、想让它从"看时间工具"变成"生产力工具"的玩家。门槛不高,核心资产生态:一块 Apple Watch、一台 iPhone、一个能跑 Python 的轻量服务器。整体方案里既有硬件选型、快捷指令搭建,也涉及 Whisper 转录、大模型摘要、自动化回推这些 AI 工作流的关键环节,我会把我踩过的坑原原本本写出来,包括那些文档里查不到的细节。
1. 为什么是"手表+AI",而不是换个录音笔
1.1 被忽略的痛点:录音不是目的,"整理"才是
很多人以为录音助手的核心是"录得清"。真正用过一段时间就会发现,录音质量只是起点,真正的痛点是人很少愿意回去听录音。我统计过自己的使用习惯:录音完成后一周内会回听的概率大概只有三成,一个月后基本为零。因为录音是原始数据,不是信息。原始数据要变成信息,必须经过转录、分段、去口语、提炼要点、划出待办这一整套处理,而这些步骤做起来太累,于是录音就成了手机里只进不出的数字杂物。
Apple Watch 恰好把这个问题放大了。它让录音变得太容易了,抬手就能录,导致积压速度远超手机录音的时代。但苹果官方只提供了"录"的能力,没有提供"消化"的能力。语音备忘录的转录功能在很多地区不可用,就算可用也只给你文本,不给你要点、不给你待办。所以我的判断是:纯靠系统自带功能,录音这条链路永远走不通,必须外挂一个 AI 处理层。
1.2 方案定位:手表负责捕获,AI 负责消化
这个项目从设计第一天就把分工定死了。Apple Watch 只做一件事:在最方便的时候,以最低的摩擦把声音捕获下来。它可以忍受录音质量不如专业设备,因为后续有 AI 兜底;它可以忍受不能本地处理,因为服务器会接盘。AI 层则负责所有"重计算":语音识别、语义理解、信息结构化,甚至判断一段录音里哪些话是废话、哪些才是真正的行动项。
把重活放到远端还有一个额外好处:录音处理能力可以持续升级。今天用 Whisper,明天有更好的开源模型,直接换就行,不需要动手表。这也是我坚持不把手表端"塞满"算法的原因。手表的算力、内存、续航都是稀缺资源,与其让它气喘吁吁地跑一个小模型,不如让它安安静静当好麦克风。
1.3 适合谁,不适合谁
如果你要录的是发布会现场、嘈杂餐厅里的对话,或者需要 48kHz/24bit 高保真素材,这个方案不适合你,Watch 的麦克风阵列本身就存在物理上限。但如果你是像我一样,录的内容是工作会议、灵感碎片、电话沟通后的复盘、课堂讲座,那这套链路完全够用,而且体验远超传统录音笔。
我也测试过一个折中替代方案:用手机录音、手表只做快捷触发。实际用下来反而不如直接在手表上录。原因很简单,手机掏出解锁打开录音 App 的操作成本,在快速场景里仍然太高,而手表上的一个表盘复杂功能点击就能开始。所以最终的定位很明确:手表是捕获入口,AI 是消化引擎,两者缺一不可。
2. 整条 AI 工作流是怎么设计的
2.1 录音端:为什么锚定"语音备忘录 + 快捷指令"
技术选型时我一开始考虑过第三方录音 App,比如 Just Press Record 或者自带云同步的录音工具。但最后放弃了,原因有三个:稳定性、系统集成度、以及成本。第三方 App 在 watchOS 上的后台录音策略随时可能变化,而系统自带的语音备忘录是和 watchOS 深度绑定的,录音可靠性最高。更关键的是,快捷指令(Shortcuts)能够访问到系统录音能力,这给了自动化拼接的可能。
快捷指令在 Watch 上可以运行"录制音频"操作,并把录音得到的文件作为变量传给下一步网络请求。这意味着我可以完全不用写任何手表 App,纯靠快捷指令拼出一条自动化链路。开发成本几乎为零,系统升级后适配成本也很低,这对我来说是最重要的。
2.2 传输层:一个轻量上传接口搞定
录音文件从 Watch 到服务器,技术路线其实很多:iCloud Drive、AirDrop、WebDAV、自建上传接口。实际对比后,自建一个简单的 HTTP 上传接口是最可控的方案。原因是录音文件一旦落到 iCloud,你就得等它同步,还得在快捷指令里去"获取文件",中间环节多,延迟不可控。直接在快捷指令末尾调用一个上传接口,把录音文件 multipart 传上去,立刻就能收到"已上传"的反馈,链路最短。
接口本身不需要任何花哨功能,我给它设计了两件事:接收音频文件并保存,转录完成后允许客户端用录音 ID 查询结果。同步阻塞不是好选择,因为转写可能要几十秒。异步轮询虽然多写一点代码,但体验顺滑得多。用 FastAPI 实现这个接口只要几十行代码,后面会有完整实现。
2.3 处理层:ASR 与 LLM 的分工与选型
录音文件到了服务器后,第一件事是把它变成文字。这一步我选了 OpenAI 开源的 Whisper 模型,而不是云服务商的付费语音识别 API。原因有几层:一是 Whisper 对中文、中英混说的支持都相当稳,甚至能自动补出标点,这对后续摘要非常关键;二是开源模型意味着数据不用经过第三方识别服务,隐私上更可控;三是不按分钟计费,个人使用成本几乎为零,唯一成本是机器 CPU/GPU 时间。
转录完成后进入第二层:摘要与结构化。这一步和 ASR 是解耦的,选型思路完全不同。摘要需要模型理解上下文、筛选重点、归纳决策,这不是语音识别模型能干的,得换成大语言模型。我倾向于把整段文字交给 LLM,而不是分段喂,因为跨段信息关联对摘要质量影响很大。如果录音特别长,可以先用滑动窗口做粗筛,再整体精炼。Prompt 设计我后面会贴出来,这块直接决定输出质量。
2.4 回推层:让结果回到手腕
AI 处理完的摘要如果不能回到手表,方案就缺了最后一块拼图。苹果生态里最简单的回推方式是快捷指令定时拉取,然后用 iOS 通知展示。我每天在固定时间跑一个"日报"快捷指令,从服务器取当天所有录音的摘要,拼成一份纯文本,发到通知中心。想要更进一步的,可以让服务端返回 JSON 数组,快捷指令逐条读取并调用"添加新提醒事项",把待办自动写进系统提醒事项。
我实际用的是双通道:紧急的、需要立刻跟进的事情在录音结束后几分钟内就通过推送到达;零散的、不那么急的内容进日报统一消化。回推层不需要手表端做任何事,因为 iOS 通知会自动同步到 Watch 上,信息最终以一次抬腕看到提醒的方式闭环,体验非常自然。
3. 实操搭建:三阶段实现一个可跑的录音助手
3.1 阶段一:Watch 端一键录音与自动上传
先在 iPhone 上打开快捷指令 App,新建一个快捷指令,命名为"会议速记"。添加第一个操作"录制音频"。这个操作在 watchOS 上可用,点击后手表会进入录音界面,再次点击停止,返回一个音频文件变量。接着添加"发送文件"操作,URL 填你的服务器上传接口地址,比如https://你的域名/api/upload,方法选 POST,请求体选"文件",文件变量选上一步的音频文件。
最后加一个"显示通知"操作,标题写"录音已上传",这样每次录制完都能第一时间知道链路是否成功。整个快捷指令只有三个操作,但可以跑通"录音→上传"的完整链路。把它添加到 Watch 表盘上的快捷指令复杂功能,抬腕点击就能启动。
快捷指令构建清单: 1. 录制音频(Watch 端) 2. 发送文件 → https://your-server.com/api/upload 3. 显示通知:录音已上传这个阶段最容易遇到的问题是 Watch 和 iPhone 之间的文件同步延迟。我实测下来,Watch 上的录音文件要等几十秒才会出现在 iPhone 的语音备忘录里,但只要快捷指令使用的是"录制音频"操作内部返回的文件变量,就不依赖语音备忘录同步,它是直接把手表本地录制的临时文件发给服务器,速度反而更快。
3.2 阶段二:服务端转录与摘要处理
服务器端我用了 FastAPI,Python 生态下最省事的方案。接收上传后,先把文件落到临时目录,然后调用 Whisper 做转录。Whisper 建议用small以上的模型,tiny和base对中文口语的识别会明显吃力。命令行大致是这样:
whisper meeting.m4a --model small --language zh --output_format txt --output_dir ./out转录完成后,读取生成的 txt 文件,交给 LLM 做摘要。我用的 Prompt 参考如下:
你是一个会议记录助手。以下是某段录音的转写文本。 请整理出: 1. 讨论主题 2. 关键要点(用简洁的条目) 3. 明确决策 4. 待办事项及其负责人(如果文本中有) 要求:省略客套话和重复内容,输出用中文。把转录文本拼接在 Prompt 后面,调用大模型 API 拿摘要。这里有个细节:正式录音往往会包含大量口头禅、重复和无关闲聊,所以我在 Prompt 里主动要求"省略客套话和重复内容",这能让摘要质量提升一个档次。处理结果同时保留原始文本和摘要,一起存入 SQLite 数据库,方便查询。
3.3 阶段三:把摘要变成提醒事项与日报
服务端加一个GET /api/latest接口,返回最近一两条录音的处理结果,iPhone 端的快捷指令定期访问这个地址,就能把结果拉下来拼成通知。如果想让待办自动进系统提醒事项,可以让服务端返回 JSON,结构约等于:
{ "id": "abc123", "summary": "讨论了Q3排期,确定下周上线", "todos": ["确认上线日期", "联系设计团队"] }iPhone 上的快捷指令用"获取 URL 内容"拿到 JSON 后,用"从列表中选取"和"添加新提醒事项"两个操作组合,就能把todos数组逐条写入提醒事项。这个自动化可以放在"每天 20:00"运行一次,也可以配合个人自动化,在特定地点或时间触发。
我在这个阶段还加了一个轻量日报接口:汇总当天所有录音的摘要,返回纯文本。快捷指令每天早晨跑一次,把摘要串成早报通知。实测下来,这个日报比录音本身有用得多,因为它是已经消化过的信息流,抬腕扫一眼就能回忆昨天说了什么。
3.4 成本与配置清单
整个系统我不建议一开始就追求完美配置。先在一个最低可行版本上跑起来,再逐步加 server 能力。我自己的参考配置如下:
| 组件 | 用途 | 成本参考 |
|---|---|---|
| Apple Watch | 录音终端 | 已有设备 |
| iPhone | 快捷指令与通知中枢 | 已有设备 |
| 轻量云服务器 | 部署 FastAPI + Whisper | 约 30~80 元/月 |
| Whisper small | 本地语音转写 | 免费 |
| 大模型 API | 摘要与结构化处理 | 个人使用约 5~20 元/月 |
| SQLite | 记录处理结果 | 免费 |
转录对 CPU 的消耗比较大,1 小时录音在小规格服务器上可能要转十几分钟。如果不想等,建议服务器带 GPU,或者干脆用云函数的异步方案,录音先落对象存储,再触发转录任务。我目前就是用一台小 CPU 实例 + 异步任务队列跑的,没有 GPU,但配合消息通知后,使用者并不会感知到延迟。
4. 踩坑实录:这些问题我花了三个晚上才解决
4.1 Watch 端快捷指令的限制与对策
第一个坑是"发送文件"操作在 Watch 上并不是总是可用。我最初在 iPhone 上构建好快捷指令后,直接同步到 Watch,点击运行发现卡在发送文件。排查结果是 watchOS 某个版本对"发送文件"支持不完整,必须先在 iPhone 上手动运行一次该快捷指令,让它完成权限授权,之后在 Watch 上才能正常跑。这个操作在苹果官方文档里写得很隐晦,我是在快捷指令的"运行历史记录"里看到授权提示才确定的。
第二个坑是长录音超时。手表通过蓝牙转发文件的速度有限,一次超过十分钟的录音,上传过程很容易在中途断开。我的对策是给快捷指令加了一个"继续在 iPhone 上运行"的设置,让实际上传发生在手机网络环境。代价是运行过程中要保证手机在附近,但对绝大多数会议场景来说这不是问题。
第三个坑跟快捷指令的变量类型有关。"录制音频"返回的音频变量在某些 watchOS 版本里,类型会被识别成"文稿",导致后续"发送文件"操作报错。解决方法是加一个"获取文件"操作,把音频变量显式转换成文件类型,再发送。这个兼容性处理在 watchOS 10 上尤其重要。
4.2 录音质量到底有多影响转录效果
这是模型层面的经典问题,我说点直观数据。我在三种环境下各录了 3 分钟中文语音做测试:
| 环境 | Whisper small 准确率表现 | 备注 |
|---|---|---|
| 安静办公室 | 基本没有错字 | 直接可读 |
| 咖啡厅背景音 | 少量错字,专有名词容易错 | 需要 Prompt 纠正 |
| 多人会议说话重叠 | 句子粘连严重 | 必须分段 + 说话人分离 |
多人会议是最难搞的场景。Watch 的单麦克风没有空间指向性,一旦两个人同时开口,转录结果几乎没法看。我的应对是把录音文件按时长切分为 30 秒片段,分别转录再拼接,虽然不能解决重叠,但至少可以减少长段落里的错误传导。如果是重要会议,还是建议配一个领夹麦,通过蓝牙接到 iPhone 上录,然后再跑同一条 AI 链路。
专有名词也是一个高频翻车点。比如团队内部的项目代号、客户公司名、英文缩写,Whisper 第一次基本都会认错。解法有两个:一是在 Prompt 里提供术语表,让 LLM 在摘要时自动纠正常见错词;二是用 Whisper 的initial_prompt参数,把专有名词列表传进去,能明显提升识别率。我现在就在快捷指令的服务器端维护了一份全局术语表,每次转录前自动注入。
4.3 隐私、功耗与续航的取舍
把录音传到服务器,很多人第一反应是隐私问题。我的处理原则是:录音文件到达服务器后,转录完成立即删除原音频;数据库只保留文本摘要和结构化结果;服务器启用 HTTPS 并限制上传接口调用频率。这样即使服务器被攻破,攻击者拿到的也只是处理后的文本,而不是原始语音。如果你所在场景涉及敏感信息,可以在这条链路后面再叠一层本地脱敏,先过滤身份证、手机号之类的字段再调大模型。
功耗方面,Watch 录 10 分钟音频大约消耗 5%~8% 电量,连续 1 小时录制会在 30% 以上。我的使用习惯是会议录音这种高频场景控制在 20 分钟以内,长内容转向 iPhone 内录。重要的是不要让手表长期处于"正在上传"状态,所以我在快捷指令里做了失败后自动停止上传、保留文件待手动处理的分支,避免手表因为反复重试而耗电。
4.4 常见问题速查表
把这些排查经验整理成表格,方便直接对照:
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| 快捷指令在 Watch 上缺"发送文件" | watchOS 版本兼容性 | 在 iPhone 上先完整运行一次再同步 |
| 上传到一半超时 | 蓝牙传输慢 | 开启"继续在 iPhone 上运行" |
| 录音文件类型报错 | 变量类型识别为文稿 | 加"获取文件"操作显式转类型 |
| 中文转录错字率高 | 模型太小/背景噪音 | 换 small 以上模型、切分 30 秒片段 |
| 专有名词识别错误 | 术语表缺失 | 用 initial_prompt 注入术语表 |
| 录完没有推送 | 服务器回调失败/接口被风控 | 检查日志,加失败重试与通知确认 |
| 服务器转录太慢 | CPU 规格低 | 换 GPU 实例或用异步队列 |
这条链路跑起来之后,我最大的感受是:问题本身不可怕,可怕的是每一步都像黑盒。所以我在服务器日志里留了三处关键节点——收到文件、转录完成、摘要完成——每个节点都记录耗时。出了任何问题,一眼就能定位是卡在哪一环节。
5. 这个项目还能长成什么样:从录音助手到语音 Agent
5.1 会议纪要自动生成,顺手把周报也写了
一旦你手里有了稳定可靠的"录音→摘要"流水线,下一件顺理成章的事就是自动生成会议纪要。我现在已经可以把一场 40 分钟的部门周会录音,变成一份五百字左右的纪要,包含议题、结论、下一步行动,直接发到团队协作群里。这个能力完全来自上面那条链路,只在末尾加了一个"打开协作平台页面"的快捷动作。
周报也一样。每周日晚上,我把本周所有录音摘要拼在一起,让大模型按"本周进展"“下周计划""风险项"三个板块重新组织,就成了一篇周报初稿。以前这部分要花我半小时以上,现在我只需要打开校对一遍。这是整个项目里我使用频率最高的能力,也最能体现"录音助手"这个词的价值——它的产出不是文字,而是可以直接使用的工作成果。
5.2 待办自动拆解,再也不用整理"过期录音"
摘要里出现的待办,目前是用快捷指令逐条写进系统提醒事项的。这已经能用,但我还在尝试把这一步做得更"主动"一点:让 LLM 不只输出纯文本,而是输出 JSON 数组,包含每件事的截止时间、优先级、负责人,然后由一个轻量 Agent 判断:这件事该进日历、该进项目看板、还是该转给协作工具。这就是一套典型的 AI Agent 工作流,录音助手不再只是记录仪,而是一个会分配任务的执行者。
目前的实现比较克制。我不打算让它自动发送任何对外消息,只自动写入提醒事项和日历,因为自动化的边界一旦放太开,出错的代价会很高。建议你起步时也把 Agent 限制在"只写本地待办"这个范围内,等跑顺了再逐步开放权限。
5.3 多语言转录与跨设备知识库
Whisper 天然支持多语言,所以这套方案对英文、中日文录音也能转录。我试过用英语采访素材跑整条链路,转录质量出乎意料地好,摘要直接用中文输出也没问题。这意味着你可以把一次海外电话会的录音,变成一份中文要点摘要,这对信息消化效率的提升非常明显。
跨设备知识库是我最近在折腾的方向。把每次录音的摘要按日期、主题、项目标签存入一个小型知识库,之后想看某个客户的历史沟通脉络,不用再翻几个月前的录音,直接按标签查摘要就行。再激进一点,可以让大模型基于知识库内容做问答,那就变成了一个"随身记忆库"。对我来说,这个扩展方向的前景比"录音转文字"本身大得多。
5.4 与 AI 生态组合的更多玩法
这套结构本质上是"捕获设备 + AI 工作流 + 行动输出"的组合,换成不同的捕获端和输出端,玩法可以完全不一样。比如把输入从 Watch 换成汽车里的 Siri,就能变成一个"行车灵感记录器";把输出从提醒事项换成简报接口,就能变成一个"团队情报汇总站"。核心的 AI 处理层完全复用,变的是外围设备。
我还测试过一次多 AI 协作的结构:Whisper 负责听写,一个专门的说话人分离模型负责区分"谁在说",大模型负责语义摘要,三个模型串成一条流水线,效果比单个全能模型更好。这说明在 AI 场景里,模型拆分的价值经常被低估。如果一个模型干不好三件事,往往不是模型不行,而是你该给它配两个队友。
最后说两句实在话
做这个项目最大的收获,是让我重新认识了 Apple Watch。它本来只是一个通知提醒器,但在 AI 工作流的加持下,变成了一个低摩擦的信息输入口。它录出来的声音,经过服务器上模型的消化,最终转化成提醒、摘要、知识库里的条目——信息在整条链路中不断被提纯,最后变成行动。
我个人的建议是别急着一步到位。先搭一条最原始的链路:Watch 录音,自动上传,回传摘要文本。用一周,感受一下哪里卡、哪里慢、哪里用得别扭,再决定要不要加待办自动写入、说话人分离、知识库这些高级功能。这套东西强在可迭代,每一次录音都在给你提供改进的测试样本。那些积在语音备忘录里没整理的旧录音,也别急着删,它们是最好的数据源。