stormydayy/halo-overlay
Lightweight opensource AI overlay for live conversations. Hears, sees, suggests.
Halo 是一个小型 AI 助手,以悬浮覆盖层的形式显示在屏幕上。它聆听周围的对话,观察显示器上的内容,并实时提供简短的建议,告诉您接下来该说什么或做什么。
功能
- 聆听两个音频通道:对方(系统音频,标记为“Them”)和您(麦克风,标记为“You”)。在“Both”模式下,当对方说话时,您的麦克风线路会被抑制,因此您的名字不会与他们的言语关联。
- 监控屏幕:持续监控屏幕。每隔几毫秒拍摄一张微小的灰度快照,与上一张比较,仅在屏幕实际变化并稳定后保留帧。这避免了存储重复或动画中间帧。
- 建议:当检测到对方言语中的问题时,提供简短回答(自动回答,默认关闭,因为它是启发式的,可能误触发)。
- Rewind(Ctrl+Shift+Enter):如果您走神了,它会获取最近 30 秒到 5 分钟的转录文本以及几个屏幕关键帧,并回复三件事:发生了什么(2-3 个要点)、他们现在需要您做什么,以及一句现成的话。您还可以在 Rewind 面板中固定帧,以包含在下一个问题中。
- 记录会话:每个会话都会保存(转录文本 + 建议)。Recap 按钮让 AI 撰写包含行动项的摘要,您可以将所有内容导出为 Markdown。
- 配置文件:面试、会议、销售、谈判、演示、学习——每个都有各自的提示风格。
- 可自定义:快捷键、窗口透明度、字体大小和点击穿透模式均可调整。
- 可选屏幕录制:直接录制为
.webm文件(默认关闭)。
构建方式
- 从零开始重写了 sohzm/cheating-daddy 背后的想法,但没有打包器、没有内置库、没有构建步骤——源代码直接运行。
- 一个兼容 OpenAI 的客户端适用于 Gemini、Groq、OpenAI、OpenRouter、Ollama、LM Studio 或您自己的服务器。没有针对每个提供商的单独代码路径。
- 语音识别使用 VAD(语音活动检测)加上任何兼容 Whisper 的 API(Groq、OpenAI 或本地 whisper.cpp / faster-whisper 服务器)。
- 约 3,100 行代码,0 个运行时依赖,27 个单元测试(
npm test)。 - 安全性:
contextIsolation、sandbox、严格的 CSP、每个 IPC 调用都经过验证、API 密钥由操作系统加密(DPAPI / Keychain / libsecret),且从不发送到 UI。
隐私
- API 密钥使用操作系统的安全存储加密,并且从不显示在 UI 中。
- 数据仅发送到您配置的提供商:短音频片段发送到语音识别服务,文本(以及如果启用的截图)发送到模型。不会向任何地方发送遥测数据。
- 会话和录音存储在应用配置文件文件夹中本地。“删除所有会话和录音”或 Ctrl+Shift+E 可清除它们。
- 屏幕录制默认关闭。
设置
需要 Node.js 20+ 和 Python 3.11+。
git clone https://github.com/stormydayy/halo-overlay
cd halo-overlay
npm install
npm start
然后在设置中:选择模型提供商并粘贴您的密钥,测试连接,选择语音识别服务,选择配置文件,添加上下文(简历、笔记等),然后开始会话。
完全本地选项:使用 Ollama 搭配支持视觉的模型(例如 llama3.2-vision)作为 LLM,以及任何暴露 /v1/audio/transcriptions 的服务器(whisper.cpp、faster-whisper-server)用于语音。本地地址(localhost、192.168.*、10.*)不需要 API 密钥。
平台说明
- Windows:通过
getDisplayMedia的环回方式获取系统音频;麦克风可用。 - macOS:通过
SystemAudioDump辅助程序获取系统音频(仅为 Apple Silicon 构建——Intel Mac 需要从源代码自行构建);麦克风可用。在系统设置中授予屏幕录制和麦克风访问权限。 - Linux:如果您的环境支持,通过环回方式获取系统音频;否则仅麦克风。
如果系统音频不可用,Halo 会告知您并继续使用麦克风 + 屏幕。
已知限制
- 语音识别按暂停分块处理(通常延迟 1-3 秒),而不是连续流。
- 问题检测器是启发式的,因此误报会发生——这就是自动回答默认关闭的原因。
SystemAudioDump仅为 Apple Silicon 构建。
许可证
GPL-3.0。想法和 macOS 音频辅助程序来自 sohzm/cheating-daddy 和 Mohammed-Yasin-Mulla/Sound。
免责声明(来自 README)
Halo 是一种对话辅助工具,类似于舞台提词器。规则各不相同:许多面试、考试、雇主和平台禁止外部帮助或录音,关于录音对话的法律因国家而异。请在使用它的地方检查规则,如果法律或基本道德要求,请告知其他相关人员。
相关
- 项目
- 项目
- 项目
- 项目