Schnappen Sie sich die neueste Version von nn~! Stellen Sie sicher, dass Sie die richtige Version für Ihre Installation herunterladen.
Mac-Benutzer sollten die arm64-Version genau dann herunterladen, wenn Ihr Mac ein M1-2 ist und Ihre Installation von Max/MSP oder PureData nicht Rosetta verwendet!
Für Windows-Benutzer ist es vorerst erforderlich, dass alle .dll
Dateien im nn~
-Paket neben die ausführbare Datei „Max.exe“ kopiert werden.
Entpacken Sie die .tar.gz
Datei im Paketordner Ihrer Max-Installation, also in Documents/Max 8/Packages/
.
Anschließend können Sie ein nn~
-Objekt instanziieren. Abhängig von Ihrer Installation erhalten Sie möglicherweise eine Quarantänewarnung wie diese
In den meisten Fällen wird diese Warnung durch Fortfahren mit der Entfernung bis zum nächsten Update von nn~
deaktiviert. Wenn MacOS das Externe weiterhin blockiert, müssen Sie es möglicherweise selbst kompilieren.
Klicken Sie mit der rechten Maustaste auf das nn~
-Objekt, um den Hilfe-Patch zu öffnen, und folgen Sie den Registerkarten, um mehr über dieses Projekt zu erfahren.
Dekomprimieren Sie die Datei .tar.gz
im Paketordner Ihrer Pd-Installation, also in Documents/Pd/externals/
. Anschließend können Sie im Menü Pd/File/Preferences/Path
einen neuen Pfad hinzufügen, der auf den Ordner nn_tilde
verweist.
Unter MacOS umfasst PureData im Gegensatz zu Max/MSP kein automatisches Verfahren zum Entfernen der Quarantäne. Deshalb müssen wir es manuell tun. Starten Sie ein Terminal und cd
in den Ordner nn_tilde
. Der folgende Befehl behebt das Problem
xattr -r -d com.apple.quarantine .
Im Kern ist nn~
eine Übersetzungsschicht zwischen Max/MSP oder PureData und der libtorch-C++-Schnittstelle für Deep Learning. Für sich genommen ist nn~
wie eine leere Hülle und erfordert für den Betrieb vorab trainierte Modelle . Ein paar RAVE-Modelle finden Sie hier, oder ein paar vschaos2-Modelle hier.
Vorab trainierte Modelle für nn~
sind Torchscript-Dateien mit der Erweiterung .ts
. Erstellen Sie irgendwo auf Ihrem Computer einen Ordner, zum Beispiel in
Documents/pretrained_models/
und fügen Sie diesen Pfad zum Max- oder PureData-Include-Pfad hinzu (Max: Options/File Preferences
, PureData: File/Preferences/Path
).
Sobald dies erledigt ist, können Sie ein Modell mit der folgenden Syntax laden (hier, um ein vorab trainiertes Modell zu laden, das sich in Documents/pretrained_models/decoder_only.ts
befindet).
Max / MSP | PureData |
---|---|
Beachten Sie, dass Sie die Erweiterung .ts
in die PureData-Version einbinden müssen . Je nach geladenem Modell gibt es eine unterschiedliche Anzahl an Ein-/Ausgängen, entsprechend den unterschiedlichen Ein- und Ausgängen des Modells.
Ein bestimmtes vorab trainiertes Modell kann über mehrere verschiedene Methoden mit unterschiedlichen Effekten und Verwendungsmöglichkeiten verfügen. Das RAVE-Modell verfügt beispielsweise über drei verschiedene Methoden, die unterschiedlichen Unterteilen des Modells entsprechen. Zur Veranschaulichung werden wir sie in der folgenden Tabelle beschreiben:
Methodenname | Beschreibung | Eingaben | Ausgänge |
---|---|---|---|
kodieren | Kodiert ein Audiosignal in eine latente Flugbahn | Audiosignal | mehrere latente Flugbahnen |
dekodieren | Dekodiert eine latente Flugbahn in ein Audiosignal | mehrere latente Flugbahnen | Audiosignal |
vorwärts (Standard) | Kodiert und dekodiert ein Audiosignal | Audiosignal | Audiosignal |
Der Benutzer kann während der Instanziierung zwischen Methoden wechseln, indem er ein zweites Argument zu nn~
hinzufügt und die gewünschte Methode aufruft.
Max / MSP | PureData |
---|---|
Es ist möglich, Modelle nach ihrer Initialisierung mithilfe spezieller Attribute zu konfigurieren, deren Typ und Wirkung vollständig vom Modell selbst definiert werden, mit Ausnahme des Attributs enable
, das entweder auf 0 oder 1 gesetzt werden kann, um das Modell zu aktivieren oder zu deaktivieren, was möglicherweise zu Einsparungen führt Up-Berechnung.
Modellattribute können mithilfe von „messages“ mit der folgenden Syntax festgelegt werden:
set ATTRIBUTE_NAME ATTRIBUTE_VAL_1 ATTRIBUTE_VAL_2
Durch die Verwendung von Max/MSP- und PureData-Grafikobjekten kann dies zu einer intuitiven Möglichkeit führen, das Verhalten des Modells zu ändern, wie unten gezeigt, wo wir zwei Modellattribute (d. h. Generierungstemperatur und Generierungsmodus) und das spezielle enable
haben.
Max / MSP | PureData |
---|---|
Die Attributliste und -werte sind wiederum modellabhängig und sollten in der Dokumentation des Modells abgerufen werden.
Intern verfügt nn~
über einen Ringpuffermechanismus, der dabei hilft, eine angemessene Rechenlast aufrechtzuerhalten. Sie können die Größe durch die Verwendung einer zusätzlichen Ganzzahl nach der Methodendeklaration ändern, wie unten gezeigt
Max / MSP | PureData |
---|---|
Die Max/MSP-Version von nn~
enthält zusätzliche externe Elemente, nämlich mc.nn~
und mcs.nn~
, die die Nutzung der Multikanalfähigkeiten von Max 8+ ermöglichen, um den Patching-Prozess mit nn~
zu vereinfachen und optional die Rechenlast zu verringern.
In den folgenden Beispielen werden zwei Audiodateien vom selben Modell parallel kodiert und dann dekodiert
Dieser Patch kann sowohl visuell als auch rechnerisch verbessert werden, indem mc.nn~
und Batch-Operationen verwendet werden
Mit mc.nn~
bauen wir die Multikanalsignale über die verschiedenen Chargen auf. Im obigen Beispiel verfügt jedes Mehrkanalsignal über zwei verschiedene Kanäle. Wir schlagen auch die externe Version mcs.nn~
vor, die Mehrkanalsignale über die verschiedenen Dimensionen aufbaut, wie im folgenden Beispiel gezeigt
Im obigen Beispiel haben die beiden Mehrkanalsignale, die vom Objekt nn~ rave encode 2
erzeugt werden, jeweils 16 Kanäle, entsprechend den 16 latenten Dimensionen. Dies kann beim Patchen helfen und gleichzeitig die Batch-Fähigkeiten von mc.nn~
beibehalten, indem eine explizite Anzahl von Ein-/Ausgängen erstellt wird, die der Anzahl der Beispiele entspricht, die wir parallel verarbeiten möchten.
Um es noch einmal zusammenzufassen: Das reguläre nn~
arbeitet mit einem einzelnen Beispiel und hat so viele Ein-/Ausgänge wie das Modell Ein-/Ausgänge hat. Das externe mc.nn~
ähnelt nn~
, kann jedoch mehrere Beispiele gleichzeitig verarbeiten. Die Variante mcs.nn~
ist etwas anders und kann mehrere Beispiele gleichzeitig verarbeiten, verfügt aber pro Beispiel über einen Einlass/Auslass .
Aktivieren/deaktivieren Sie die Berechnung, um Berechnungen zu speichern, ohne das Modell zu löschen. Ähnlich wie eine Bypass -Funktion funktionieren würde.
Lädt das Modell dynamisch neu. Kann nützlich sein, wenn Sie den Status eines Modells während eines Trainings regelmäßig aktualisieren möchten.
git clone https://github.com/acids-ircam/nn_tilde --recursive
cd nn_tilde
mkdir build
cd build
cmake ../src/ -DCMAKE_PREFIX_PATH=/path/to/libtorch -DCMAKE_BUILD_TYPE=Release
make
.mxo
External-Datei in ~/Documents/Max 8/Packages/nn_tilde/externals/
Sie können nn~
für PureData erstellen, indem Sie -DPUREDATA_INCLUDE_DIR=/Applications/Pd-X.XX-X.app/Contents/Resources/src/
zum cmake-Aufruf hinzufügen.
git clone https://github.com/acids-ircam/nn_tilde --recurse-submodules
cd nn_tilde
mkdir build
cd build
cmake .. s rc -A x64 -DCMAKE_PREFIX_PATH= " <unzipped libtorch directory> " -DPUREDATA_INCLUDE_DIR= " <path-to-pd/src> " -DPUREDATA_BIN_DIR= " <path-to-pd/bin> "
cmake --build . --config Release
Während nn~ auf dem Raspberry Pi kompiliert und verwendet werden kann, müssen Sie möglicherweise die Verwendung einfacherer Deep-Learning-Modelle in Betracht ziehen. Wir unterstützen derzeit nur 64-Bit-Betriebssysteme.
Installieren Sie nn~ für PureData mit
curl -s https://raw.githubusercontent.com/acids-ircam/nn_tilde/master/install/raspberrypi.sh | bash
Diese Arbeit wird am IRCAM geleitet und wurde durch die folgenden Projekte finanziert