- Eine Open-Source-Anwendung, die persönliche Musikdateien in ein Karaoke-Format umwandelt und Funktionen wie Stimmtrennung, Liedtext-Synchronisierung und Echtzeit-Bewertung bietet
- Trennt mit dem UVR Karaoke-Modell oder Demucs Gesang und Begleitung und transkribiert mit WhisperX automatisch Liedtexte auf Wortebene
- Misst die Gesangsleistung spielerisch mit tonhöhenbasierter Bewertung über Mikrofoneingabe, Sternenbewertung und songbezogenen Aufzeichnungen
- Unterstützt verschiedene Interaktionen wie mehrere Benutzerprofile, Hintergrundwiedergabe von Videodateien, dynamische Hintergründe auf Basis von GPU-Shadern und Gamepad-Steuerung
- Läuft auf Linux, macOS, Windows und besitzt eine autarke Struktur, die als einzelne ausführbare Datei ohne Installation funktioniert
Hauptfunktionen
- Die Funktion Stimmtrennung (Stem separation) trennt mit dem UVR Karaoke-Modell oder Demucs Gesang und Begleitung
- Die Lautstärke des Guide-Gesangs kann angepasst werden
- Die Funktion Liedtexte auf Wortebene (Word-level lyrics) richtet mit WhisperX jedes Wort am Audio aus
- Falls in LRCLIB bereits Liedtexte vorhanden sind, werden diese bevorzugt verwendet
- Die Funktion Tonhöhenbewertung (Pitch scoring) berechnet in Echtzeit eine Punktzahl, wenn über ein Mikrofon gesungen wird
- Fortschritte lassen sich mit Sternenbewertung und einer songbezogenen Punktetafel verfolgen
Benutzer und Oberfläche
- Mit Spielerprofilen (Player profiles) können mehrere Benutzer ihre jeweiligen Punktestände behalten
- Kein Datenverlust, auch wenn zwischen Sängern gewechselt wird
- Die Funktion Unterstützung für Videodateien (Video file support) lädt .mp4- oder .mkv-Dateien und spielt das Originalvideo im Hintergrund ab
- Trennt den Gesang automatisch aus dem Audio
- Dynamische Hintergründe (Dynamic backgrounds) nutzen GPU-Shader-Effekte (Plasma, Aurora, Nebel usw.), Pixabay-Videoloops oder das Originalvideo als Hintergrund
- Gamepad-Unterstützung ermöglicht Menünavigation, Songauswahl und Wiedergabesteuerung per Controller
Funktionsweise
- Im Schritt Separate trennt UVR Karaoke oder Demucs den Track in Gesang und Begleitung
- Extrahiert Audio aus Videodateien automatisch
- Im Schritt Transcribe werden synchronisierte Liedtexte in LRCLIB gesucht; falls keine vorhanden sind, erfolgt die Transkription auf Wortebene mit WhisperX
- Im Schritt Play wird die Begleitung abgespielt, während hervorgehobene Liedtexte, Tonhöhenbewertung, dynamische Hintergründe und Gamepad-Eingaben gemeinsam angezeigt werden
Plattformen und Bereitstellung
- Lauffähig auf Linux(x86_64, aarch64), macOS(ARM, Intel) und Windows(x86_64)
- Unterstützt GPU-Beschleunigung über CUDA oder Metal, in nicht unterstützten Umgebungen läuft es auf der CPU
- ffmpeg, Python, PyTorch, ML-Modelle werden beim ersten Start automatisch gebootstrappt, sodass dank einer Single-Binary-Struktur kein separater Installationsprozess nötig ist
Update-Benachrichtigung
- Neue Releases und Update-Neuigkeiten können per E-Mail empfangen werden; das Abonnement kann jederzeit beendet werden
1 Kommentare
Hacker-News-Kommentare
Ich habe gerade den Sourcecode heruntergeladen, gebaut und ausgeführt, und war überrascht, dass die App direkt beim ersten Start begann, Binärdateien aus dem Internet herunterzuladen
Obwohl FFMpeg und Python bereits installiert waren, versuchte sie, diese erneut zu installieren
Der Start schlug fehl, weil die App im Ordner
libnach dem installierten Python suchte. Erstaunlich, dass so ein grundlegender Fehler im Release-Code gelandet istAls ich außerdem das Build-Skript aus dem Tarball ausgeführt habe, wollte es einen Docker-Container installieren. Docker zum Bauen einer Desktop-App ergibt für mich keinen Sinn
Krita nutzt beim Build zwar das System-Python, packt in das Ergebnis aber trotzdem ein eigenes Python
Trotzdem wäre es bei dieser App wohl besser gewesen, alles zu bündeln statt es herunterzuladen
Sicherheitsprobleme sind dabei nicht völlig außergewöhnlich, denn npm oder pip haben ähnliche Risiken
Deshalb kann ich nachvollziehen, dass der Entwickler eine einheitliche Umgebung schaffen wollte, auf die sich die App verlassen kann
Kürzlich habe ich auch eine Python-App gestartet, die plötzlich Node/NPM installieren wollte
Mein Computer ist mein Arbeitsbereich; wenn eine App eigenmächtig Dinge installiert, ist das für mich ein Supply-Chain-Angriffsrisiko und zugleich respektlos gegenüber dem Nutzer
Das von mir entwickelte Nightingale ist eine App, die nach Auswahl eines Musikordners Titel automatisch in Karaoke-Tracks umwandelt
Sie bietet Vocal-Separation, Lyrics-Sync, Pitch-Scoring, Gamepad-Unterstützung, GPU-Beschleunigung und mehr
Alles wird lokal verarbeitet, und es gibt weder Konten noch Abos oder Telemetrie
Beim ersten Start richtet sie die benötigten ML-Modelle und die Python-Umgebung automatisch ein
Geschrieben ist sie in Rust mit der Bevy-Engine und das Projekt ist vollständig Open Source
Interessant zu sehen, dass das heute mit neuronalen Netzen wie Demucs gelöst wird
Ich frage mich, ob ein rein mathematischer Ansatz konkurrenzfähig sein könnte
Es wäre gut, beim Abspielen eine Sprungfunktion vor/zurück zu haben, ebenso eine bessere Behandlung von Satzzeichen und eine Funktion zum Bearbeiten der Ergebnisse
Trotzdem danke, dass du das als FOSS veröffentlicht hast
Mich würde interessieren, wie die Mindestanforderungen für CUDA aussehen und ob Unterstützung für iGPU-Beschleunigung von AMD/Intel geplant ist
Ich freue mich schon darauf, dass meine Familie das ausprobiert
Im Code werden Wörter mit
line_text.split()getrennt, aber Japanisch hat keine Leerzeichen, also kann das nicht funktionierenMan bräuchte wohl einen morphologischen Analyzer wie fugashi
Das hat mich an den alten Firefox-basierten Nightingale Media Player erinnert
Er wurde als Alternative zu iTunes/Winamp entwickelt, ist aber seit über zehn Jahren praktisch inaktiv
Unter getnightingale.com kann man noch Spuren davon sehen
Ich habe früher einmal ein ähnliches Pitch-Tracking-Projekt gebaut
Ich frage mich, ob die Pitch-Linie in der aktuellen App dazu dient, die nächste Tonhöhe anzuzeigen
Ich nehme das aber gern als guten Feature-Vorschlag auf
Lokal lauffähig, Open Source und ein Projekt aus echter Leidenschaft — das ist wirklich berührend
Solche Nachrichten geben einem wieder Glauben an die Menschheit
Wenn man sich die Commit-Historie ansieht, war die Entwicklungsgeschwindigkeit sehr hoch
Vermutlich wurde KI-gestützte Entwicklung genutzt
Entgegen der Aussage, dass „KI Entwickler ersetzt“, denke ich eher, dass KI die Machbarkeit kleiner Projekte deutlich erhöht hat
Ich wusste zuerst nicht genau, was die App eigentlich macht, und dachte, sie würde die Lyrics entfernen
Ich habe mehrere Songs ausprobiert, aber die Vocals waren immer noch zu hören. Ich verstehe nicht, wie man die Vocal-Entfernung anpasst
Siehe Steuerungsanleitung
Wirklich ein großartiges Projekt.
Ich frage mich, ob man Songs auf einem Gerät verarbeiten und auf einem anderen abspielen kann, oder ob ein Server-/Client-Modus möglich ist
Als Musiker denke ich oft, dass es großartig wäre, eine App zu haben, die bei einem Bandauftritt die Lyrics in Echtzeit mitführt und anzeigt
Momentan befestige ich mein Handy am Mikrofonständer, aber es verliert schnell die richtige Position