Google Creative Lab ha publicado Gemma Translator, un proyecto open source que muestra cómo construir un traductor de voz completamente local alrededor de una Raspberry Pi 5. Su arquitectura combina Gemma 4 E2B, LiteRT-LM, reconocimiento y síntesis de voz local y una interfaz React para completar todo el flujo sin recurrir a una API cloud una vez descargados los modelos. Además del código, el repositorio incluye scripts de despliegue y los archivos STL para imprimir una carcasa en 3D.
Las claves de Gemma Translator en 20 segundos
- Ejecuta Gemma 4 E2B localmente mediante LiteRT-LM sobre una Raspberry Pi 5 con 8 GB.
- Moonshine realiza la transcripción y
moonshine-voicegenera el audio de respuesta. - El backend está escrito en Python y la interfaz utiliza React y Vite.
- Puede funcionar completamente offline después de instalar dependencias y descargar los modelos.
- El proyecto incluye scripts de despliegue, servicio systemd y archivos STL para construir el dispositivo.
Más que el traductor en sí, Gemma Translator resulta interesante como proyecto de referencia para desarrolladores que quieran experimentar con LLM en el edge. Enseña una arquitectura relativamente sencilla para encadenar captura de audio, speech-to-text (STT), inferencia con un modelo generativo y text-to-speech (TTS) sin que esos datos tengan que abandonar el dispositivo.
También ayuda a separar el proyecto real de algunas descripciones que han circulado sobre él. Gemma Translator no es un nuevo producto comercial de Google ni existe, por ahora, un dispositivo que vaya a llegar a las tiendas. El propio repositorio advierte de que se trata de un proyecto experimental sin soporte oficial de Google.
Así funciona Gemma Translator por dentro
La arquitectura puede dividirse en cuatro bloques principales:
- Moonshine STT recibe el audio del micrófono y lo convierte en texto.
- Gemma 4 E2B recibe esa transcripción y realiza la traducción.
- moonshine-voice TTS transforma el resultado nuevamente en voz.
- Una interfaz desarrollada con React y Vite gestiona la interacción entre las dos personas.
El backend utiliza Python y funciona como intermediario entre la interfaz y el servidor local de LiteRT-LM.
El repositorio levanta tres componentes principales: LiteRT-LM escucha de forma predeterminada en el puerto 9379, el backend proporciona la API y la interfaz puede ejecutarse mediante Vite durante el desarrollo. En producción, el propio backend sirve los recursos compilados de la interfaz a través del puerto 3000.
La estructura del proyecto refleja esta separación:
gemma-translator/
├── frontend/ # React + Vite
├── backend/ # API Python
├── deploy/ # servicio systemd
├── stl/ # carcasa imprimible en 3D
├── setup.sh
├── download_model.sh
├── start.sh
└── deploy-pi.shLenguaje del código: PHP (php)
Esto permite utilizar el repositorio como algo más que un proyecto para copiar literalmente. Un desarrollador podría mantener Gemma y sustituir la interfaz, cambiar los componentes de voz o utilizar la misma arquitectura para construir otro dispositivo de IA local.
LiteRT-LM es probablemente la pieza más interesante
El traductor utiliza gemma4-e2b, una variante compacta de Gemma 4 preparada para ejecutarse mediante LiteRT-LM.
LiteRT-LM es el entorno de Google AI Edge destinado a ejecutar modelos generativos localmente y proporciona soporte para diferentes plataformas, entre ellas Android, iOS, escritorio y Raspberry Pi.
Para este proyecto cumple una función fundamental: permite ejecutar el modelo en un equipo mucho más limitado que un servidor convencional con GPU.
El proceso de preparación está automatizado. Después de clonar el repositorio, los scripts incluidos permiten crear el entorno e instalar las dependencias:
chmod +x setup.sh download_model.sh start.sh deploy-pi.sh
./setup.sh
A continuación se descarga el modelo:
./download_model.sh
Este script obtiene gemma4-e2b y lo prepara para LiteRT-LM.
Ese paso sí requiere conexión a Internet. La característica offline se refiere al funcionamiento posterior: una vez que modelos y dependencias están instalados localmente, las traducciones no necesitan consultar una API externa.
Es una distinción importante para cualquier desarrollador que esté evaluando una arquitectura de IA en el edge.
Offline no significa que el dispositivo aparezca mágicamente configurado sin Internet. Significa que el runtime de la aplicación no depende de la conectividad.
De clonar el repositorio a tener un appliance de IA
Durante el desarrollo puede iniciarse toda la aplicación mediante:
./start.sh
El script pone en marcha LiteRT-LM, el backend Python y el servidor de desarrollo de Vite.
La interfaz queda disponible en:
http://localhost:5173Lenguaje del código: JavaScript (javascript)
mientras LiteRT-LM utiliza:
http://localhost:9379Lenguaje del código: JavaScript (javascript)
También existe un modo de producción:
./start.sh --prod
En este caso se prescinde del servidor de desarrollo de Vite y el backend sirve directamente los recursos compilados desde frontend/dist/.
La aplicación queda entonces disponible en el puerto 3000.
Pero Google Creative Lab ha incluido un paso adicional particularmente interesante para proyectos hardware: convertir todo el conjunto en un appliance que arranca automáticamente.
Para una Raspberry Pi puede utilizarse:
./deploy-pi.sh
El script instala los paquetes necesarios en Raspberry Pi OS o Debian, prepara Python, compila la aplicación React, descarga el modelo y registra un servicio systemd.
Además configura LXDE para abrir Chromium automáticamente en modo kiosco apuntando a:
http://localhost:3000Lenguaje del código: JavaScript (javascript)
El resultado se acerca bastante al patrón utilizado por muchos dispositivos comerciales basados en Linux: el sistema operativo queda oculto detrás de una aplicación que se inicia automáticamente al encender el equipo.
Una Raspberry Pi 5 con 8 GB como servidor de inferencia
El hardware de referencia tampoco resulta especialmente exótico.
El repositorio establece como requisito una Raspberry Pi 5 con 8 GB de RAM, a la que hay que añadir:
- micrófono o interfaz USB de audio;
- altavoz o salida de auriculares;
- pantalla o panel táctil;
- almacenamiento para sistema y modelos;
- alimentación o batería si se busca un dispositivo portátil.
La interfaz está diseñada específicamente pensando en pantallas pequeñas, con 480 x 320 píxeles como uno de los formatos de referencia.
Google proporciona además archivos STL para imprimir la carcasa.
No significa que exista una única lista cerrada de componentes. El proyecto funciona más como una implementación de referencia que como un kit comercial con una lista de materiales certificada.
De hecho, para un desarrollador puede resultar más interesante ejecutarlo primero en Linux o macOS antes de comprar o imprimir ningún componente.
El dispositivo tiene dos interfaces para una conversación
La aplicación está diseñada alrededor de dos interlocutores.
Cada persona dispone de un área o lane con un idioma asignado. Cuando una habla, el sistema captura el audio, realiza la transcripción, la envía a Gemma y reproduce el resultado en el idioma correspondiente a la otra.
Existen dos esquemas de teclado.
En modo horizontal hay una persona activa. La barra espaciadora alterna entre ambos interlocutores, Z funciona como push-to-talk y las flechas izquierda y derecha cambian el idioma.
En vertical cada persona dispone de controles independientes.
La selección se almacena en localStorage, bajo la clave:
keyboardMode
Por tanto, la configuración permanece entre reinicios del dispositivo.
Hay un detalle que puede resultar sorprendente tratándose de un aparato con pantalla táctil: la versión actual utiliza el teclado para iniciar la grabación y cambiar idiomas. El repositorio especifica que esos controles todavía no están habilitados directamente sobre la pantalla.
Es otro recordatorio de que se trata de código experimental y no de un producto terminado.
Todo el pipeline puede permanecer dentro del dispositivo
La principal ventaja arquitectónica aparece cuando se sigue el recorrido de una conversación:
Micrófono
↓
Moonshine STT
↓
Texto
↓
Gemma 4 E2B + LiteRT-LM
↓
Traducción
↓
moonshine-voice TTS
↓
Altavoz
Todo puede ocurrir en la Raspberry Pi.
No hay que enviar primero el audio a un servicio de reconocimiento cloud, después el texto a una API de un LLM y finalmente el resultado a otra API para sintetizar la voz.
Eso reduce dependencias externas y evita el coste variable asociado a llamadas API.
También permite desarrollar aplicaciones para lugares donde la conexión sea inexistente, cara o poco fiable: vehículos, instalaciones industriales, zonas rurales, embarcaciones o dispositivos utilizados durante viajes.
Desde el punto de vista de privacidad también existe una ventaja evidente: el diseño permite que el audio y las transcripciones permanezcan en el hardware controlado por el usuario.
Eso no convierte automáticamente el dispositivo en seguro. Una Raspberry Pi comprometida, un software modificado o una configuración incorrecta siguen pudiendo exponer información. Pero desaparece la necesidad arquitectónica de transmitir cada conversación a un proveedor externo.
Edge AI cambia algunas decisiones de arquitectura
Gemma Translator sirve además para ilustrar una cuestión que empieza a ser relevante para los desarrolladores: decidir cuándo merece la pena utilizar una API y cuándo ejecutar el modelo localmente.
La nube mantiene ventajas enormes.
Permite utilizar modelos mucho mayores, escalar recursos bajo demanda, actualizar el sistema centralmente y evitar tener que gestionar capacidad de cómputo en cada dispositivo.
El edge introduce otras propiedades.
| IA mediante API | IA en el dispositivo |
|---|---|
| Modelos de mayor tamaño | Modelos compactos |
| Necesita conectividad | Puede funcionar offline |
| Escalado centralizado | Recursos limitados por dispositivo |
| Actualizaciones centralizadas | Hay que distribuir modelos |
| Coste por consumo | Coste principalmente en hardware |
| Datos enviados al proveedor | Datos procesables localmente |
| Latencia dependiente de red | Inferencia próxima al usuario |
No existe un ganador universal.
Un chatbot empresarial con acceso a enormes bases documentales probablemente seguirá beneficiándose de infraestructura cloud. Un traductor portátil que procesa frases relativamente breves tiene características muy diferentes.
Ahí un modelo pequeño puede resultar suficiente y propiedades como privacidad, latencia y funcionamiento sin cobertura adquieren más peso.
También muestra hacia dónde quiere llevar Google a Gemma
El proyecto tiene otra lectura.
Google no está desarrollando Gemma únicamente como una familia de modelos para ejecutar en estaciones de trabajo y servidores. LiteRT-LM muestra el interés por llevar modelos generativos hasta dispositivos móviles y edge.
Gemma 4 E2B encaja precisamente en ese escenario.
La disponibilidad de modelos suficientemente pequeños cambia además la clase de aplicaciones que puede construir un desarrollador independiente. Hace pocos años, ejecutar localmente una cadena completa de reconocimiento de voz, traducción mediante un LLM y síntesis sobre un pequeño ordenador ARM habría requerido muchas más concesiones.
Ahora puede montarse sobre una Raspberry Pi.
El siguiente paso será comprobar hasta dónde pueden reducirse los requisitos. Raspberry Pi es un buen entorno experimental, pero teléfonos, ordenadores portátiles y futuros dispositivos con unidades de procesamiento neuronal (NPU) ofrecen aceleradores especializados que pueden ejecutar modelos locales con una relación rendimiento-consumo más favorable.
Gemma Translator tampoco obliga a construir exactamente un traductor.
Su arquitectura podría adaptarse a un asistente de voz privado, una interfaz para maquinaria, un terminal de atención al público sin conexión, una herramienta educativa o aplicaciones especializadas donde las conversaciones no deban salir de una red local.
Ese es probablemente el aspecto más interesante para los desarrolladores. El repositorio no ofrece simplemente los planos de un gadget; proporciona un ejemplo completo de cómo empaquetar un pequeño modelo generativo dentro de un dispositivo autónomo, desde la inferencia y el backend hasta systemd, Chromium en modo kiosco y una carcasa imprimible.
Preguntas frecuentes
¿Qué modelo utiliza Gemma Translator?
El proyecto utiliza gemma4-e2b, una variante compacta de Gemma 4, ejecutada localmente mediante LiteRT-LM.
¿Se puede ejecutar Gemma Translator sin una Raspberry Pi?
El repositorio establece Linux y macOS como plataformas para desarrollo y reserva deploy-pi.sh para convertir una Raspberry Pi 5 en el dispositivo completo. La configuración hardware documentada utiliza una Raspberry Pi 5 con 8 GB.
¿Necesita una API de Google para traducir?
No durante el funcionamiento normal. Una vez descargados el modelo y las dependencias, Gemma 4 se ejecuta localmente mediante LiteRT-LM y no necesita enviar cada traducción a un servicio cloud.
¿Gemma Translator es un producto oficial de Google?
No. Ha sido desarrollado por un pequeño equipo de Google Creative Lab y está publicado dentro del ecosistema Google Gemma, pero el repositorio advierte expresamente de que no es un producto de Google con soporte oficial.






