Obsidian插件-声音转文字#
产品名称(中) | 语音转文字 |
---|---|
产品名称(En) | Voice2Text |
产品简介 | Voice2Text是一款接入OpenAI 模型的语音转文字插件,支持录音及暂停、语音转文字、录音文件保存等。与 Obsidian 集成,帮助用户记录方便通过录音转文字记录日记等。 |
产品类型 | Obsidian 插件 |
Github | https://github.com/Alllen66/obsidian-voice2text |
产品安装 | Obsidian > 点击浏览社区插件 > 搜索 “Voice to Text” |
AI 编程软件清单 | Cursor |
开发时长1 | 1.5 天 |
开发日期 | 2025/04/04 |
项目背景#
为什么想开发?#
声音输出的效率比文字高,而且能保留比文字更多的信息,比如音色、情绪、现场等。但是声音的输出效率又文字低,对于受众,阅读比听力更快,而且文字更方便未来的分析、总结、复盘等。 因此,我需要一个"声音+文字"结合的笔记系统。用声音来输入,支持存档,支持转译成文字。这样既完全地记录了个体某个时刻的生活状态,又方便于未来的分享与使用。
为什么要开发?#
市场上的产品无法满足需求吗?为什么要重新开发? 声音转文字已经是非常成熟的技术,大体上市场上主要分为两种产品:一种是输入法产品,比如苹果手机自带输入法就支持语音输入;一种是笔记产品里的功能,比如 Flomo 手机版就新推出了AI 语音笔记功能。 输入法产品不是我寻求的功能,正如需求所言,保存录音是重要的需求;其次是市场上的语音识别做得不好,当前 LLM 的语音技术更加成熟,而且API 调用非常方便且便宜。 Flomo 手机版的语音 AI 转译正是我想要的功能,也说明了该需求在笔记场景的真实性。Flomo 当前产品未能满足我以下需求:1. 不支持电脑版,而电脑记笔记是我的核心场景,语音转译后我需要二次编辑,电脑才是更适合的工具;2. 不支持暂停,语音输入经常会卡壳,不支持暂停就会变成多条笔记,体验很差;3. 最后也是重要的,我已经把个人知识库迁移至 Obsidian,而 Obsidian 没有这个插件。(后续会出一个系列说明 Obsidian 构建个人知识库的好处) 正如《穷查理宝典》所言,小红母鸡说:“那么我就自己来做吧。” Then I’ll do it myself.
实战步骤#
零编程开发网页插件:怎么做?#
第一步,明确功能需求#
基于项目的背景信息,首先列出大致的产品需求:
- 开发一款 Obsidian 插件
- 支持在笔记编辑时录音
- 录音支持暂停、取消与保存
- 保存后支持对录音进行 AI 转译
- 支持保存转译后的文字 也可以通过与AI 助手交流,提示词可以遵循 RGIA 原则:
- Role 角色:指定 AI 的角色
- Goal 目标:陈述目要完成的事情或目标
- Input 输入:描述背景信息或提供输入数据
- Attention 备注:提供约束条件或注意事项
示例如下:
# Obsidian 录音与 AI 转译插件开发提示
请开发一个 Obsidian 插件,具备录音和 AI 语音转文字功能,满足以下需求:
## 核心功能
1. **录音功能**
- 通过快捷键(默认 `Ctrl+Alt+R`)和界面按钮启动/停止录音
- 支持无时长限制的录音
- 提供暂停/继续功能
- 录音状态可视化指示器(如小图标显示录音中状态)
2. **AI 转译功能**
- 默认使用 OpenAI Whisper API
- 支持扩展其他 AI 服务(如 Google Speech-to-Text、Azure Speech Service)
- 转译完成后直接将文本插入当前光标位置的笔记中
3. **文本格式与处理**
- 自动在转录文本前添加时间戳标题:`## 录音记录 [YYYY-MM-DD HH:MM]`
- 转录结束添加小标记:`[由AI转录]`
- 长文本自动分段处理
- 在文本中添加录音文件的链接
4. **录音文件存储**
- 永久保存录音文件到指定文件夹
- 默认保存在 Obsidian 库内的 "recordings" 文件夹
- 文件命名格式:`YYYY-MM-DD_HH-MM-SS.mp3`
- 在转录文本中插入指向录音文件的链接
## 技术实现要点
1. **插件结构**
- 使用 Obsidian 插件 API
- 模块化设计:录音模块、API连接模块、设置模块、存储模块分离
2. **录音实现**
- 使用 Web Audio API 实现浏览器内录音
- 录音数据保存为音频文件(优先 mp3 格式,节省空间)
- 支持常见音频格式(如 mp3、wav)
3. **API 连接**
- 实现对 OpenAI Whisper API 的调用
- 支持用户配置自己的 API 密钥
- 使用队列处理可能的并发请求
4. **用户界面**
- 提供设置面板配置 API 密钥、默认语言等
- 状态栏指示器显示录音状态和转录进度
- 提供简洁的录音控制按钮(开始/暂停/停止)
5. **文件存储管理**
- 使用 Obsidian 文件 API 管理录音文件
- 创建并检查存储文件夹是否存在
- 生成内部链接格式以便在笔记中引用录音
6. **安全与隐私**
- 明确的用户数据使用声明
- 音频数据仅存储在用户指定位置
- 不收集用户录音内容到插件开发者处
## 设置选项
1. 快捷键自定义
2. API 提供商选择与配置
3. 默认语言设置(中文/英文)
4. 转录质量选择(标准/高质量)
5. 文本插入格式选项
6. **录音文件存储路径配置**
- 支持相对路径(相对于 Obsidian 库)
- 支持绝对路径(系统文件路径)
7. **录音文件格式选择**(mp3/wav)
8. **录音质量设置**(标准/高质量)
## 技术栈建议
- TypeScript 作为主要开发语言
- Obsidian Plugin API
- Web Audio API 处理录音
- Fetch API 处理网络请求
- lamejs 或类似库用于浏览器内 mp3 编码
## 文件结构建议
obsidian-voice-recorder/
├── main.ts # 插件主入口
├── modules/
│ ├── recorder.ts # 录音功能模块
│ ├── transcriber.ts # 转录 API 连接模块
│ ├── fileManager.ts # 文件存储管理模块
│ └── statusBar.ts # 状态栏管理模块
├── ui/
│ ├── settingsTab.ts # 设置界面
│ └── recordingModal.ts # 录音控制界面
└── styles.css # 插件样式
请注意确保插件符合 Obsidian 社区插件的开发规范和最佳实践。
第二步,完成前置准备,获得三方 API#
该产品主要使用的是语音转文字 API,使用 AI 助手进行调研,对比各大平台的价格与优劣势。国内的阿里云和讯飞听见对中文识别效果最佳,但是一次性投入成本太高,适合企业,不适合个人,所以排除。微软 Azure 有免费额度,但是尝试申请后,发现太复杂了,也排除。最后,采用的是 OpenAI 语音模型,每分钟的调用成本最低,开发难度也最低,因此适合用来做 MVP 开发。
平台 | 链接 | 价格 | 优劣势 |
---|---|---|---|
OpenAI | API Pricing | GPT-4o Transcribe: $0.006/分钟 GPT-4o Mini Transcribe: $0.003/分钟 Whisper: $0.006/分钟 | 优势:实时流式转录、多语言支持、噪声消除 劣势:中文场景需实测效果 |
微软Azure语音服务 | Azure语音服务 | 免费试用一年,后续按量计费(约$1/小时起) | 优势:多语言支持(超100种)、集成Azure生态 劣势:配置复杂,需技术背景 |
阿里云语音识别 | 智能语音交互 | 按需定制(通用用户100人以下:2400元/人/年起) | 优势:中文高精度识别、可定制并发路数 劣势:套餐外收费未明示 |
讯飞听见 | 官网 | 按分钟计费(约¥0.33/分钟起) | 优势:中文识别准确率98%、实时边录边转 劣势:国际语言支持有限 |
接着就是到 OpenAI 官网开通 API。 |
第三步,用 Cursor指导 AI 生成代码#
Cursor 安装与初始配置#
- 访问 Cursor 官网 下载最新版本
- 根据您的操作系统选择对应的安装包进行安装
- 完成安装后启动 Cursor
- 在Chat Mode中选择 Agent 模式(最新版默认就是 Agent)
Cursor 自然语言编程#
当你的提示词完整时,基本一次性就能出来第一版完成的代码。这个过程并不难,实际体验下来就能感受到。
第四步,边测试边修改#
接着进入测试环节,这个阶段也是最费时间的阶段,经常会碰到卡在一个小问题。这个时候,就需要掌握一些调试技巧,并且在与 AI 交互过程中,学习如何更敏锐捕捉问题,并且指导 AI 去解决。
Obsidian 测试前配置工作#
- 打开 Obsidian > 偏好设置 > 第三方插件
- 将"安全模式"关闭,允许安装第三方插件
- 打开插件文件夹 > 右键拷贝文件夹路径
- 把这个路径告诉Cursor(这一步很关键,本人就是在这卡了足足一个小时…😭)
- 然后让Cursor Agent构建插件,它就会哐哐哐给你运行服务,最后你就能在Obsidian 的已安装插件插件中找到该插件啦
开发者模式调试插件#
- 在设置中配置 OpenAI API 密钥,开始录音及功能测试
- 如果发生错误,不要慌,打开开发者模式,快捷键 Command + Option + I,将 Console 的报错信息复制给 Cursor
- 经过多轮调试,Cursor 会自己找到问题,并且自己解决(未来的 AI 也会越来越强大,因为它会自我学习,而且迭代速度惊人!)
第五步,上线发布#
这一步通过与 Cursor 基本也能完成,Cursor 会指导你通过 Github 发布,然后再遵循 Obsidian 的发布流程,最后就是等审核了。Obsidian 的审核流程会比较慢,目前我的插件也还在等待中。不过不影响我的使用,目前我已经用上了,每日的日记、思考、读书笔记等,香得飞起! 感兴趣的朋友也可以加我微信,我提前把代码发你,让你也可以用起来。一切都是开源免费! https://github.com/Alllen66/obsidian-voice2text
经验教训#
这个项目教会了我几个关于AI辅助开发的宝贵经验:
明确需求至关重要。 给AI工具的指令越具体,结果就越好。
AI在生成样板代码方面表现出色。 通常需要几小时的重复性结构元素几秒钟就能创建出来。
人机协作胜过单独工作。 我的领域知识与AI的编码能力相结合,产生了比我们任何一方单独能够实现的更好的结果。
调试仍然是一项关键的人类技能。 虽然AI可以建议修复方案,但识别问题的根本原因仍然需要人类的洞察力。
开发格局正在迅速变化。 曾经可能需要数周的工作在短短36小时内就完成了。
开发时长:从首次对话到产品上线 ↩︎