Ir al contenido
angel.library

Mural: practicar idiomas hablando, con tu propia clave de OpenAI

Licencia MIT. Su lema: the language app you eventually delete — la app de idiomas que acabas borrando.

Mural es una app de práctica conversacional: hablas con un orbe animado que ajusta la dificultad según lo que respondes. No hay lecciones, rachas ni gamificación; el ejercicio es sostener una conversación hablada.

Lo interesante como proyecto no es la idea sino el montaje: dos apps nativas (SwiftUI y Jetpack Compose) contra un modelo de voz en tiempo real, con la clave de API en el dispositivo y los datos guardados localmente.

PiezaImplementación
iPhoneSwiftUI (iOS 26.1+), con Liquid Glass
AndroidJetpack Compose (Android 8.0+)
AlmacenamientoSwiftData, local en el dispositivo
Transporte de vozWebRTC
ModelosAPI de OpenAI: GPT-Live-1 y GPT-5.6 Luna

Hay un backend en PostgreSQL previsto para servicios futuros, pero la app funciona sin cuenta.

Noruego bokmål, español de España, inglés, francés, alemán, italiano, portugués de Brasil y mandarín (chino simplificado, con pinyin opcional).

No está en la App Store: hay que clonar y compilar. En iPhone:

Ventana de terminal
git clone https://github.com/Chuloo/mural
cd apps/ios
xcodebuild -project Mural.xcodeproj -scheme Mural \
-destination 'generic/platform=iOS Simulator' \
-derivedDataPath .build/DerivedData \
CODE_SIGNING_ALLOWED=NO ARCHS=arm64 build

En Android:

Ventana de terminal
cd apps/android
./gradlew :app:testDebugUnitTest :app:lintDebug :app:assembleDebug

Distribuir por TestFlight o publicar en la App Store requiere membresía del Apple Developer Program; para el simulador o tu propio dispositivo, compilar alcanza.

La app pide tu clave de OpenAI y necesita acceso a GPT-Live-1 y GPT-5.6 Luna. Dos cosas que conviene entender antes de probarla:

  • Una suscripción de ChatGPT no da crédito de API: son productos separados.
  • El uso de un modelo de voz en tiempo real se cobra por minuto de audio, no por mensaje. Una conversación larga cuesta bastante más que un chat de texto equivalente: pon un límite de gasto en la cuenta antes de la primera sesión.
  • Sin sincronización en la nube: si cambias de teléfono, el progreso no viaja.
  • Requiere conexión permanente durante la conversación.
  • Al ser una app de terceros con tu clave, revisa el código que envía audio antes de confiarle una clave con permisos amplios; una clave restringida es la precaución mínima.
  • Es un proyecto joven y se distribuye compilando: espera fricción de build, no una instalación de tienda.