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.

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

.\build-release.ps1 -LocalOnly

Genera y valida EXE, MSI y MSIX firmados sin modificar Git ni GitHub. Para publicar la versión activa desde main:

.\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