Voice2Obsidian:记录不再依赖打字,Obsidian 才真的变成了我的第二大脑
今天看到 @serena_xinxin 这个博主说了一个思路,利用苹果手机的 ActionButton 一键可以语音识别,然后直接保存到 obsidian 目录里,这个感觉用来保存一些临时的灵感真的太棒了!
你为什么立即要用Obsidian+AI搭建第二大脑?保姆级教程|Claude Code+Obsidian
文章地址:https://www.youtube.com/watch?v=RZEb6FLZSHE

博主介绍的方式是,通过苹果手机的 ActionButton 键,用快捷指令一键实现语音转文字,然后保存到 obsidian 的库中。但是我尝试后,感觉有个很不好的体验,就是这个转写识别率非常低。所以...萌生了一个新的想法。
一、起点:一个很简单的想法
一开始,我看到一个博主分享了一个很有意思的玩法:
他用 iPhone 的 Action Button(操作按钮),按一下就开始录音,然后自动把语音转成文字,最后直接写进 Obsidian。
这个流程让我很心动,因为它解决了一个很现实的问题:
📌 很多灵感,其实不是“写不出来”,而是“懒得打开 App”
如果能做到“按一下就记录”,那体验会完全不一样。
二、第一步尝试:苹果自带语音识别
我一开始想的是:
既然 iPhone 已经有语音转文字功能,那是不是可以直接用?
结果很快就发现问题:
❌ 准确率不稳定
❌ 中文识别有时会乱
❌ 长语音效果更差
最关键的是:
它不适合“做结构化记录”
比如我想要的是:
- 自动时间
- 自动归档
- 自动写进 Obsidian
但系统听写做不到这些。
三、开始踩坑:我尝试了各种方案
然后我开始“工程化”这个想法。
1️⃣ 第一种尝试:Base64 上传
我想:
👉 能不能把录音转成 Base64,然后直接上传到服务器?
结果:
- 转码可以成功
- 但 API 经常失败
- 解析不稳定
- 很多时候返回空结果
这一版基本算是失败。
2️⃣ 第二种尝试:Cloudflare Worker 中转
我又换了一种更“工程化”的方式:
👉 用 Cloudflare Worker 做中转层
思路是:
- iPhone 上传音频
- Worker 转发
- 再调用语音识别 API
但是问题又来了:
❌ 语音识别 API 需要“文件地址”,而不是临时数据
也就是说:
👉 你必须有一个“可以访问的文件链接”
否则语音识别服务根本无法处理。
四、关键转折:我意识到必须要“存储层”
到这里我才意识到一个关键问题:
我缺的不是代码,而是“文件存储层”
语音识别系统本质上需要:
- 一个稳定的文件地址(URL)
- 可以被云端访问
于是我开始思考:
👉 那是不是要自己搭一个“中转站”?
五、最终方案:自己搭了一个小网站 + OSS
最后我做了一个非常简单但稳定的架构:
📌 新流程:
- iPhone 录音
- 上传到我自己的 PHP 网站
- 网站把音频存到阿里云 OSS
- OSS 生成可访问链接
- 再调用语音识别 API
- 返回文字结果
- 写入 Obsidian

六、结果:终于稳定了
这一版跑通之后,体验变成了这样:
📌 按一下按钮 → 3~4 秒 → 自动生成笔记
平均速度大概在:
- 3 ~ 4 秒左右
已经足够日常使用。
七、最大的收获
这个项目让我最大的感受不是“技术实现”,而是:
1️⃣ 很多问题不是代码问题,而是架构问题
比如:
- Base64 不稳定
- Worker 不适合传文件
- API 需要 URL 而不是数据流
2️⃣ “中间层”才是关键
最后真正稳定的方案,其实很简单:
👉 多做了一层“文件中转 + 存储”
系统就稳定了。
3️⃣ 最终形态其实很朴素
最后我的系统并不复杂:
- 一个 PHP 服务
- 一个 OSS 存储
- 一个语音识别 API
但它解决了一个非常真实的问题:
👉 随时记录想法
八、结尾
这个项目做完之后我才意识到:
很多“看起来很简单的产品体验”,背后其实是完整的工程系统。
而最重要的不是技术有多复杂,而是:
能不能让用户“少一步操作”。
