← Todos los proyectos

En pausa Android 2025

EdgeMind

Un asistente de voz para Android con Gemma 4, audio nativo y llamadas a herramientas, funcionando por completo en el teléfono. Sin nube, sin cuenta, sin telemetría.

Rol
Desarrollador único · investigación e ingeniería
Stack
  • Android
  • Kotlin
  • Gemma 4 E2B
  • LiteRT-LM
  • Audio nativo
  • Tool calling
  • IA on-device
~2.5 GB
modelo Gemma 4 ejecutándose en el teléfono
8
herramientas por voz: temporizador, calendario, contactos y más
800 → 200 ms
por token tras un KV cache escrito a mano (rama Phi-3)

EdgeMind es un asistente de voz para Android que se ejecuta por completo en el dispositivo: sin nube, sin cuenta, sin telemetría. Mantienes pulsado un botón, hablas, y un modelo local te responde o invoca una herramienta. Tu voz nunca sale del teléfono.

Qué hace

  • Gemma 4 E2B con audio nativo. Los bytes del micro entran directamente al modelo, sin etapa separada de speech-to-text.
  • Llamadas a herramientas por reflexión. Temporizador, calendario (lectura y escritura), contactos, transporte de música, linterna, volumen, abrir apps y búsqueda web, todo en el dispositivo contra las APIs de Android.
  • Modelo descargado. El archivo .litertlm de ~2,5-3 GB se descarga una vez de HuggingFace, no se empaqueta en el APK.
  • Voz de salida con el TextToSpeech integrado de Android; entrada por push-to-talk.

Qué fue difícil

  • MediaPipe tasks-genai no cargaba el adaptador de audio de Gemma 4: el modelo lo fija a CPU, mientras que ese runtime cablea el executor de audio a GPU. Bajar a LiteRT-LM, que expone backends por modalidad, es el único camino que funciona.
  • LiteRT-LM decodifica el audio con miniaudio, que lee el formato de una cabecera. Prefijar una cabecera RIFF/WAVE de 44 bytes al PCM en bruto es lo que convierte “miniaudio error -10” en entrada de audio funcional.
  • Una rama anterior con Phi-3 es donde ocurrió la mayor parte del aprendizaje: un KV cache que llevó la generación de unos 800 ms/token a 200 ms.

Estado

En pausa. Las partes difíciles funcionan: el modelo carga, el audio entra, las herramientas se invocan, las respuestas salen. Lo que queda es pulido - sobre todo registrarse como asistente por defecto del dispositivo y un modo manos libres con VAD on-device.

Código: github.com/IgnacioLD/edgemind.

Borrador con IA, edición a mano. Lo publico cuando me suena a mí.

Cuéntame qué estás construyendo.

Leo cada correo yo mismo y respondo en unos días. Productos, colaboraciones, trabajo en Android o IA en el dispositivo, o simplemente un café en Valencia.