11 puntos por GN⁺ 2026-03-19 | 1 comentarios | Compartir por WhatsApp
  • Una aplicación de código abierto que convierte tus archivos de música personales en formato karaoke, con funciones de separación de voz, sincronización de letras y puntuación en tiempo real
  • Usa el modelo UVR Karaoke o Demucs para separar la voz y el acompañamiento, y WhisperX para transcribir automáticamente las letras palabra por palabra
  • Con puntuación de tono basada en entrada de micrófono y funciones de estrellas e historial por canción, mide tu habilidad para cantar como si fuera un juego
  • Soporta varias interacciones como múltiples perfiles de usuario, reproducción de archivos de video como fondo, fondos dinámicos basados en shaders de GPU y control con gamepad
  • Funciona en Linux, macOS y Windows, y cuenta con una arquitectura autocontenida que se ejecuta como un único ejecutable sin necesidad de instalación

Funciones principales

  • La función de separación vocal (Stem separation) usa UVR Karaoke o Demucs para separar la voz y el acompañamiento
    • Se puede ajustar el volumen de la voz guía
  • La función de letras a nivel de palabra (Word-level lyrics) usa WhisperX para alinear cada palabra con el audio
    • Si ya existen letras en LRCLIB, se usan primero
  • La función de puntuación de tono (Pitch scoring) calcula la puntuación en tiempo real mientras cantas con el micrófono
    • Permite seguir tu progreso con estrellas y tabla de puntuaciones por canción

Usuarios e interfaz

  • La función de perfiles de jugador (Player profiles) permite que varios usuarios mantengan su propio historial de puntuaciones
    • No hay pérdida de datos al cambiar de cantante
  • La función de soporte para archivos de video (Video file support) permite cargar archivos .mp4 o .mkv para reproducir el video original como fondo
    • Separa automáticamente la voz desde el audio
  • Los fondos dinámicos (Dynamic backgrounds) pueden usar efectos de shader de GPU (plasma, aurora, nebulosa, etc.), loops de video de Pixabay o el video original como fondo
  • El soporte de gamepad permite navegar por menús, elegir canciones y controlar la reproducción con un control

Cómo funciona

  • En la etapa Separate, UVR Karaoke o Demucs separan la pista en voz y acompañamiento
    • Extrae automáticamente el audio de archivos de video
  • En la etapa Transcribe, busca letras sincronizadas en LRCLIB y, si no existen, hace una transcripción palabra por palabra con WhisperX
  • En la etapa Play, reproduce el acompañamiento mientras muestra las letras resaltadas, la puntuación de tono, los fondos dinámicos y la entrada del gamepad

Plataformas y distribución

  • Puede ejecutarse en Linux(x86_64, aarch64), macOS(ARM, Intel) y Windows(x86_64)
  • Soporta aceleración por GPU mediante CUDA o Metal; en entornos no compatibles funciona con CPU
  • ffmpeg, Python, PyTorch y los modelos de ML se inicializan automáticamente en el primer arranque, por lo que no requiere un proceso de instalación aparte gracias a su estructura de binario único

Avisos de actualización

  • Puedes recibir por correo electrónico noticias sobre nuevos lanzamientos y actualizaciones, y darte de baja en cualquier momento si no lo deseas

