Glosso Studio — Entrenamiento de pronunciación a nivel de fonema, offline

active
Kotlin Multiplatform Jetpack Compose ONNX Runtime wav2vec 2.0 Room Koin Ktor

Glosso Studio

La mayoría de apps de pronunciación pasan tu voz por speech-to-text y te dicen si las palabras coinciden. Eso te dice muy poco sobre cómo suenas en realidad. Glosso Studio pasa tu voz por un reconocedor fonético — un modelo acústico wav2vec 2.0, en el dispositivo vía ONNX Runtime — y te da feedback a nivel de fonema individual.

Lees una frase. La app te muestra qué fonemas clavaste, cuáles se desviaron, y exactamente en qué parte de la palabra pronunciaste mal. Con el tiempo trackea tus fonemas débiles y los saca en drills con repetición espaciada. Hay un curriculum estructurado en seis niveles de dificultad, de Principiante a Maestría.

Funciona offline. La inferencia ML, el procesado de audio, el curriculum — todo en el dispositivo. Sin cuenta, sin ida y vuelta a la nube, sin telemetría.

Por qué existe

El aprendiz adulto de idiomas tiene un problema con la pronunciación. Las apps o lo ignoran (Duolingo, Babbel) o lo tratan superficialmente. Las pocas que lo intentan ("¿coincide el speech-to-text con el texto objetivo?") te dan un OK por farfullar una frase de un modo que ningún nativo aprobaría.

El análisis fonético es la herramienta correcta y ya es lo bastante pequeño como para correr en un móvil. Glosso convierte esa viabilidad técnica en un producto usable.

Cómo funciona

Voz que entra. El usuario graba una frase. El audio se baja a 8 kHz y pasa por una implementación propia de MFCC (Mel-Frequency Cepstral Coefficient) — normalizada por RMS a un valor objetivo de ~3000 para mantener el input consistente independientemente de lo alto que hable el usuario.

Reconocimiento de fonemas. El audio entra en un único modelo wav2vec 2.0 multilingüe corriendo sobre ONNX Runtime — un solo modelo cubre todos los idiomas soportados. La salida es una secuencia de fonemas IPA para el enunciado.

Comparación. Los fonemas que produjo el usuario se alinean contra los esperados de la frase objetivo. Las desviaciones se puntúan, y la precisión por fonema se agrega en una nota para la frase, la palabra y los fonemas individuales.

Feedback. El usuario ve su nota y la transcripción IPA con color por fonema, además de la opción de volver a oír la pronunciación objetivo completa desde el TTS de referencia.

Repetición espaciada. Los fonemas débiles se trackean en Room (ReviewEntity / ReviewDao) y se sacan en drills con el algoritmo SM-2. Streaks, niveles de maestría y progreso por idioma — todo local.

Stack

Móvil — Kotlin Multiplatform. Compose para la UI Android. Koin para DI. Ktor para HTTP. Room para la base de datos local (actualmente en schema v8 con historial completo de migraciones).

ML/Audio

  • ONNX Runtime para inferencia en el dispositivo
  • Un único modelo acústico wav2vec 2.0 multilingüe que cubre los cinco idiomas soportados (inglés, francés, español, alemán, latín)
  • Implementación propia de MFCC, sin librería DSP de terceros
  • Speech controller propio con normalización RMS
  • ~318 MB de pesos ONNX, gestionados con Git LFS

Capa TTS

  • Qwen3-TTS (Apache-2.0) para audio de referencia primario
  • Piper TTS para voces específicas por idioma
  • Inworld TTS 1.5 Max vía DeepInfra para la voz “Diego” en español

Sitio marketingglosso-studio-website es un sitio estático en Hugo (tema Blowfish) en glossostudio.com.

Distribución — Play Store, F-Droid y GitLab Releases. Totalmente gratis en todos los canales — sin paywall, sin compras dentro de la app. Licencia AGPLv3. Metadata F-Droid en formato fastlane.

Cosas que me gustan

Análisis fonético de calidad cloud, offline. wav2vec 2.0 + ONNX Runtime te da precisión por fonema en un Android de gama media. Sin servidor, sin API calls, sin rate limits. Este es el verdadero diferencial frente a cualquier otra app de pronunciación.

Carga dinámica de assets. Las DBs de curriculum engordarían el APK si se enviasen todas juntas. En su lugar, el APK base es pequeño, y los assets de curriculum específicos de cada idioma se descargan bajo demanda desde el GitLab Package Registry la primera vez que el usuario abre ese nivel.

Pipeline de audio real. Normalización RMS, MFCC propio a 8 kHz, soporte para varias velocidades de reproducción, drills basados en fonemas. Nada de esto es de estantería.

Repetición espaciada SM-2 con tracking de fonemas débiles. No solo repaso a nivel de frase — la base de datos trackea los fonemas concretos con los que el usuario lucha y sesga la selección de drills hacia ellos.

Limpio para F-Droid. Builds reproducibles, sin SDKs propietarios, AGPLv3, metadata fastlane completa. Revisado y aceptado en F-Droid.

Estado

Live y enviando. Actualmente v2.2.6 (versionCode 2207). Disponible en la Play Store, F-Droid y vía GitLab Releases. Totalmente gratis en todos los canales, AGPLv3.

Cinco idiomas hoy: inglés (US/GB), francés, español, alemán, latín. El de latín da especial gusto.

GitLab: shirobyte421/glosso-studio. Mirror en GitHub: IgnacioLD/glosso-studio.