Vibe Coding练习项目:开发一个“AI 零笔记”引言
作为一个经常观看海外技术视频的求职者,我一直有个痛点:视频干货很多,但做笔记太耗时。听完一场微软开发者频道的分享,要暂停、回退、手敲重点,效率极低。于是我开始折腾一个工具——AI 零笔记,让 AI 在后台默默把视频声音录下来、转成文字、再提炼成 Markdown 笔记,视频放完笔记也就写好了。
这篇文章就来讲讲这个项目的设计思路、技术栈、以及目前 demo 阶段的产出。
1. 项目定位:不只是转录,而是直接给你“笔记”
市面上自动生成会议纪要的工具很多,但大多只停留在转录,把语音变成一坨巨大的纯文本,你得自己从头梳理。而我想要的是结构化笔记,就像听课时在 Notion 里敲的那种:
- 有标题、摘要
- 关键点用列表展开
- 专业术语单独列成中英文词汇表
- 甚至把讲者提到的代码片段摘出来
所以 AI Zero Notes 的定位非常明确:视频在播,笔记在手。 它通过一条自动化流完成 系统音频捕获 → 语音转文字(ASR)→ AI 总结提炼 → 输出 Markdown 笔记,整个流程无需任何手动操作。
2. MVP 功能:和“智能实习生”配合的四步闭环
根据当前 MVP 的需求文档,核心功能拆成四步:
2.1 系统音频捕获
为了避免录进环境噪音,软件只捕获系统输出声音(“立体声混音”或 macOS 的 BlackHole 虚拟设备),而不是麦克风。用户可以在听海外视频的同时做别的事,录制支持开始/暂停/停止,并有波形或时长提示。
2.2 语音转文字(ASR)
目前最稳妥的方案是直接对接 OpenAI Whisper API(也预留了其他 ASR 服务商的接口)。音频分段上传并转写,拿到带时间戳的纯文本。在 demo 后端中,我配置了 ASR_DEFAULT_PROVIDER 环境变量,可以切换 whisper 或自定义 challenger,方便未来做识别准确率对比。
2.3 AI 智能总结——用“Power User”的方式来写提示词
这是最核心的一步。视频转写出来的文本可能很长、很口语。如果直接丢给大模型说“帮我总结一下”,你大概率会拿到一坨平均质量的内容(就是我们内部开玩笑说的 “AI Slop”)。
在项目一开始,我就单独设计了一套 高阶提示词方案,它本身就是 AI Zero Notes 的第一个产出物。下面是当时用一段 AI 教学视频转录后,经过专门优化的提示词(Prompt)所生成的结构化笔记,我把它保存为了 Markdown 文件:

