A
AI 语音助手桌面应用
基于 Electron 的跨平台 AI 语音助手,支持 OpenAI Realtime API 实时语音对话
Electron
React
TypeScript
AudioWorklet
Socket.IO
January 15, 2026
项目简介
基于 Electron 的跨平台 AI 语音助手桌面应用,支持实时语音对话、语音转文字、文本聊天等功能。项目从零搭建到发布 37 个版本,累计 417 次提交。
项目周期:2025.12 - 2026.01(约 2 个月)
技术栈
| 类别 | 技术 |
|---|---|
| 桌面框架 | Electron 39 + electron-vite |
| 前端框架 | React 19 + TypeScript 5.9 |
| 样式方案 | Tailwind CSS 4 + shadcn/ui (new-york) |
| 状态管理 | Jotai (客户端状态) + TanStack Query (服务端状态) |
| 路由 | TanStack Router (文件路由) |
| 实时通信 | Socket.IO + OpenAI Realtime API v2 |
| 音频处理 | Web Audio API + AudioWorklet |
| 支付集成 | RevenueCat + Paddle |
核心功能模块
1. 实时语音对话系统
- 集成 OpenAI Realtime API v2,实现双向音频流实时对话
- 基于 AudioWorklet 的高性能音频处理(支持 48kHz/44.1kHz 采样率)
- 实现回声消除(AEC)、噪音抑制、自动增益控制等音频增强功能
- 语音与文本的实时同步显示,打字机效果展示 AI 响应
2. 语音转文字(STT)
- 独立的语音转文字会话管理,支持 16kHz 采样率音频流
- 自动静音检测(6秒静音自动结束)
- 最长 60 秒录制限制,超时自动处理
- 动态波形可视化反馈
3. 多窗口协调系统
- 管理 7 个独立窗口:浮动球、菜单、主面板、会话侧边栏、设置、转录、语音响应
- 基于浮动球象限位置的智能面板定位算法
- 窗口间 IPC 广播通信机制
- 焦点管理与自动隐藏逻辑
4. 订阅支付系统
- RevenueCat SDK 集成,管理订阅状态与产品定价
- Paddle 支付流程:Web 购买 → 协议回调 → 轮询验证
- 免费试用配额管理(使用量追踪、超额处理)
技术亮点
架构设计
- 主进程单源管理:所有核心状态由主进程统一管理,通过 IPC 向多窗口广播
- 13 个专业 IPC 模块:auth、subscription、session、transcription 等模块化处理器
- AsyncDisposable 资源管理:音频录制器实现自动资源释放,防止内存泄漏
音频处理
- 线性重采样算法:实现不同采样率间的高质量音频转换
- PCM16 格式打包:优化音频数据传输效率
- 设备热插拔检测:动态响应麦克风设备变化
- 音频环回采集:支持屏幕共享时的系统音频捕获
性能优化
- 指数退避重连:WebSocket 断线重连策略(最大 60s,5 次尝试)
- Promise 去重缓存:防止订阅数据重复请求
- 节流打字机效果:优化 AI 响应的渲染性能
- 流式音频处理:块处理器模式避免内存堆积
项目成果
- 完成从 0 到 1 的产品开发,发布 37 个版本
- 支持 macOS / Windows / Linux 三平台
- 上架 Mac App Store (TestFlight)
- 实现完整的 订阅付费闭环
- 代码质量:TypeScript 严格模式 + Biome 自动化检查