Demucs ist ein Open-Source-Tool zur Trennung von Musikspuren, das sich darauf konzentriert, gemischte Musik in einzelne Spuren wie Gesang, Schlagzeug, Bass und andere Backing-Parts aufzuteilen. Demucs wurde von Alexandre Défossez entwickelt, ursprünglich von Meta AI betrieben und wird nun vom Autor auf GitHub gepflegt. Es nutzt fortschrittliche Deep-Learning-Techniken in Kombination mit der U-Net-Faltungsarchitektur und dem Hybrid-Transformer-Modell, um hochwertige Ergebnisse bei der Spurtrennung zu erzielen. Die Version v4 führt die Hybrid-Transformer-Technologie ein, die die Trennungsgenauigkeit verbessert und sich besonders für Musikproduktion, Karaoke-Erzeugung und Audioanalyse eignet. Das Projekt bietet einen einfachen Befehlszeilenbetrieb, unterstützt CPU- und GPU-Betrieb und ist für Musikliebhaber und Profis geeignet.
Funktionsliste
- Trennen mehrerer Spuren: Unterstützung für die Trennung von Gesang, Schlagzeug, Bass, Gitarre, Klavier und anderen Backing-Tracks.
- Unterstützung für mehrere Modelle: Bietet v4 Hybridtransformator-Modelle (z. B.
htdemucs_ft
) und v3 classic-Modelle, um unterschiedlichen Bedürfnissen gerecht zu werden. - GPU-Beschleunigung: Unterstützt NVIDIA GPUs, Intel Arc und Apple MPS für eine schnellere Verarbeitung.
- Flexible Audioformate: Kompatibel mit MusDB-HQ und jeder WAV-Datei für eine breite Palette von Audioeingängen.
- Befehlszeilenbetrieb: Der Befehlszeilenbetrieb wird durch einfache Befehle ausgeführt (z. B.
demucs input_audio.mp3
), um die Spurtrennung abzuschließen. - Open Source und kostenlos: Der Code basiert auf der MIT-Lizenz, die es den Nutzern erlaubt, ihn frei zu verwenden und zu verändern.
Hilfe verwenden
Einbauverfahren
Demucs ist einfach zu installieren und eignet sich für Benutzer mit grundlegender Python-Erfahrung. Hier sind die detaillierten Installationsschritte:
- Vorbereitung der Umwelt
- Stellen Sie sicher, dass Python 3.10 oder höher auf Ihrem System installiert ist.
- Eine virtuelle Umgebung wird empfohlen, um Abhängigkeitskonflikte zu vermeiden. Führen Sie den folgenden Befehl aus, um eine virtuelle Umgebung zu erstellen:
python -m venv demucs_env source demucs_env/bin/activate # Linux/Mac demucs_env\Scripts\activate # Windows
- Installieren Sie Git und stellen Sie sicher, dass Sie die Codebasis klonen können.
- Installation über pip(Empfohlen, schnell und einfach)
Führen Sie den folgenden Befehl aus, um Demucs direkt zu installieren:pip install demucs
Diese Methode installiert automatisch die notwendigen Abhängigkeiten, wie PyTorch und torchaudio.
- Quellcode-Installation(geeignet für Entwickler oder erfordert die neueste Version)
Wenn Sie den neuesten Code oder eigene Änderungen benötigen, können Sie das Repository über GitHub klonen:git clone https://github.com/adefossez/demucs cd demucs pip install -e .
Dies wird Demucs und seine Abhängigkeiten für Szenarien installieren, in denen Sie debuggen oder an der Entwicklung teilnehmen müssen.
- GPU-Unterstützung
- Wenn Sie die GPU-Beschleunigung verwenden, stellen Sie sicher, dass Sie die GPU-Version von PyTorch installiert haben und über einen kompatiblen Grafikprozessor verfügen (NVIDIA erfordert eine Rechenleistung von 3,5 oder höher, und 3 GB oder mehr Videospeicher wird empfohlen).
- So prüfen Sie, ob die GPU verfügbar ist: Führen Sie
python -c "import torch; print(torch.cuda.is_available())"
AusgabeTrue
Zeigt an, dass die GPU verfügbar ist. - Wenn nicht genügend Videospeicher vorhanden ist, wird die
--segment 8
Parameter, um den Speicherbedarf zu reduzieren, oder fügen Sie-d cpu
Verwenden Sie die CPU-Verarbeitung.
- Häufig gestellte Fragen
- Windows-Benutzer, die auf
OSError: [WinError 126]
Manuelle Installation erforderlichlibuv
Im Folgenden finden Sie ein Beispiel dafür, wie Sie dies tun können. Die empfohlene Installation ist conda:conda install conda-forge::libuv
- Linux-Benutzer müssen sicherstellen, dass das System über
glibc 2.27
oder höher, kann eine zusätzliche Installation vonlibxcb-cursor0
.
- Windows-Benutzer, die auf
Verwendung
Die Kernfunktion von Demucs ist die Trennung von Audiospuren über die Kommandozeile. Hier sind die detaillierten Schritte, um dies zu tun:
- Grundlegende Spurtrennung
Führen Sie den folgenden Befehl aus, um den Ton zu trennen:demucs input_audio.mp3
- Die Eingangsdateien unterstützen MP3, WAV und andere gängige Formate.
- Die getrennten Spuren werden in der Datei
separated/
Ordner, der die Gesangsstimmen enthält (vocals.wav
), Schlagzeug (drums.wav
), Bass (bass.wav
) und andere.other.wav
). - Die Standardeinstellung ist die Verwendung von v4's
htdemucs
Modell beträgt die Verarbeitungszeit etwa das 1,5-fache der Audiodauer.
- Auswahl eines bestimmten Modells
Demucs bietet eine Vielzahl von Modellen, die mit den folgenden Methoden modelliert werden können-n
Parameter angegeben ist:-n htdemucs_ft
Verwenden Sie v4 zur Feinabstimmung des Modells für eine optimale Trennung.-n htdemucs
v4 Nicht-triviale Modellierung, schneller, aber etwas weniger genau.-n hdemucs_mmi
v3 Classic Modell für die Kompatibilität mit alten Versionen.
Beispiel:
demucs -n htdemucs_ft song.mp3
- Erweiterte Optionen
- Größenänderung von SegmentenWenn nicht genügend Videospeicher vorhanden ist, stellen Sie
--segment 8
Verringert den Speicherplatzbedarf, kann aber die Trennungsqualität beeinträchtigen. - Verwendung der CPUWenn die Grafikkarte nicht unterstützt wird, fügen Sie
-d cpu
::demucs -d cpu song.mp3
- Multi-Core-CPU-Beschleunigung: Hinzufügen
-j
Die Parameter werden mit mehreren Kernen verarbeitet, z. B.-j 4
Verwendet 4 CPU-Kerne. - Sechsspurige Trennungv4: unterstützt experimentelles Sechs-Spur-Modelling (mit Gitarre und Klavier), aber die Klaviertrennung kann fehlerhafter sein. Verwenden Sie
-n htdemucs_6s
.
- Größenänderung von SegmentenWenn nicht genügend Videospeicher vorhanden ist, stellen Sie
- Hilfe anzeigen
in Bewegung seindemucs --help
Alle Befehlszeilenparameter und Beschreibungen können eingesehen werden.
Featured Function Bedienung
- Karaoke-ProduktionNach der Trennung des Gesangs können Sie die Begleitung direkt verwenden (
no_vocals.wav
) Erzeugt Karaoke-Titel. - Echtzeit-TrennungMit dem VST/AU-Plug-in von Neutone kann Demucs in eine digitale Audio-Workstation (DAW) integriert werden, um eine Spurtrennung in Echtzeit zu ermöglichen.
- Online-DiensteAudiostrip (https://audiostrip.co.uk/) und MVSep bieten Anfängern, die keine lokale Umgebung haben, eine kostenlose Online-Demo auf der Grundlage von Demucs.
caveat
- Die Qualität der Trennung hängt von der Audioqualität und der Modellauswahl ab. Es wird empfohlen, eine WAV-Datei mit hoher Qualität als Eingabe zu verwenden.
- Das Projekt wird nicht aktiv gewartet und behebt nur größere Fehler, es wird empfohlen, sich auf GitHub
README
Erhalten Sie die neuesten Informationen. - Stellen Sie sicher, dass mindestens 8 GB Systemspeicher (sowohl physischer als auch Auslagerungsspeicher) zur Verfügung stehen, wenn Sie lange Audiodaten verarbeiten.
Anwendungsszenario
- Musikproduktion
Musikproduzenten können mit Demucs Spuren aufteilen, Gesang, Schlagzeug oder Bass individuell anpassen, Remixe erstellen oder neue Versionen von Songs erstellen. - Karaoke-Produktion
Durch die Trennung von Gesang und Backing-Tracks können Anwender schnell hochwertige Karaoke-Backing-Tracks für den Heimgebrauch oder die kommerzielle Nutzung erstellen. - Audioanalyse
Forscher können Demucs verwenden, um Audiospuren zu isolieren, musikalische Strukturen zu analysieren oder andere Audiomodelle zu trainieren, die für die akademische Forschung geeignet sind. - Nachbearbeitung von Film und Fernsehen
Film- und TV-Postproduktionsteams können Hintergrundmusik und Dialoge isolieren, neu synchronisieren oder Soundeffekte anpassen, um die Flexibilität bei der Postproduktion zu erhöhen.
QA
- Welche Audioformate werden von Demucs unterstützt?
Demucs unterstützt gängige Audioformate wie MP3, WAV, etc. WAV wird für eine optimale Trennung empfohlen. - Was passiert, wenn die GPU nicht verfügbar ist?
erhöhen.-d cpu
Die Parameter werden von der CPU verarbeitet, die zwar langsamer ist, aber keinen Grafikprozessor für die Ausführung benötigt. - Was ist, wenn die Trennungsergebnisse nicht zufriedenstellend sind?
Versuchen Sie, das Modell zu wechseln (z. B.-n htdemucs_ft
), oder überprüfen Sie die Qualität des Eingangssignals. Eine schlechte Audioqualität kann Trennungsfehler verursachen. - Wie kann ich meinen Speicherplatzbedarf verringern?
ausnutzen--segment 8
Parameter oder Umgebungsvariablen setzenPYTORCH_NO_CUDA_MEMORY_CACHING=1
Der Speicherbedarf kann reduziert werden.