Polymath revolutioniert die Art und Weise, wie Musikproduzenten, DJs und ML-Audioentwickler mit Musikbibliotheken arbeiten. Durch den Einsatz von maschinellem Lernen trennt das Tool automatisch Songs in einzelne Spuren (Beats, Bass etc.), quantisiert sie auf das gleiche Tempo und Beat-Grid (z.B. 120bpm), analysiert die musikalische Struktur (z.B. Vers, Chor etc.), die Tonart (z.B. C4, E3 etc.) und andere Informationen (Klangfarbe, Lautstärke etc.) und konvertiert Audio in MIDI. Das Ergebnis ist eine durchsuchbare Sample-Bibliothek, die den Workflow für Musikproduzenten, DJs und ML-Audioentwickler erheblich vereinfacht.
Anwendungsfälle Mit Polymath ist es ein Kinderspiel, Elemente aus verschiedenen Songs zu kombinieren, um einzigartige neue Kompositionen zu erstellen: Greifen Sie einfach einen Beat aus einem Funkadelic-Track, eine Bassline aus einem Tito Puente-Stück und passende Hörner aus einem Fela Kuti-Song und integrieren Sie sie nahtlos in Ihre DAW. Mit der Suchfunktion von Polymath, um verwandte Tracks zu entdecken, ist es ein Leichtes, eine polierte, einstündige Mash-up-DJ-Set zu erstellen. Für ML-Entwickler vereinfacht Polymath den Prozess der Erstellung eines großen Musikdatensatzes, z.B. für das Training generativer Modelle.
Wie funktioniert es? Die Musikquellentrennung wird mit dem Demucs-Neuronalen Netzwerk durchgeführt. Die Musikstruktursegmentierung/-kennzeichnung wird mit dem sf_segmenter-Neuronalen Netzwerk durchgeführt. Die Musikpitchverfolgung und Tonartenerkennung werden mit dem Crepe-Neuronalen Netzwerk durchgeführt. Die Musik-zu-MIDI-Transkription wird mit dem Basic Pitch-Neuronalen Netzwerk durchgeführt. Die Musikquantisierung und -ausrichtung werden mit pyrubberband durchgeführt. Die Musikinformationsrückgewinnung und -verarbeitung wird mit librosa durchgeführt.
Community Treten Sie der Polymath-Community auf Discord bei.
Voraussetzungen Sie müssen die folgende Software auf Ihrem System installiert haben: ffmpeg.
Installation Sie benötigen Python Version >=3.7 und <=3.10. Führen Sie in Ihrem Terminal aus:
git clone https://github.com/samim23/polymath
cd polymath
pip install -r requirements.txt
Wenn Sie ein Problem mit basic-pitch haben, während Sie versuchen, Polymath auszuführen, führen Sie diesen Befehl nach Ihrer Installation aus:
pip install git+https://github.com/spotify/basic-pitch.git
GPU-Unterstützung Die meisten der von Polymath verwendeten Bibliotheken verfügen über native GPU-Unterstützung durch cuda. Bitte folgen Sie den Schritten auf , um tensorflow für die Verwendung mit cuda einzurichten. Wenn Sie diese Schritte befolgt haben, werden tensorflow und torch beide automatisch die GPU erkennen und verwenden. Dies gilt nur für native Setups, für dockerisierte Bereitstellungen (siehe nächster Abschnitt) ist die GPU-Unterstützung in Kürze verfügbar.
Docker-Setup Wenn Sie Docker auf Ihrem System installiert haben, können Sie die bereitgestellte Dockerfile verwenden, um schnell ein Polymath-Docker-Image zu erstellen (wenn Ihr Benutzer nicht Teil der Docker-Gruppe ist, denken Sie daran, den folgenden Befehl mit sudo zu versehen):
docker build -t polymath ./
Um Eingabe- und Ausgabedateien zwischen Ihrem Hostsystem und dem Polymath-Docker-Container auszutauschen, müssen Sie die folgenden vier Verzeichnisse erstellen:
./input
./library
./processed
./separated
Legen Sie nun alle Dateien, die Sie mit Polymath verarbeiten möchten, in den Eingabeordner. Dann können Sie Polymath über Docker ausführen, indem Sie den Befehl docker run verwenden und alle Argumente übergeben, die Sie ursprünglich an den Python-Befehl übergeben würden, z.B. wenn Sie in einem Linux-Betriebssystem sind, rufen Sie:
docker run \
-v "$(pwd)"/processed:/polymath/processed \
-v "$(pwd)"/separated:/polymath/separated \
-v "$(pwd)"/library:/polymath/library \
-v "$(pwd)"/input:/polymath/input \
polymath python /polymath/polymath.py -a ./input/song1.wav