这份笔记名为 “AI Prompting Mastery: From Novice to Power User”,内容本身就是一个 教人写更好提示词的指南,非常切题地成了本项目 AI 总结模块的“心法”。
它里面有一些亮眼的概念,比如:
- AI Novice vs AI Power User:新手把 AI 当 Google 用,高手把 AI 当成“聪明实习生”,给足上下文、问中立问题、不断迭代。
- Sycophancy(谄媚):AI 倾向于附和用户的偏见,所以提问时要警惕,用评分标准(Rubric)来让 AI 客观评价。
- Iterate(迭代):通过反复反馈打磨输出,拒绝一次性生成。
- AI Slop:指低质、千篇一律的 AI 产出,我们设计总结提示词时重点要避免这个。
这些思想被直接应用到了本项目的后端代码里。实际工作时,系统会将转录文本连同类似上面这种“写作要求”一并发给大模型(如 OpenAI Chat API 或 DeepSeek 兼容接口),让模型把自己当成高水平的笔记整理者,而不是一个机械的总结机器。
2.4 笔记输出与预览
最终生成的笔记直接存为 .md 文件,文件名可以包含视频标题或时间戳。前端会提供一个干净的预览界面,支持复制全文,或者不满意也可以重新生成(这就用到了“迭代”思想)。
3. 技术栈一览:Java 21 + Vue 3 + OpenAI API
整个工程命名为 ai-no-note,采用前后端分离架构,刚好覆盖全栈开发者的日常技能栈。项目结构很清爽:
▼text复制代码ai-no-note/ ├── backend/ # Java 21, Spring Boot 3 └── frontend/ # Vue 3 + Vite + TypeScript
后端核心
后端是整个流水线的编排者,主要做三件事:
- 接收 MP3 文件上传(后续会集成实时音频流)。
- 调用外部 ASR 服务(Whisper 等)进行转写。
- 将转写文本发给 LLM 做结构化总结,并输出 Markdown 文件。
具体的配置完全基于环境变量,方便在不同环境中切换模型,比如:
SUMMARY_BASE_URL,SUMMARY_API_KEY,SUMMARY_MODEL控制摘要模型。DEEPSEEK_BASE_URL,DEEPSEEK_API_KEY,DEEPSEEK_MODEL作为备选。APP_OUTPUT_DIR指定笔记文件输出路径。
因为目前是 demo,我们只支持了 .mp3 文件的上传(最大 25MB),通过 REST API 返回下载链接。未来接入系统音频流后会封装成实时管道。
前端交互
前端基于 Vite + Vue 3,目前是一个简洁的单页面:上传文件按钮,点击生成,然后等待 Markdown 结果渲染出来。后面会加入录制控制条和实时转写预览。
一个有趣的小工具:ASR 准确率对比
为了选更好的语音识别方案,我顺手在后端加了一个 /api/notes/compare-transcription 接口。你可以上传同一个 MP3 和对应的正确抄本(referenceText),它会同时调用 Whisper 和自定义的 challenger ASR,返回双方的转录文本以及 WER(词错误率)。这样量化比较,对后期优化帮助很大。
4. 用提示词“心法”做总结:一次实践产出
回到前面那张笔记截图,里面出现了一个中英对照术语表:
| 英文 | 中文 | 解释 |
|---|---|---|
| Prompt | 提示词 | 输入给 AI 的文本 |
| Context | 上下文 | 提供背景信息以获得更佳回答 |
| Sycophancy | 谄媚 | AI 迎合用户偏见的倾向 |
| Rubric | 评分标准 | 指导 AI 客观评估的准则 |
| Iterate | 迭代 | 通过反馈反复优化输出 |
| AI Slop | AI垃圾 | 低质、千篇一律的 AI 生成内容 |
| Thinking Partner | 思考伙伴 | 用 AI 进行头脑风暴与协作探索 |
这套术语表正是当我把一段关于“如何进阶使用 AI”的音频转录后,让大模型按照 “输出中英对照术语表 + 多层次要点分层” 的要求自动提炼出来的。 md笔记中更详细地展示了 Level 1(基础错误)的关键点。可见,只要 prompt 设计得当,AI 可以稳定输出非常标准的结构化笔记——这就是 AI Zero Notes 的最终交付形态。
5. 未来计划:从 Demo 到开源个人作品
目前的 MVP 跑通了 上传 MP3 → 返回 Markdown 的一条链路,demo效果如图:

输出的markdown笔记效果如下,是不是初见端倪了?

但离“打开视频即自动生成笔记”的理想形态还有几步:
- 实时系统音频流:在 Electron 或桌面版前端中直接捕获系统声音,不再依赖手动录好的 MP3。这是下一步的重点。
- 本地 Whisper 模型:减少对网络 API 的依赖,让转写在无网或弱网下也能工作。
- 历史记录与搜索:保存过去的笔记,支持全文搜索。
- 多语言/口音优化:针对非英语母语讲者(如印度口音的英文技术视频)做提示词和模型微调。
整个项目的原创设计、前端后端代码和提示词方案,我会在完善后全部开源到 GitHub,作为自己的一个独立作品,也希望能帮到有相同需求的学习者。
结语
AI Zero Notes 的初衷就是消灭“知识过耳即忘”的焦虑。你专心听讲,AI 用心整理。把语音转录、大模型总结和程序员常用的 Markdown 工作流串起来,确实能给视频学习体验带来一个小而美的质变。如果你对这类工具有兴趣,或者有更好的提示词技巧,欢迎一起交流,让我们的“智能实习生”干得更出彩。
