- 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
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 releaseAdemá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
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
Así que entiendo que el desarrollador haya querido crear un entorno único del que la app pudiera depender
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
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
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
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
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
En el código se separan las palabras con
line_text.split(), pero como el japonés no usa espacios, así no va a funcionarParece 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
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
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
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
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
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