Voice2Obsidian:记录不再依赖打字,Obsidian 才真的变成了我的第二大脑

DATE: 2026.06.23 CAT: 项目 VIEWS: 41 TAGS: #vibecoding

今天看到 @serena_xinxin 这个博主说了一个思路,利用苹果手机的 ActionButton 一键可以语音识别,然后直接保存到 obsidian 目录里,这个感觉用来保存一些临时的灵感真的太棒了!

你为什么立即要用Obsidian+AI搭建第二大脑?保姆级教程|Claude Code+Obsidian
文章地址:https://www.youtube.com/watch?v=RZEb6FLZSHE

image.png

博主介绍的方式是,通过苹果手机的 ActionButton 键,用快捷指令一键实现语音转文字,然后保存到 obsidian 的库中。但是我尝试后,感觉有个很不好的体验,就是这个转写识别率非常低。所以...萌生了一个新的想法。

一、起点:一个很简单的想法

一开始,我看到一个博主分享了一个很有意思的玩法:

他用 iPhone 的 Action Button(操作按钮),按一下就开始录音,然后自动把语音转成文字,最后直接写进 Obsidian。

这个流程让我很心动,因为它解决了一个很现实的问题:

📌 很多灵感,其实不是“写不出来”,而是“懒得打开 App”

如果能做到“按一下就记录”,那体验会完全不一样。


二、第一步尝试:苹果自带语音识别

我一开始想的是:

既然 iPhone 已经有语音转文字功能,那是不是可以直接用?

结果很快就发现问题:

❌ 准确率不稳定
❌ 中文识别有时会乱
❌ 长语音效果更差

最关键的是:

它不适合“做结构化记录”

比如我想要的是:

  • 自动时间
  • 自动归档
  • 自动写进 Obsidian

但系统听写做不到这些。


三、开始踩坑:我尝试了各种方案

然后我开始“工程化”这个想法。

1️⃣ 第一种尝试:Base64 上传

我想:

👉 能不能把录音转成 Base64,然后直接上传到服务器?

结果:

  • 转码可以成功
  • 但 API 经常失败
  • 解析不稳定
  • 很多时候返回空结果

这一版基本算是失败。


2️⃣ 第二种尝试:Cloudflare Worker 中转

我又换了一种更“工程化”的方式:

👉 用 Cloudflare Worker 做中转层

思路是:

  • iPhone 上传音频
  • Worker 转发
  • 再调用语音识别 API

但是问题又来了:

❌ 语音识别 API 需要“文件地址”,而不是临时数据

也就是说:

👉 你必须有一个“可以访问的文件链接”

否则语音识别服务根本无法处理。


四、关键转折:我意识到必须要“存储层”

到这里我才意识到一个关键问题:

我缺的不是代码,而是“文件存储层”

语音识别系统本质上需要:

  • 一个稳定的文件地址(URL)
  • 可以被云端访问

于是我开始思考:

👉 那是不是要自己搭一个“中转站”?


五、最终方案:自己搭了一个小网站 + OSS

最后我做了一个非常简单但稳定的架构:

📌 新流程:

  1. iPhone 录音
  2. 上传到我自己的 PHP 网站
  3. 网站把音频存到阿里云 OSS
  4. OSS 生成可访问链接
  5. 再调用语音识别 API
  6. 返回文字结果
  7. 写入 Obsidian

ChatGPTImage202662400_12_14.png

六、结果:终于稳定了

这一版跑通之后,体验变成了这样:

📌 按一下按钮 → 3~4 秒 → 自动生成笔记

平均速度大概在:

  • 3 ~ 4 秒左右

已经足够日常使用。


七、最大的收获

这个项目让我最大的感受不是“技术实现”,而是:

1️⃣ 很多问题不是代码问题,而是架构问题

比如:

  • Base64 不稳定
  • Worker 不适合传文件
  • API 需要 URL 而不是数据流

2️⃣ “中间层”才是关键

最后真正稳定的方案,其实很简单:

👉 多做了一层“文件中转 + 存储”

系统就稳定了。


3️⃣ 最终形态其实很朴素

最后我的系统并不复杂:

  • 一个 PHP 服务
  • 一个 OSS 存储
  • 一个语音识别 API

但它解决了一个非常真实的问题:

👉 随时记录想法


八、结尾

这个项目做完之后我才意识到:

很多“看起来很简单的产品体验”,背后其实是完整的工程系统。

而最重要的不是技术有多复杂,而是:

能不能让用户“少一步操作”。

v2o1.png

中转站:https://v2o.lianjie.co