@googledevs:一款完全离线的翻译器,由 @GoogleGemma 4、@Antigravity 和 @Raspberry_Pi 5 构建。Gemma 翻译器是一个…

X AI KOLs Timeline 工具

摘要

Google Developers 展示了一款完全离线的语音翻译器,由 Gemma 4、Google Antigravity 和 Raspberry Pi 5 构建。开源 GitHub 仓库提供了设备端推理、自定义 Web UI 和用于便携式 AI 设备的部署脚本的代码。

一款完全离线的翻译器,由 @GoogleGemma 4、@Antigravity 和 @Raspberry_Pi 5 构建。🛠️ Gemma 翻译器是一个便携式 AI 实验项目,配备自定义界面、打印外壳和有线电子元件,由最小的 Gemma 模型提供支持。 打造你自己的 → https://t.co/P1jWGbgzi6
查看原文
查看缓存全文

缓存时间: 2026/08/12 22:33

一个完全离线的翻译器,基于 @GoogleGemma 4、@Antigravity 和 @Raspberry_Pi 5 构建。🛠️ Gemma Translator 是一个便携式 AI 实验项目,配有定制界面、打印外壳和有线电子元件,由最小的 Gemma 模型驱动。自己动手构建 → https://t.co/P1jWGbgzi6


google-gemma/gemma-translator

来源:https://github.com/google-gemma/gemma-translator

Gemma Translator

