@livekit: 我们使用LiveKit上的Gemini 3.5 Live Translate构建了一个实时多语言多人视频通话。每个人选择自己的语言…

X AI KOLs Following 工具

摘要

LiveKit 使用 Gemini 3.5 Live Translate 构建了一个实时多语言视频通话,参与者可以用自己的语言发言并实时听到翻译。开源代码可在 GitHub 上获取。

我们使用LiveKit上的Gemini 3.5 Live Translate构建了一个实时多语言多人视频通话。每个人选择自己的语言,自然发言,并实时听到对方以自己选择的语言表达的内容。 观看演示并查看开源仓库:https://github.com/livekit-examples/gemini-live-translate…
查看原文
查看缓存全文

缓存时间: 2026/06/10 09:47

我们基于 LiveKit 和 Gemini 3.5 Live Translate 构建了一个实时多语言、多人视频通话应用。每人选择自己的语言,自然发言,实时听到对方用所选语言说话。观看演示并查看开源仓库:https://github.com/livekit-examples/gemini-live-translate…

livekit-examples/gemini-live-translate 来源:https://github.com/livekit-examples/gemini-live-translate

Live Translate 多语言视频通话。每人选择自己的语言。按需启动翻译。基于 LiveKit Agents (https://docs.livekit.io/agents/)(Python worker)和 Gemini Live API (https://ai.google.dev/gemini-api/docs/live)。架构 agent web


功能介绍

任何拥有链接的人都能作为参会者加入。每位参与者选择一种语言——这既是他们说话所用的语言,也是他们希望听到其他人说话的语言。当有人说话时,Gemini Live 会话会将其音频按需翻译成房间内存在的每一种其他语言。相同语言的配对之间直接听到原生语音,无需 Gemini 费用。

  • 默认每房间最多 8 人(可配置)
  • 支持 16 种语言,外加“无——原生直通”
  • 摄像头和麦克风默认关闭;准备好后即可开启
  • 字幕侧边栏(每位听众按其选择的语言显示),带自动滚动转写文本
  • 已准备就绪可用于 LiveKit Cloud Agents:部署 Python worker,前端在令牌生成时通过房间配置分发任务

工作原理

flowchart LR
    Alice(["AliceEN"])
    Bob(["BobES"])
    Agent["Translator agentPython workerone per LiveKit room"]
    Alice -- mic --> Agent
    Bob -- mic --> Agent
    Agent -- "tx:bob:en" --> Alice
    Agent -- "tx:alice:es" --> Bob

每位参与者选择的语言存放在其 LiveKit 的 attributes.lang 属性中。Agent 监听 participantAttributesChanged 事件,并维护一个 (说话者, 目标语言) 会话映射表——每个配对对应一个 Gemini Live 会话,跳过源语言与目标语言相同的配对。对于每个活跃的配对,Agent 向房间内发布两样东西:

  • 一个名为 tx:: 的音频轨道,携带翻译后的语音
  • 一个 lk.translation 文本流,携带对应的字幕,标记有 target_lang 前端根据 (收听者语言, 说话者语言) 相同的判断条件,为每个对等方订阅原始麦克风或对应的 tx:* 轨道。

快速开始

你需要:

  • Node.js 20+,pnpm (https://pnpm.io/)(或运行 corepack enable,并让仓库的 packageManager 字段固定版本)
  • Python 3.11+,uv (https://docs.astral.sh/uv/)
  • 一个 LiveKit Cloud (https://cloud.livekit.io) 项目(免费版可用)
  • 一个 Gemini API 密钥 (https://aistudio.google.com/apikey)
# 1. 安装依赖并生成环境文件
pnpm run setup
# 2. 在 .env.local 和 translator/.env.local 中填写凭证
# LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET(两个文件都需要)
# GEMINI_API_KEY(仅 translator/.env.local)
# 3. 同时运行前端和 agent worker
pnpm run dev

打开 ,点击 创建会话,将链接分享给另一个浏览器,选择不同的语言,取消静音。

仓库结构

gemini-live-translate-livekit/
├── src/ # Next.js 16 前端
│   ├── app/
│   │   ├── page.tsx # 着陆页
│   │   ├── api/token/route.ts # 生成令牌 + 分发翻译 agent
│   │   └── session/[id]/
│   │       ├── page.tsx # 进入前的操作(姓名 + 语言)
│   │       └── room/ # 通话中 UI
│   │           ├── RoomClient.tsx
│   │           ├── InCall.tsx
│   │           ├── VideoGrid.tsx + ParticipantTile, SelfView
│   │           ├── ControlBar.tsx + LanguagePill
│   │           ├── CaptionsSidebar.tsx
│   │           └── useTranslationRouting.ts
│   └── lib/
│       ├── languages.ts # 16 种语言 + "none" 哨兵值
│       └── config.ts # 容量上限、属性键
└── translator/ # Python LiveKit Agents worker
    ├── src/
    │   ├── agent.py # @server.rtc_session(agent_name="gemini-translator")
    │   ├── router.py # TranslationRouter(协调循环)
    │   ├── session.py # GeminiSession(每对 说话者→目标语言)
    │   ├── audio.py # PCM 胶水代码
    │   └── config.py # 模型 ID、防抖、宽限时间等
    ├── tests/test_router.py # 按需集合计算
    ├── pyproject.toml
    ├── Dockerfile # 用于 LiveKit Cloud Agents 部署
    └── livekit.toml

部署

Agent — 部署至 LiveKit Cloud Agents:

cd translator
lk agent create --secrets-file .env.local . # 首次使用
lk agent deploy                           # 后续部署

前端 — 任何能运行 Next.js 的地方均可。仓库包含一个 Dockerfile 用于容器化部署(Cloud Run、Fly.io、Render 等)。对于 Vercel,无需特殊配置,因为唯一的 API 路由是 /api/token 且无状态。在前端主机上设置:

  • LIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRET 在 agent 主机上设置:
  • LIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRETGEMINI_API_KEY

配置

src/lib/config.tstranslator/src/config.py 中设置——需同步调整:

设置默认值位置
每房间最大参与者数8MAX_PARTICIPANTS(token 路由)
会话 TTL4htoken 路由 ttl
空房间超时60stoken 路由
静音时会话宽限时间10sSESSION_GRACE_SEC(agent)
协调防抖时间250msRECONCILE_DEBOUNCE_SEC(agent)
Gemini 模型gemini-3.5-live-translate-previewGEMINI_MODEL(agent)

技术栈

  • 前端 — Next.js 16 (Turbopack),React 19,@livekit/components-reactlivekit-client
  • 令牌生成livekit-server-sdkRoomAgentDispatch + RoomConfiguration
  • Agent 运行时livekit-agents 1.5,使用 AgentServer.rtc_session()
  • 翻译 — Gemini Live API(原始的 v1beta BidiGenerateContent WebSocket,带有 translationConfig
  • 音频 I/Olivekit.rtc.AudioStream(16 kHz 单声道输入)+ AudioSource(24 kHz 单声道输出)
  • 字体 — Instrument Serif(标题)、DM Sans(正文)、DM Mono(状态)
  • 包管理pnpm + uv

许可证 MIT

Google AI Developers (@googleaidevs): 我们最新的音频模型 Gemini 3.5 Live Translate 将实时语音翻译提升到了新高度,为开发者提供跨越 70 多种语言的低延迟翻译。

通过近乎实时地处理流式语音,该模型使开发者能够构建低延迟

相似文章

Gemini 3.5 Live Translate

Product Hunt

Gemini 3.5 Live Translate 是一款全新的音频模型,用于实时语音到语音翻译。

借助 Gemini 3.5 Live Translate 实现流畅自然的语音翻译

Google DeepMind Blog

Google 发布了 Gemini 3.5 Live Translate,这是一款音频模型,支持超过 70 种语言的近乎实时的语音到语音翻译,并保留说话者的语调和节奏。该功能正在 Google 产品中逐步推出,包括 Gemini Live API、Google Meet 和 Google Translate。