GeminiDesktop GeminiDesktop
教程指南

Gemini Live Mac 桌面版教程:语音 debug 代码 + 实时屏幕评审

发布于 · 作者: GeminiDesktop Team

Gemini Live Mac 桌面版教程:语音 debug 代码 + 实时屏幕评审

结论先行: Gemini 3 Flash Live 是 Google 在 2026 年推出的双向实时多模态接口——它能同时吃麦克风音频、屏幕画面帧、用户语音打断三路输入,然后用语音回答你。但官方 Gemini Mac app 和 gemini.google.com 都没把这个接口暴露出来,macOS 用户想用上它,目前最靠谱的路径是第三方桌面客户端 GeminiDesktop,它用 Tauri + scap 屏幕捕获 + WebSocket 代理把 Bidi 会话完整跑了起来。这篇教程把 3 步配置、3 个 use case、Live 的 token 策略、session 时长限制全部讲清楚。

一句话说明: Gemini 3 Flash Live 是“你说它边听边看屏幕边回答”的实时语音会话;官方 Mac app 只能聊天不能 Live,GeminiDesktop 把这条路径补完了。

Gemini 3 Flash Live 到底是什么

官方文档把 Gemini 3 Flash Live 归类为 Bidi(Bidirectional)WebSocket 接口,和 REST 风格的 generateContent 完全不同。它的核心能力是:

  • 16 kHz 麦克风输入流:你说话的原始 PCM 采样直接打进模型,不需要先转文本再转回去;中间省下了 ASR 往返延迟
  • 实时画面帧输入:每秒 1–2 帧的 JPEG 屏幕截图跟音频一起复用同一条 WebSocket 通道,模型能“看”到你当前屏幕
  • 语音打断:模型正在说话时你插一句,它会立刻停下听你说——跟真人对话的节奏一样
  • 语音回答:默认以合成语音回答,也可以切成纯文本

换句话说,Gemini 3 Flash Live 是把“ASR → LLM → 屏幕理解 → TTS”整条链路在一个会话里压扁了。对用户体验的差别非常明显:传统的“你发消息,它回复消息”变成了“你说话,它看着屏幕跟你对答”。

为什么官方 Mac app 和网页版跑不了 Live

这是很多人第一次试用时最困惑的问题——gemini.google.com 和 App Store 的 Gemini Mac app 都找不到 Live 按钮。背后有三个原因:

  1. 浏览器不给你原生屏幕帧:网页版虽然能申请 getDisplayMedia 抓屏幕,但帧率、分辨率、持续性都受浏览器 tab 限制,而且每次都要手动授权并选择窗口,跟 Live 的“持续屏幕感知”体验冲突
  2. WebSocket 需要 origin 代理:Bidi 会话的 token 要以 ?key= query string 形式拼进 WSS URL,浏览器出于 CSP 和 CORS 策略不会让你随便连第三方域名,官方 Gemini 前端也没打开这条路径
  3. macOS 屏幕捕获 API 是系统级:要稳定拿到 1–2 fps 的全屏帧,必须走 ScreenCaptureKit 或底层 AVFoundation,这些 API 只对原生 app 开放,浏览器完全摸不到

所以即使官方 Mac app 把文本聊天、图片上传、Canvas 工具都做了,Live 那条“麦克风 + 屏幕 + 语音打断”的链路在官方产品线里目前只在 Android/iOS 上走通。macOS 上想用,就得走第三方原生客户端路径。

打开 Live Popover 的 3 步

GeminiDesktop 已经把 Live 的全部输入通道都接好了,用户侧只需要三步:

Step 1:Settings 配 API Key

打开 GeminiDesktop,进 Settings,在 BYOK 输入框贴入你的 Gemini API Key(Google AI Studio 后台免费申请)。注意 Live 的 token 走的是直传模式——客户端用这个 key 去 Google 的 /v1beta/models/...:bidiGenerateContent 端点换一个短期 WS token,所以 key 本身不会被客户端以外的第三方服务器看到。

Step 2:点顶部的 Live 按钮

主窗口右上角有个小的 Live 图标(波形+麦克风),点击后弹出一个浮动的 Live Popover。这个 Popover 是一个独立的 macOS 窗口,不会被主对话遮挡,你可以把它拖到屏幕角落。

Step 3:打开 Mic 和 Screen 两个 toggle

Popover 里有两个开关:

  • Mic on:首次点开时 macOS 会弹权限请求,授权一次后系统会记住
  • Screen on:首次点开时会请求“屏幕录制”权限——注意这个权限需要重启 app 才能完全生效,macOS 的限制,不是 app 的 bug

两个都开之后,你就可以直接跟 Gemini 说话了。可以一边说一边把它晾在旁边,打开任何窗口它都能“看到”。

Use Case A:语音引导 debug 一段 Python traceback

这是我日常用得最多的场景。流程是这样:

  1. 在终端里跑 Python 脚本,报了一串 traceback
  2. 不关终端,直接对 GeminiDesktop 说:“看一下这个报错,最后三行是什么意思”
  3. 模型读到屏幕上的 traceback,用语音念出最后三行的含义,并提示“你这是 KeyError,第 47 行的字典里没有这个 key”
  4. 你接着问:“那我应该在哪一步加 defensive check”
  5. 模型继续回答,你可以一边改代码一边听

相比“截屏 → 粘贴到聊天框 → 打字提问 → 读回复”的传统流程,语音 + 实时屏幕把时间压到大约 1/3。对盯着两块屏幕写代码的人非常友好,因为你的眼睛和手都不用离开当前终端。

