资讯动态

cheating-daddy 实战指南:基于 Electron 与 Gemini 2.0 Flash Live 的实时屏幕/音频 AI 助手搭建与使用

发布时间:2026/10/16 11:31:46 来源:尧图企业网站定制
AI 应用交互助手【免费下载链接】cheating-daddya free and opensource app that lets you gain an unfair advantage项目地址https://gitcode.com/gh_mirrors/ch/cheating-daddy点击查看免费下载本文以开源仓库 cheating-daddy 的 README.md 为骨架结合仓库源码src/utils/gemini.js、src/utils/window.js、src/storage.js、src/utils/prompts.js、src/utils/renderer.js展开。cheating-daddy 是一款免费开源的 Electron 桌面应用通过屏幕捕获 系统音频分析在视频通话、面试、演示与会议场景中提供由 Google Gemini 2.0 Flash Live 驱动的实时上下文辅助。读完本文你将掌握从零搭建运行环境、配置 Gemini API Key、选择预设 Profile面试/销售/会议/演示/谈判、熟练使用全局快捷键与点击穿透模式并理解其多 ProviderBYOK/云端/本地 Ollama架构与跨平台音频捕获的底层实现。一、项目概览与核心特性cheating-daddy 定位为实时 AI 助手核心思路是应用持续捕获你在屏幕上看到的内容与正在进行的对话音频交由多模态大模型实时分析再以提词器式的悬浮窗口把可直接说出口的应答建议呈现给你。README 明确列出的特性如下实时 AI 辅助Live AI Assistance由 Google Gemini 2.0 Flash Live 提供实时多模态推理屏幕与音频捕获Screen Audio Capture同时分析看到什么与听到什么生成上下文相关的应答多 Profile 支持Multiple Profiles内置 Interview面试、Sales Call销售电话、Business Meeting商务会议、Presentation演示、Negotiation谈判等场景透明悬浮窗Transparent Overlay始终置顶always-on-top的窗口可任意拖放定位点击穿透模式Click-through Mode需要时让窗口对鼠标事件透明不遮挡你操作面试/会议软件跨平台Cross-platform支持 macOS、Windows以及勉强能用、仅用于测试的 Linux。从 package.json 可以看到应用基于 Electron^30.0.5通过google/genai^1.2.0调用 Gemini API并依赖huggingface/transformers本地 Whisper 语音识别、ollama本地大模型推理与wsWebSocket等能力——这为后续要讲的多 Provider 架构埋下伏笔。二、环境要求RequirementsREADME 给出的最低要求如下结合 package.json 与源码可补充细节项目说明操作系统兼容 Electron 的系统macOS、Windows、LinuxREADME 明确 Linux 仅用于测试体验受限运行时Node.js 环境需能执行npm install/npm startGemini API Key必需用于实时会话与图像分析Google AI Studio 获取屏幕录制权限捕获屏幕内容所需的系统授权macOS 首次启动会主动触发授权请求见 src/index.js麦克风/音频权限捕获系统音频与麦克风所需的系统授权两个重要的 README 提示NOTE请务必留意提示 1请使用最新的 macOS 与 Windows 版本旧版本支持有限。提示 2测试期间它不会主动回答你提的问题——你需要模拟面试官提问应用才会给出应答。第二个提示直指该应用的设计逻辑它依赖真实对话流中的提问—回答节律触发响应而不是像聊天机器人一样等待用户主动发话。三、快速搭建与运行SetupREADME 的三步安装流程可直接执行# 1. 获取 Gemini API Key前往 Google AI Studio 创建 # 2. 安装依赖 npm install # 3. 运行应用 npm start在仓库中npm start实际执行的是electron-forge start见 package.json。除开发运行外package.json还提供了npm run package打包未安装的发行包、npm run make生成安装包与npm run publish发布打包配置位于 forge.config.js支持 WindowsSquirrel、macOSDMG与 LinuxAppImage三种安装器。注意当前仓库尚未配置自动化测试npm run lint仅输出 No linting configured见 package.json因此安装依赖 启动应用本身就是最直接的可用性验证手段。四、首次使用流程UsageREADME 给出的五个使用步骤结合源码可以还原完整链路在主窗口输入 Gemini API Key密钥经 IPC 调用storage:set-api-key写入本地credentials.json见 src/index.js 与 src/storage.js。在设置中选择 Profile 与语言selectedProfile默认interviewselectedLanguage默认en-US均保存在preferences.jsonsrc/storage.js。点击 Start Session 开始会话渲染进程通过initialize-geminiIPC 调用主进程的initializeGeminiSession建立与 Gemini 2.5 Flash Native Audio 的实时 WebSocket 会话src/utils/gemini.js。用键盘快捷键定位悬浮窗全局快捷键由 src/utils/window.js 注册。AI 基于你的屏幕画面与面试官提问实时给出辅助屏幕截图走send-image-content音频走send-audio-content/send-mic-audio-content应答以new-response/update-response事件流式推送回渲染层。从源码结构看一次典型会话的数据流是面试官提问 ──▶ 系统音频捕获SystemAudioDump / Loopback / 麦克风 │ ▼ Gemini Live 会话输入转写 说话人分离 │ generationComplete ▼ Groq / Gemma 快速应答生成见下文应答链路 │ ▼ 渲染进程流式显示markdown 渲染可滚动/上一条/下一条五、键盘快捷键详解Keyboard ShortcutsREADME 给出了四组基础快捷键而源码 src/utils/window.js 中定义的默认键位远不止这些且针对 macOS 与 Windows/Linux 使用了不同修饰键。整理如下均为默认值可在设置中自定义并持久化到keybinds.json功能macOSWindows / Linux说明移动窗口Alt 方向键Ctrl 方向键按屏幕短边 10% 的步长移动悬浮窗window.js切换可见性关闭/返回Cmd \Ctrl \隐藏/显示窗口显示时用showInactive避免抢焦点切换点击穿透Cmd MCtrl M切换setIgnoreMouseEvents让鼠标事件穿透窗口window.js发送消息EnterEnter在输入框向 AI 发送文本下一步开始会话/手动截图Cmd EnterCtrl Enter主视图下开始会话其他视图下手动截屏renderer.js上一条应答Cmd [Ctrl [在历史应答间回退下一条应答Cmd ]Ctrl ]前进到下一条应答滚动应答内容Cmd Shift 上/下Ctrl Shift 上/下上下滚动长应答紧急擦除Cmd Shift ECtrl Shift E隐藏窗口、关闭会话、清除全部数据并退出应用window.js这里要特别说明两点值得关注的设计移动步长是动态计算的moveIncrement Math.floor(Math.min(width, height) * 0.1)即按主显示器工作区短边的 10% 计算高分屏与大屏显示器上的移动距离会自动适配window.js。**紧急擦除Emergency Erase**是隐私设计的关键触发后立即隐藏窗口、close()当前 Gemini 会话并通过clear-sensitive-data事件调用storage.clearAllData()清空本地配置与会话历史随后 300ms 后退出应用window.js、src/storage.js。在敏感场合这是快速一键灭迹的兜底手段。六、音频捕获方案Audio CaptureREADME 按平台给出了三套音频方案源码 src/utils/renderer.js 与 src/utils/gemini.js 中的实现细节如下macOSSystemAudioDumpmacOS 上系统音频通过仓库内置的SystemAudioDump原生辅助程序捕获二进制位于 src/assets/SystemAudioDump打包时经extraResource随应用分发见 forge.config.js。主进程以spawn启动它读取 24 kHz、双声道、16-bit 的 PCM 流按 0.1 秒分块并转成单声道convertStereoToMono只取左声道后base64 编码发送给 Gemini Live 会话gemini.js。屏幕画面则仍由getDisplayMedia获取。WindowsLoopback 回环捕获Windows 上直接用navigator.mediaDevices.getDisplayMedia抓取屏幕时同时请求audio: loopback即回环音频轨道窗口创建时通过session.defaultSession.setDisplayMediaRequestHandler配置了系统选择器与回环音频window.js。PCM 音频在渲染进程按 24 kHz、单声道、16-bit 采样分块 base64 后经send-audio-contentIPC 送入主进程renderer.js。Linux麦克风输入Linux 上系统音频捕获受平台限制代码先尝试通过getDisplayMedia的音频轨道获取系统声音失败则回退为仅屏幕捕获随后按audioModespeaker_only/mic_only/both决定是否额外启动麦克风getUserMedia采集renderer.js。这与 README 中Linux 仅用于测试的定位一致。音频处理细节对三种平台通用统一采样格式所有平台最终都以audio/pcm;rate24000、单声道、16-bit 的 PCM 数据发送与 Gemini Live 音频 API 的输入要求对齐gemini.js。音频模式偏好项audioMode控制是否同时采集麦克风默认speaker_onlystorage.js。调试能力设置环境变量DEBUG_AUDIO后捕获的音频块会经 src/audioUtils.js 转成 WAV 并附带 RMS、静音占比、动态范围等分析指标保存到用户主目录的cheating-daddy-debug文件夹便于排查音频质量问题。七、Profile 与提示词体系README 提到的五种 Profile 在 src/utils/prompts.js 中都有完整实现且不止五种——除 Interview、Sales Call、Business Meeting、Presentation、Negotiation 外还内置了 Exam考试Profile。每个 Profile 的提示词由四段组成intro角色定位如面试场景是隐形的屏幕提词器提供简洁、有冲击力、可直接说出口的应答formatRequirements输出格式约束1~3 句话、markdown 加粗、要点列表、只给最核心信息searchUsage何时使用 Google Search 工具如面试官提到近 6 个月的新闻/趋势、公司最新动态、新技术时必须先搜索再作答content outputInstructions具体应答风格示例与输出指令只给可以直接照着念的原文不要指导性话语。getSystemPrompt(profile, customPrompt, googleSearchEnabled)负责把这些片段拼装成最终系统提示词customPrompt用户自定义上下文如简历、岗位描述、行业信息会被嵌入User-provided context区块——README 所述基于你的屏幕和面试官提问提供帮助很大程度上就是靠这段用户上下文 实时屏幕画面实现的prompts.js。八、深层架构三种 Provider 模式与应答链路虽然 README 只描述了 Gemini 一种后端但源码 src/utils/gemini.js 暴露了currentProviderMode三种模式模式触发 IPC说明byokBring Your Own Keyinitialize-gemini使用你自己的 Gemini API Key走 Gemini Live 实时会话cloudinitialize-cloud通过云端 WebSocket 服务src/utils/cloud.js发送音频/文本/图像localinitialize-local本地 Ollama 推理 Whisper 本地转写src/utils/localai.js不依赖云端密钥一个值得展开的实现细节是应答链路的分工Gemini Live 会话本身只负责听懂输入转写而最终说出口的应答文本默认交给 Groq 快速生成——前提是你配置了 Groq API Key否则回退到通过 Gemini HTTP API 调用的 Gemma 3 27BsendToGemma。源码注释明确写道DISABLED: Geminis outputTranscription - using Groq for faster responses insteadgemini.js即为了更快的应答速度项目主动禁用了 Gemini 自身的输出转写改用 Groq 的流式 chat completions 生成应答temperature: 0.7、max_tokens: 1024保留最近 20 轮对话历史gemini.js。同时会话配置启用了说话人分离Speaker DiarizationminSpeakerCount: 2、maxSpeakerCount: 2把转写标记为[Interviewer]:与[Candidate]:gemini.js这解释了 README 中模拟面试官提问的工作方式——应用需要听到明确的提问者话语来触发应答。断线自动重连与会话恢复Live 会话断线时主进程会自动尝试重连最多 3 次、间隔 2 秒MAX_RECONNECT_ATTEMPTS 3、RECONNECT_DELAY 2000重连成功后会把最近 20 轮有效的提问—应答对打包成上下文文本重新注入会话保证重连后 AI 不失忆gemini.js。超过重连上限时会提示疑似上游或网络问题可重启或下载新版应用。会话历史与本地存储每次提问—应答都会以{timestamp, transcription, ai_response}结构保存同时屏幕分析记录{prompt, response, model}也会落盘会话按sessionId时间戳字符串存为历史目录下的 JSON 文件并提供按时间倒序的会话列表storage.js。本地配置目录按平台划分Windows%APPDATA%/cheating-daddy-configmacOS~/Library/Application Support/cheating-daddy-configLinux~/.config/cheating-daddy-config其中包含config.json、credentials.jsonAPI Key 存放处、preferences.json、keybinds.json、limits.json与history/目录storage.js。应用启动时initializeStorage()会检查configVersion版本不匹配则自动重置配置目录src/index.js、storage.js。九、屏幕分析Screen Audio Capture 的另一半除了音频应用还持续分析屏幕。渲染进程用隐藏video 离屏canvas从getDisplayMedia流中抓帧压缩为 JPEG质量档位high 0.85 / medium 0.6 / low 0.4手动截图还会降采样到最大 1280px 宽以加快传输renderer.js经send-image-contentIPC 发给主进程。主进程对图像的走法是用 HTTP API 而非 Live 会话sendImageToGeminiHttp调用generateContentStream并按每日限额在gemini-2.5-flash与gemini-2.5-flash-lite之间自动切换免费额度各 20 次/日用尽后回退到 flash 以适配付费用户storage.js。手动截图的默认提示词是直接给出完整答案的强指令风格MANUAL_SCREENSHOT_PROMPTrenderer.js。这也与 README.md 中分析你看到和听到的内容以给出上下文应答的定位完全吻合。十、打包、隐私与安全实践打包forge.config.js使用 Electron Forge同时配置了 SquirrelWindows、DMGmacOS、AppImageLinux三种 makerhuggingface/transformers等原生依赖通过auto-unpack-natives与 asar unpack 规则处理forge.config.js。Fuses 插件在打包阶段关闭了RunAsNode、NodeCliInspect等运行时可选项并强制 Cookie 加密降低被注入/篡改的风险。窗口隐私主窗口frame: false、透明背景、无阴影、setContentProtection(true)防止被录屏/截图采集部分系统生效、Windows 下隐藏任务栏图标、macOS 下从 Mission Control 隐藏window.js。数据清除除紧急擦除外应用也提供了清除全部数据storage:clear-all的常规入口一键重置配置目录src/index.js。协议与授权项目采用 GPL-3.0 协议package.json使用前请确保你拥有对应 API 的使用权限与所需授权并注意该应用的核心用途面试/考试辅助在真实场景中可能涉及合规与道德风险请仅在合法允许的范围内使用。十一、已知边界与适用前提平台差异macOS 与 Windows 是主力支持平台Linux 仅用于测试系统音频捕获体验受限README 明确说明。旧版本支持有限README 提示务必使用最新版。交互模型应用依赖面试官提问 → 触发应答的实时对话流单纯对应用说话不会得到主动回答。密钥与限额需要 Gemini API Key图像分析受每日免费限额约束Groq 各模型也有字符限额如qwen3-32b每日 150 万字符、其余模型 60 万字符见 storage.js。安全边界当前窗口contextIsolation: false并开启nodeIntegration源码中标注了TODO: change to true属于已知的加固待办项使用时应留意来源可信度。十二、源码地图快速定位关键实现关注点文件应用入口 / 生命周期 / IPC 注册src/index.jsGemini Live 会话、音频分块、重连、Provider 分发src/utils/gemini.js窗口创建、全局快捷键、点击穿透、紧急擦除src/utils/window.js本地配置、密钥、偏好、限额、会话历史存储src/storage.jsProfile 系统提示词面试/销售/会议/演示/谈判/考试src/utils/prompts.js渲染层捕获、截图、音频编码、IPC 封装src/utils/renderer.js云端 ProviderWebSocketsrc/utils/cloud.js本地 ProviderOllama Whispersrc/utils/localai.js音频调试工具PCM→WAV、RMS 分析src/audioUtils.js打包配置Squirrel/DMG/AppImage、Fusesforge.config.js依赖与脚本版本、npm start/package/makepackage.json如果你打算二次开发建议以setupGeminiIpcHandlers为入口gemini.js沿IPC → Provider → 渲染回显的链路逐步深入若想替换/新增 Profile直接在 prompts.js 的profilePrompts对象中扩展即可无需改动会话核心逻辑。总结cheating-daddy 用一个简洁的 Electron 壳 Gemini Live 实时多模态能力实现了屏幕音频 → 实时提词的完整闭环。本文从 README 出发把安装、首次使用、快捷键、跨平台音频方案、Profile 提示词、多 Provider 架构、断线重连、会话存储、打包安全等环节逐一落到源码级证据上。无论是直接上手使用还是基于源码做二次开发以上内容都能作为一份可靠的操作手册与代码导航。赞分享AI 应用交互助手【免费下载链接】cheating-daddya free and opensource app that lets you gain an unfair advantage项目地址https://gitcode.com/gh_mirrors/ch/cheating-daddy点击查看免费下载相关推荐cheating-daddy实时AI助手助力视频会议与面试cheating daddy实时AI助手助力视频会议与面试 在现代工作环境中无论是面试、视频会议还是演讲能够流畅地进行沟通和表达是至关重要的。今天我们AI 应用交互助手Project Livewire 本地部署实战基于 Gemini 2.0 Flash Live API 搭建实时多模态语音对话应用Project Livewire 本地部署实战基于 Gemini 2.0 Flash Live API 搭建实时多模态语音对话应用 Project Livew示例工程人工智能大模型Cherry Studio 完整指南3 层架构 19 家模型提供商的多模型 AI 客户端实战拆解Cherry Studio 完整指南3 层架构 19 家模型提供商的多模型 AI 客户端实战拆解 Cherry Studio 是一款基于 ElectronAI 应用大模型桌面应用本地部署RAG上一篇DownKyi终极指南5步掌握B站视频高效下载的专业技巧下一篇5秒获取百度网盘提取码智能工具让资源下载效率提升10倍创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