本仓库借助 Google Antigravity (https://antigravity.google/) 构建,包含用于运行由 Gemma 4 (https://ai.google.dev/gemma/docs/core) 和 LiteRT-LM (https://github.com/google-ai-edge/LiteRT-lm) 驱动的设备端、完全离线语音翻译器的代码。

本项目为小型手持显示屏(例如 480x320)优化了 Web 前端,并提供了一个与 Gemma 通信的 Python API 服务器(http.server)。文本转语音由 Moonshine (https://github.com/moonshine-ai/moonshine) 提供支持。

https://github.com/user-attachments/assets/343072ce-dc78-44a7-a783-99312845cabe

功能特性

  • 设备端推理:使用 LiteRT-LM 在本地完全运行 gemma4-e2b 模型。设置完成后无需联网。
  • 语音界面:通过麦克风捕获音频,进行处理并发送到本地模型。
  • 优化界面:为小型硬件屏幕(如 Raspberry Pi 显示屏)定制的复古终端风格。
  • 统一启动:一个脚本即可启动 LLM 服务器、Python API 和 React 前端。

前提条件

  • Python 3.10+
  • Node.js 18+(推荐 20 LTS)和 npm —— 由 deploy-pi.sh 在 Raspberry Pi OS / Debian 上自动安装
  • Linux 或 macOS

所需硬件

  • 计算设备:Raspberry Pi 5,8GB RAM
  • 音频输入:麦克风或 USB 音频采集接口
  • 音频输出:扬声器或耳机输出设备
  • 显示屏:显示器或触摸屏(例如 480x320 kiosk 显示屏)

设置说明

  1. 赋予脚本可执行权限

    确保设置、下载、启动和部署脚本具有可执行权限:

    chmod +x setup.sh download_model.sh start.sh deploy-pi.sh
    
  2. 安装依赖

    运行设置脚本以创建 Python 虚拟环境(venv)并安装所有必需软件包:

    ./setup.sh
    
  3. 下载模型

    运行模型下载脚本,从 Hugging Face 获取 gemma4-e2b 模型并将其导入 LiteRT-LM:

    ./download_model.sh
    

运行应用

在开发模式下启动所有服务(LiteRT-LM、Python API 服务器和 Vite Web 界面):

./start.sh

要以生产模式运行(跳过 Vite 开发服务器,通过 backend/server.py 在 3000 端口提供来自 frontend/dist/ 的已编译界面资源):

./start.sh --prod

应用将可通过以下地址访问:

  • Web 界面(开发):http://localhost:5173
  • Web 界面(生产)/ API 服务器:http://localhost:3000
  • LiteRT-LM:http://localhost:9379

Raspberry Pi 设备部署

要部署为 Raspberry Pi 5(8GB)上的永久 systemd kiosk 服务:

./deploy-pi.sh

此自动化脚本安装 Debian 音频/venv 软件包,设置 Python 环境,构建生产版界面资源,下载 LiteRT 模型,注册 deploy/gemma-translator.service 中的 systemd 单元,并配置 LXDE GUI 自动启动(~/.config/lxsession/rpd-x/autostart),以 kiosk 模式启动指向 http://localhost:3000 的 Chromium。

项目结构

  • frontend/ - React (Vite) Web 前端(index.html、src/、样式和 Vite 配置)。
  • backend/ - Python API 服务器(server.py 和 requirements.txt),用于 Moonshine 语音转文本、moonshine-voice 文本转语音和模型代理。
  • deploy/ - 可参数化的 systemd 服务单元模板(gemma-translator.service)。
  • stl/ - 用于 3D 打印硬件外壳的 STL 文件。
  • setup.sh - 自动化 Python 虚拟环境创建和依赖安装。
  • download_model.sh - 获取所需的 LiteRT 模型。
  • start.sh - 多进程启动器,支持 --prod 和开发模式。
  • deploy-pi.sh - 一键式 Raspberry Pi 自动化部署脚本。

键盘快捷键

Gemma Translator 支持两种键盘模式。您可以随时在**设置面板 →“键盘模式”**下拉菜单中切换。选择在重启后会被记住(存储在浏览器的 localStorage 中,键名为 keyboardMode)。

应用有两个通道(两人在 kiosk 上面对面):

  • 通道 1 / 人员 1 —— 左侧/上方通道。
  • 通道 2 / 人员 2 —— 右侧/下方通道。

每个通道都有一个循环切换语言的“转轮”,并录制语音,语音会被转写(Moonshine STT)、翻译(Gemma),并以另一通道的语言播放出来(moonshine-voice TTS)。

横向模式(默认)—— “活动人员”

每次只有一个通道是活动人员。活动通道以四角括号框出。您通过一组按键驱动所有操作,并用空格键切换焦点。

按键操作描述
空格键切换活动人员切换活动通道(人员 1 ⇄ 人员 2)。录制期间禁用。
Z录制(按住说话)按住以录制活动人员;松开以转写和翻译。
← 左箭头上一个语言向后切换活动人员的语言。
→ 右箭头下一个语言向前切换活动人员的语言。

说明:

  • 活动通道显示四角括号;录制时,括号会反转为黑色,同时该通道颜色反转。
  • 最适合单手/单人操作。

纵向模式 —— “双手”(原始映射)

每个通道都有各自的专用按键——没有活动人员概念,也没有括号高亮。两个人可以独立控制。

按键操作描述
Z录制 —— 人员 1(按住说话)按住以录制通道 1;松开以转写和翻译。
X录制 —— 人员 2(按住说话)按住以录制通道 2;松开以转写和翻译。
← 左箭头上一个语言 —— 人员 1向后切换通道 1 的语言。
→ 右箭头下一个语言 —— 人员 1向前切换通道 1 的语言。
− 减号(_)上一个语言 —— 人员 2向后切换通道 2 的语言。
+ 加号(=)下一个语言 —— 人员 2向前切换通道 2 的语言。

说明:

  • 此模式没有角括号选择高亮。
  • 最适合两名操作员各自控制自己的一侧。

通用行为(两种模式)

  • 输入焦点保护:当焦点在配置字段(<input>、<textarea> 或 <select>)上时,所有快捷键都会被忽略——例如在编辑 API 端点或设置时。
  • 录制锁定:录制进行中时,语言切换会被阻止。
  • 键盘驱动:在当前版本中,录制和语言切换仅支持键盘操作;屏幕触摸控件尚未启用。

切换模式

打开设置(⚙) → 键盘模式 → 选择横向或纵向。更改会立即生效并在设备上保留。

设置值模式
landscape活动人员方案(空格 / Z / ← →)—— 默认
vertical双手方案(Z / X / ← → / − +)

致谢

由 Google Creative Lab (https://github.com/googlecreativelab) 的一支小团队制作:

  • Alan Yam (https://github.com/alanvww)
  • Shashwath Santosh (https://x.com/shashwth)
  • Dan Motzenbecker (https://github.com/dmotz)

免责声明

这不是 Google 官方支持的产品。本项目不符合 Google 开源软件漏洞奖励计划 (https://bughunters.google.com/open-source-security) 的参与资格。

相似文章