Use Case B:实时屏幕评审一张 Figma 设计

设计评审是另一个高价值场景。把 Figma 打开,Live Popover 放角落,然后说:

“你看一下这个登录页的视觉层次,哪里的 hierarchy 不够清楚?”

模型会直接念出具体问题:“你的主 CTA 按钮和辅助链接颜色对比度太接近,视觉上争抢了注意力”——它看的是你屏幕上此时此刻的 Figma 画布,不是静态截图。你切换到下一页时它也会跟着切。

跟传统的“截图 → 上传 → 描述 → 等回复”比,Live 评审有两个独特优势:

  • 可以 来回切换多个 frame 让模型连续对比,不用每次重新上传
  • 可以 在评审过程中直接改,改完后口头问“现在好一点了吗”,它重新看一遍再回答

Use Case C:会议实时翻译 + 字幕笔记流

最后一个我觉得被严重低估的用法:会议同传。

  • 开英文会议(Google Meet、Zoom、Teams 都行)
  • GeminiDesktop 的 Live Popover 用系统音频捕获(不是麦克风,是把会议音频直接抓进 Live 通道——需要配 BlackHole 这类虚拟设备)
  • 说“帮我把听到的英文翻译成中文,每隔一分钟给一次要点总结”

效果上:它不是逐字逐句念翻译,而是按语义块切分,每几句给一段中文概括。这种“语义粒度”比传统实时字幕工具(如 Otter)更适合 我只需要抓住会议要点 的场景。

想要更系统的会议记录闭环,可以把 Live 抓下来的要点再扔给 BibiGPT 的视频/音频总结做一次结构化——AI 视频对话追问与溯源 支持把会议录音直接粘贴链接生成带时间戳的笔记。

BYOK 注意事项:token 走 key 直传 + session 时长限制

Gemini 3 Flash Live 的计费和 session 管理跟普通 REST API 有几个关键差别:

维度 REST generateContent Bidi Flash Live
Token 计费 每次请求的 input + output 按 session 总时长的流式计费
单次会话上限 模型上下文 ~1M tokens 当前约 15 分钟后自动 disconnect
Key 直传 是(客户端用 key 直接连 Google)
屏幕帧算不算 token 作为 image input 计费 作为流式视频帧按窗口采样计费
打断处理 不适用 模型 TTS 可被打断,对话会保持上下文

注意那个 15 分钟 session 上限——这是 Google 对 Live 接口的硬约束,超过之后客户端需要重新建立 WebSocket。GeminiDesktop 会在临近超时时静默重连,但模型的短期上下文会清掉一次,你需要重新用一两句话给它交代背景。

对 BYOK 用户:Live 比 text 贵大约 5–8 倍(因为要同时喂音频 + 屏幕帧),如果你要长时间挂着,建议搭配一个 token 用量面板,别让账单失控。

下一步 roadmap:iOS 镜像屏幕 / 多 tab 切换 / 桌面应用自动识别

GeminiDesktop 的团队在几个方向上扩展 Live 的能力边界:

  • iOS 镜像屏幕 Live:用 QuickTime 镜像把 iPhone 画面投到 Mac,再让 Live 看着 iPhone 屏幕——适合“帮我点评这个 App 的新手流程”类需求
  • 多 tab 切换的屏幕隔离:现在全屏捕获会把所有东西都给模型,隐私不友好,roadmap 里计划支持“只捕获指定窗口”
  • 桌面应用自动识别 + 上下文注入:比如检测到你在用 VS Code,自动把当前打开的项目根目录作为上下文;检测到你在用 Figma,自动抓取图层结构。这种 “native-aware context” 是浏览器版本永远做不到的方向

关于这些尚未补齐的差距,也可以对照 Gemini Mac App 还缺的 6 个功能 看看哪些是官方有希望补、哪些需要第三方来补;如果你对 Gemini 3 的另一个实时能力 Computer Use 感兴趣,Gemini 3 Computer Use 实测 那篇对坐标归一化、安全边界、per-step approval 做了完整拆解。

常见问题

Q1:Live Popover 闪退或连不上是什么原因?

A: 90% 是权限或网络。Mic/Screen 权限一定要在 macOS 系统设置里手动确认;另外 Gemini Live 的 WebSocket 端点在部分地区的网络环境下需要代理,客户端 Settings 里有自定义 proxy 选项。

Q2:能同时打开 Live 和普通文本对话吗?

A: 可以。Live Popover 和主窗口是两个独立 session,互不干扰。很多用户用 Live 做语音讨论,用主窗口并行做长文档生成。

Q3:语音打断为什么有时候反应慢?

A: 打断是通过客户端检测到你开始说话后主动 send 一个 “interrupt” 信号给服务端,端到端延迟大约 200–400ms。如果你的网络 RTT 偏高,打断会感觉不够灵敏。

Q4:Live 和官方手机版 Gemini 的语音模式有区别吗?

A: 核心能力一样(都是 Flash Live 接口),但手机版在 UI 上做了大量封装,看不到屏幕帧传输的细节;桌面客户端能看到实时的 frame rate、token 用量、WS 连接状态,更适合开发调试和深度用户。

结语

Gemini 3 Flash Live 是 Google 目前最激进的多模态接口——它把“语音、屏幕、打断”三件事同时塞进一条 WebSocket。官方 Mac app 短期内不会补 Live 能力,第三方 GeminiDesktop 是 macOS 用户最成熟的替代路径。如果你的日常工作高频涉及“边看屏幕边讨论”的场景(debug 代码、评审设计、会议同传),Live 会显著改变你的工作节奏。