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
- ~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
.litertlmde ~2,5-3 GB se descarga una vez de HuggingFace, no se empaqueta en el APK. - Voz de salida con el
TextToSpeechintegrado de Android; entrada por push-to-talk.
Qué fue difícil
- MediaPipe
tasks-genaino 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í.