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.
| Inicio claro | Inicio oscuro |
|---|---|
![]() |
![]() |
| Ajustes | Modelo Whisper local |
|---|---|
![]() |
![]() |
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/.
- Atajo global
Ctrl + Espacioen 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, MiniMax o cualquier API OpenAI-compatible cuyo modelo acepte audio.
- Atajo global independiente para cancelar un dictado en curso sin transcribirlo.
- 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, atajos e inyección automática.
- Escritorio Windows/Linux y base compartida para Android.
- 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.
Requiere JDK 17 o posterior. El proyecto está verificado con Temurin 25.
.\gradlew.bat :composeApp:runDesde 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.
MiniMax usa su transcriptor dedicado: el audio entra por POST /speech_to_text (modelo asr-1.0) y el texto resultante se refina después con MiniMax-M3.1-Flash mediante /chat/completions. No es el mismo camino que el adaptador OpenAI-compatible porque MiniMax no acepta audio en Chat Completions. El endpoint que LyraFlow guarda es la URL base (https://api.minimax.io/v1) y la clave se lee de MINIMAX_API_KEY. MiniMax limita cada audio a 500 segundos y 50 MB.
Los dos atajos globales por defecto son Ctrl + Espacio para alternar grabar/detener y Ctrl + Shift + Espacio para cancelar el dictado en curso. Ambos se editan en Ajustes y no pueden coincidir entre sí; si coinciden, LyraFlow vuelve al valor por defecto.
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.
$env:ANDROID_HOME = Join-Path $env:LOCALAPPDATA "Android\Sdk"
.\gradlew.bat :composeApp:desktopTest :composeApp:compileDebugKotlinAndroid.\scripts\release\build-release.ps1 -LocalOnlyGenera y valida el instalador EXE firmado sin modificar Git ni GitHub. Para publicar la versión activa desde main:
.\scripts\release\build-release.ps1El 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.
- 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.



