openclaw-assistant-mvp
Electron桌面AI语音助手,支持Deepgram实时语音识别、MiniMax TTS合成与虚拟
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Electron桌面AI语音助手,支持Deepgram实时语音识别、MiniMax TTS合成与虚拟
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,你在深夜加班赶方案,突然想查一下明天的日程安排。你掏出手机、解锁、打开日历 app——这个动作打断了你手头本就脆弱的思绪。三秒钟后你忘了刚才在思考什么了。
问题的本质是:现有的 AI 助手和你的工作桌面之间隔着一层操作系统。手机 app 要解锁,网页要切标签页,而你最自然的方式是——对着电脑说一句"明天的安排是什么",然后继续工作。
OpenClaw Desktop Assistant 解决的就是这个摩擦。它是一个 Electron 桌面应用,把 AI 语音助手直接嵌入你的电脑桌面,不需要切换窗口,不需要打开浏览器,按住麦克风说话,松手就得到回答。更特别的是,回答你的不是冰冷的文字气泡,而是一个会动的卡通角色——可以是活泼的卡通龙虾"小虾米",也可以是温柔知性的"Amy"。

图1:项目作者 Avatar
OpenClaw Desktop Assistant MVP 由独立开发者 andyhuo520 构建,定位为"OpenClaw 生态的桌面端最小可行产品"(MVP)。项目采用 MIT 开源协议,核心目标是在桌面上复现一个可对话、可交互的 AI 助手,且具备独特的虚拟形象呈现能力。 该项目的技术思路融合了三条成熟路线:
用户无需学习任何唤醒词或复杂手势。应用界面底部有一个圆形麦克风按钮,用户按住说话、松开即发送。松开后,应用通过 Web Speech API 或 Deepgram SDK 将语音转为文字,并将文本发送给后端 AI 服务。核心录音逻辑在 app.js 中实现,使用原生 MediaRecorder API 获取麦克风音频流。
Deepgram 集成是可选的高级功能,需要用户自行申请 Deepgram API Key。默认情况下使用浏览器内置的 Web Speech API,门槛更低但准确率有限。项目中提供了详细的 Deepgram 配置指南(DEEPGRAM_SETUP.md)和 TTS 配置指南(TTS_SETUP.md),表明开发者有意构建完整的语音交互闭环。
语音转文字后,主进程(electron/main.js,约 28.5KB)通过 WebSocket 协议 连接本地运行的 Clawdbot 服务(默认端口 18789),将用户问题发送过去,并接收 AI 的流式文本响应。
核心通信机制在 main.js 的 TaskManager 类中实现:采用异步任务队列模式,每次对话生成一个 taskId,经过"创建任务->加入队列->执行->返回结果->通知前端"完整流程。消息通过 Electron IPC(ipcMain/ipcRenderer)在主进程和渲染进程之间传递。main.js 中还实现了 SentenceSplitter 类,对 AI 的流式输出进行实时句子切分(中英文双支持),每识别出一个完整句子就触发下一步处理。
AI 的文本回答不是瞬间出现的——项目通过 SentenceSplitter 对流式输出进行实时句子切分,每识别出一个完整句子就立刻送入 TTS 队列。TTS 采用 MiniMax API,通过 TTSQueueManager 实现句级并行合成。合成的音频块通过 Electron IPC 实时推送给前端,前端接收到音频后立即播放,实现"说话的同时 AI 已经在组织下一句"的自然对话感。
前端 app.js(约 49KB)内置了完整的角色状态机,支持三种虚拟角色:小虾米(lobster)、Amy 和 喵助理(cat)。每个角色有 6-7 种状态视频:welcome(欢迎)、idle(待机)、listening(聆听)、thinking(思考)、speaking(说话)、followup(追问)、goodbye(告别)。状态切换触发对应视频文件的播放,全程由前端状态机自动驱动,无需后端干预。项目用 MP4 视频帧替代了原本计划的 Live2D 方案,降低了动画制作门槛,同时保证了视觉表现力。
除通用 AI 对话外,应用还支持两个具体功能:邮件查询(说出"今天有什么邮件")和日程查询(说出"今天的日程安排"),分别调用 openclaw:getEmails 和 openclaw:getDailyBriefing IPC 接口。这两个功能依赖 OpenClaw 后端服务返回结构化数据,是目前 MVP 中最具体的生产力工具功能。
项目采用经典 Electron 三层架构:
app.js 是整个前端的核心,包含完整的状态机、角色系统和音频播放逻辑。contextBridge.exposeInMainWorld 暴露安全 IPC 通道,将主进程功能以受控方式暴露给渲染进程。克隆项目后,执行 npm install 安装依赖即可。主要依赖:@deepgram/sdk(语音识别)、dotenv(环境变量管理)、ws(WebSocket 客户端)。运行前需要从 .env.example 创建 .env 并填入 API Key。
npm startnpm run devnpm run build这个项目最大的门槛是:它不是一个"开箱即用"的产品,而是一个需要配套后端才能工作的客户端。用户必须在本地运行 Clawdbot 服务(OpenClaw 项目的后端组件),否则应用只能连接默认硬编码的本地端口,返回"连接超时"。项目 README 坦诚承认:"目前使用模拟数据,未连接真实 OpenClaw",计划中的下一步包括"集成真实的 OpenClaw API"。 这意味着:
package.json 中的 electron-builder 配置相当完整,支持 macOS 双架构(x64 + arm64)打包成 dmg 和 zip 格式,带有正确的 hardened runtime 和 gatekeeper 配置。这是桌面应用生产级配置的标志。
main.js 将功能拆分为 TaskManager、SentenceSplitter、TTSQueueManager 三个类,职责单一,便于理解和扩展contextBridge.exposeInMainWorld 暴露最小必要 API,渲染进程无法直接访问 Node.js 原生模块.md 文档,涵盖配置指南、调试手册、视频教程,覆盖了常见问题的解决路径app.js 是纯原生 JavaScript,随着功能增加会面临维护挑战,建议引入 Vue/React 作为状态管理main.js 中 Clawdbot 的 WebSocket 地址和 token 有硬编码默认值,存在信息泄露风险OpenClaw Desktop Assistant 代表了一个值得关注的产品方向:将 AI 助手从"手机里的 app"或"浏览器里的网页"迁移到"桌面操作系统的一等公民"。这与 Apple Intelligence 的端侧化方向、Microsoft Copilot 的系统集成方向一致,但在开源社区中属于相对空白的领域。 412 颗 Stars 的增长曲线说明:
报告生成时间:2026-06-26 | 数据来源:GitHub API + 源码分析