1 comentarios

 
GN⁺ 2026-03-19
Comentarios en Hacker News
  • Acabo de bajar el código fuente, compilarlo y ejecutarlo, y me sorprendió que en el primer arranque empezara a descargar binarios de internet
    Aunque ya tenía instalados FFMpeg y Python, intentó instalarlos de nuevo
    La app falló al ejecutarse porque buscó el Python instalado dentro de la carpeta lib. Sorprende que un error tan básico haya llegado al código de una release
    Además, al ejecutar el script de compilación del tarball, intentó instalar un contenedor de Docker, lo cual también me desconcertó. No entiendo por qué necesitarías Docker para compilar una app de escritorio

    • Muchas apps incluyen su propio runtime de Python. Blender, Houdini, Bitwig y Krita también lo hacen
      Krita usa el Python del sistema durante la compilación, pero el resultado final incluye su propio Python
      Aun así, en este caso quizá habría sido mejor empaquetarlo en vez de descargarlo
      En cuanto a seguridad, npm o pip también tienen riesgos parecidos, así que no es algo totalmente fuera de lo común
    • La respuesta a “¿por qué lo habrán hecho así?” probablemente sea “en mi computadora sí funcionaba
    • El ecosistema de instalación de Python es un caos. Cada SO tiene rutas y métodos distintos, y además se mezclan Conda y varios gestores de paquetes
      Así que entiendo que el desarrollador haya querido crear un entorno único del que la app pudiera depender
    • Últimamente están aumentando las apps que intentan hacer instalaciones sin permiso en el sistema
      Hace poco ejecuté una app de Python y me sorprendió que intentara instalar Node/NPM
      Mi computadora es mi espacio de trabajo, así que me parece que una app instale cosas por su cuenta es un riesgo de ataque a la cadena de suministro y además una falta de respeto hacia el usuario
    • Al final, esto quizá sea el inicio de otro debate interminable tipo enlace estático vs enlace dinámico o vim vs emacs
  • Nightingale es una app que hice yo: le indicas una carpeta de música y convierte automáticamente las canciones en pistas de karaoke
    Ofrece separación de voz, sincronización de letras, puntuación de tono, soporte para gamepad, aceleración por GPU y más
    Todo el procesamiento se hace en local, y no hay cuentas, suscripciones ni telemetría
    En el primer arranque configura automáticamente los modelos de ML y el entorno de Python necesarios
    Está hecha en Rust y con el motor Bevy, y es un proyecto totalmente de código abierto

    • Antes estudié procesamiento de señales, y en esa época separar pistas era difícil
      Me pareció interesante ver que ahora se resuelve usando redes neuronales como Demucs
      Me pregunto si un enfoque puramente matemático todavía podría competir
    • Probé con B.E.D - Walk Away y después de los 30 segundos la sincronización de la letra se desfasó
      Haría falta una función para saltar hacia adelante y atrás durante la reproducción, y estaría bien tener manejo de puntuación y edición del resultado
      Aun así, gracias por publicarlo como FOSS
    • Es un proyecto realmente genial. Casi no hay apps de karaoke del lado FOSS, así que esto es un gran avance
      Me pregunto cuáles son los requisitos mínimos para CUDA y si hay planes de soporte de aceleración iGPU para AMD/Intel
      Tengo ganas de que mi familia lo pruebe
    • Me da curiosidad la diferencia con UltraSinger. Me gustaría saber si alguien comparó la calidad
    • Me pregunto si WhisperX también maneja bien letras en chino (hanzi)
    • Probé canciones en japonés y la alineación de letras no funcionó para nada
      En el código se separan las palabras con line_text.split(), pero como el japonés no usa espacios, así no va a funcionar
      Parece que haría falta un analizador morfológico como fugashi
  • Me hizo recordar al antiguo reproductor multimedia Nightingale basado en Firefox
    Se desarrolló como alternativa a iTunes/Winamp, pero lleva más de 10 años sin actividad
    Todavía se pueden ver rastros en getnightingale.com

    • Si no recuerdo mal, era el proyecto sucesor de Songbird
  • Hace tiempo hice un proyecto parecido de seguimiento de tono
    Me pregunto si la línea de tono de la app actual muestra cuál es la siguiente nota

    • Por ahora solo tiene una función de puntuación de tono simple; la predicción de la siguiente nota todavía no está implementada
      Lo tomo como una buena sugerencia de función
  • Que sea un proyecto local, de código abierto y hecho por pasión de verdad conmueve
    Noticias así me devuelven la fe en la humanidad

  • Viendo el historial de commits, el ritmo de desarrollo ha sido muy rápido
    Probablemente se apoyó en desarrollo asistido por IA
    Más que “la IA reemplaza a los desarrolladores”, creo que la IA aumentó la viabilidad de proyectos pequeños

    • Ya existía software parecido en la época de Windows 95. Incluso corría en un Pentium 2
  • No entendía exactamente qué hacía la app; pensé que quitaba la letra, pero en realidad creí que quitaría la voz
    Probé varias canciones, pero la voz seguía oyéndose. No entendí cómo ajustar la eliminación de voz

    • Puedes ajustar el nivel de guía con las teclas + / - del teclado
      Consulta la guía de controles
  • Es un proyecto realmente genial.
    Me pregunto si se puede procesar la canción en un dispositivo y reproducirla en otro, o si puede funcionar en modo servidor/cliente

    • La respuesta relacionada está en issue #7
  • Como músico, siempre he pensado que estaría bien tener una app que muestre la letra siguiéndola durante la interpretación con la banda
    Ahora dejo el teléfono sujeto al soporte del micrófono, pero enseguida pierde la posición

    • Sí, incluso Spotify suele fallar bastante con este tipo de sincronización en tiempo real