DEVELOPMENT LOG · 2026

SayRel开发日志

从一条原生录音链路开始,逐步长成可以口述、翻译和提问的 macOS 语音输入工具。这里记录每次迭代做了什么,以及它建立在什么技术之上。

开发记录 2026年11月3日 — 至今 7 次阶段更新

把说出的想法,写进正在使用的应用。

SayRel 是一款仍在开发中的 macOS 语音输入应用。按下快捷键即可口述、翻译或提问;语音识别与文本处理服务可分别选择,历史与词典数据保存在本地。

SayRel macOS 主窗口,展示三种语音模式和本地使用统计
01

说话即输入

全局快捷键启动口述,实时字幕、语音转写和文本润写共同完成从声音到文字的流程。

02

翻译与随心问

切换语音模式即可翻译内容,或结合明确允许的选中文本和应用上下文提出问题。

03

可选服务,本地数据

转写与润写供应商独立配置;历史保存在设备上,凭据使用 AES-256-GCM 加密。

开发时间线

从新到旧

收敛首页与应用结构

整理未使用代码与资源,重排首页入口,让口述、翻译、提问、历史和词典的主要路径更清楚。

  • 梳理 Hub 首页布局与案例入口。
  • 清理遗留实现,为后续功能迭代收拢代码边界。

接入可撤销的自动词典学习

口述后的编辑修正可交由当前润写模型分析;通过校验的术语写入个人词典,通知支持撤销。

  • 以独立 Swift helper 复用关键文本处理逻辑,并保留 Go 侧的生命周期编排。
  • 词条与撤销拒绝状态保存在本地;模型分析需要用户明确开启。

完善上下文读取与词典学习流程

补齐选中文本和目标应用上下文捕获,继续校准悬浮条、翻译、答案卡等桌面交互。

  • 增加输入快照校验与中文编辑边界处理,降低旧快照或组合输入导致的误判。
  • 逐项记录与参考产品可见行为的差异,不将不可见的云端算法描述为已复刻。

让语音提问获得可追溯的答案

Ask anything 加入联网检索和来源引用,检索服务可分别配置;答案卡保持在其他应用窗口之上。

  • 接入 Firecrawl 与 Tavily 搜索服务,默认关闭并提供连接测试。
  • 增加静音录音识别和浮层提示,改善录音反馈与答案呈现。

补齐历史、引导与本地凭据保护

语音结果开始形成完整工作流:首次设置、交互练习、历史回放与重新处理都进入应用。

  • 历史记录支持音频播放、导出和重新转写;首页加入本地统计与活动热力图。
  • 服务商 API 凭据迁移到加密 SQLite,采用 AES-256-GCM 保护。

从原生窗口走到可用的语音输入

主窗口、录音状态机、转写与悬浮条接通,形成 SayRel 最初的端到端口述路径。

  • 加入音频采集、麦克风权限、波形反馈与 Swift 原生能力桥接。
  • 建立服务商配置基础,并按真实桌面应用的使用流程校准主窗口与浮层。

搭建 mygo 原生应用骨架

建立 Go 应用入口与 Swift helper 加载路径,开始探索适合 SayRel 的 macOS 原生实现。

  • 确定 Go 承担应用与业务编排,Swift 负责需要系统原生能力的桥接。
  • 将后续工作拆分为原生能力、录音主链路、界面和模型服务等阶段。

开发记录依据项目提交历史与维护文档整理。提及第三方技术时,链接指向其官方网站或源码;具体服务是否参与处理取决于用户配置。