Skip to content

Repository files navigation

LyraFlow 🎙️✨

LyraFlow es una aplicación de dictado inteligente construida con Kotlin Multiplatform y Compose Multiplatform. Captura tu voz mediante un atajo global, la convierte en texto contextualizado y la inserta en la aplicación activa.

📸 Capturas de Pantalla

Inicio claro Inicio oscuro
Inicio claro Inicio oscuro
Ajustes Modelo Whisper local
Ajustes Modelo Whisper local

Organización de recursos

El icono canónico de identidad se conserva en assets/branding/icons/icon-transparent.png. Los recursos derivados deben generarse desde esa fuente conforme al Asset Organization Standard; las capturas documentales viven en docs/screenshots/.

Funciones actuales

  • Atajo global Ctrl + Espacio en Windows, personalizable con combinaciones de 2 o 3 teclas.
  • Captura WAV mono a 16 kHz con nivel y duración visibles.
  • Transcripción y corrección contextual mediante Gemini o cualquier API OpenAI-compatible cuyo modelo acepte audio.
  • Comprobación automática de actualizaciones desde GitHub Releases con sanitización del body y toast flotante global.
  • Modal e insignia "Acerca de la Aplicación" con opciones de apoyo oficial y donación directa.
  • Compatibilidad prevista con Whisper local mediante sidecar.
  • Inserción directa usando portapapeles y simulación de teclado.
  • Temas automático, claro y oscuro con Material 3 Expressive.
  • Preferencias persistentes para tema, modelo, atajo e inyección automática.
  • Escritorio Windows/Linux y base compartida para Android.

Tecnologías

  • Kotlin Multiplatform 2.3.10.
  • Compose Multiplatform 1.11.1.
  • Gradle 9.4.1.
  • Ktor para APIs multimodales nativas y OpenAI-compatible.
  • JNA para integraciones de escritorio.

Ejecutar en escritorio

Requiere JDK 17 o posterior. El proyecto está verificado con Temurin 25.

.\gradlew.bat :composeApp:run

Desde Ajustes puedes seleccionar Gemini o OpenAI / compatible, escribir el identificador del modelo y configurar el endpoint completo. La clave puede definirse mediante LYRAFLOW_API_KEY, GEMINI_API_KEY u OPENAI_API_KEY, o introducirse desde Ajustes. En Windows se conserva cifrada con DPAPI por proveedor; borrar el campo elimina también la copia persistida.

El adaptador compatible envía audio y la instrucción en una sola solicitud Chat Completions usando input_audio. Esto permite conectar OpenAI, gateways, Qwen, servidores vLLM/SGLang y otros servicios con ese contrato. La compatibilidad del protocolo no garantiza que todos los modelos acepten audio: el modelo y la ruta elegidos deben soportarlo.

La tarjeta Whisper local instala bajo demanda el binario x64 desde la última release oficial de ggml-org/whisper.cpp y el modelo base en los datos locales del usuario. La interfaz muestra el progreso y permite reintentar si la descarga falla.

Verificación

$env:ANDROID_HOME = Join-Path $env:LOCALAPPDATA "Android\Sdk"
.\gradlew.bat :composeApp:desktopTest :composeApp:compileDebugKotlinAndroid

Distribución

.\scripts\release\build-release.ps1 -LocalOnly

Genera y valida el instalador EXE firmado sin modificar Git ni GitHub. Para publicar la versión activa desde main:

.\scripts\release\build-release.ps1

El flujo automático crea el commit de release, el tag, realiza un push atómico y publica los artefactos junto con SHA256SUMS.txt en GitHub Releases.

Estado de plataforma

  • Windows: hotkey, audio, Gemini, OpenAI-compatible, Whisper local e inyección disponibles.
  • Linux: paquetes configurados; hotkey e inyección nativos aún en desarrollo.
  • Android: interfaz compartida compilable; captura y permisos aún pendientes.

Licencia MIT · Biglex J, 2026.

About

Lyra Flow es una app que te permite escribir con la voz, tu hablas por el micrófono y Lyra Flow ordenara tus ideas en un formato mucho más legible

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages