nn~ の最新リリースを入手してください!必ず、インストールに適したバージョンをダウンロードしてください。
Mac ユーザーの場合、Mac が M1-2 であり、Max/MSP または PureData のインストールが Rosetta を使用していない場合にのみ、 arm64 バージョンをダウンロードする必要があります。
Windows ユーザーの場合、現時点では、 nn~
パッケージ内のすべての.dll
ファイルを「Max.exe」実行可能ファイルの隣にコピーする必要があります。
Max インストールの Package フォルダー ( Documents/Max 8/Packages/
など) にある.tar.gz
ファイルを解凍します。
その後、 nn~
オブジェクトをインスタンス化できます。インストールによっては、次のような隔離警告が表示される場合があります。
ほとんどの場合、削除を続行すると、 nn~
が次回更新されるまでこの警告が無効になります。 MacOS が外部をブロックし続ける場合は、自分でコンパイルする必要がある場合があります。
nn~
オブジェクトを右クリックしてヘルプ パッチを開き、タブに従ってこのプロジェクトの詳細を確認してください。
Pd インストールの Package フォルダー (つまり、 Documents/Pd/externals/
にある.tar.gz
ファイルを解凍します。次に、 Pd/File/Preferences/Path
メニューに、 nn_tilde
フォルダーを指す新しいパスを追加できます。
MacOS では、Max/MSP とは異なり、PureData には自動隔離削除手順が含まれていません。したがって、手動で行う必要があります。ターミナルを起動し、 nn_tilde
フォルダーにcd
。次のコマンドで問題が解決します
xattr -r -d com.apple.quarantine .
nn~
の核心は、Max/MSP または PureData と深層学習用の libtorch C++ インターフェイス間の変換レイヤーです。 nn~
単独では空のシェルのようなもので、動作するには事前トレーニングされたモデルが必要です。ここでいくつかの RAVE モデル、またはここでいくつかの vschaos2 モデルを見つけることができます。
nn~
の事前トレーニング済みモデルは、拡張子が.ts
のtorchscript ファイルです。コンピュータ上のどこかにフォルダを作成します。たとえば、
Documents/pretrained_models/
このパスを Max または PureData インクルード パス (Max: Options/File Preferences
、 PureData: File/Preferences/Path
) に追加します。
これが完了したら、次の構文を使用してモデルをロードできます (ここでは、 Documents/pretrained_models/decoder_only.ts
にある事前トレーニング済みモデルをロードします)。
最大/MSP | ピュアデータ |
---|---|
PureData バージョンには.ts
拡張子を含める必要があることに注意してください。ロードされたモデルに応じて、モデルの異なる入力と出力に対応して、異なる数のインレット/アウトレットが存在します。
特定の事前トレーニング済みモデルには、効果や使用法が異なる複数の異なるメソッドが含まれる場合があります。たとえば、RAVE モデルには、モデルの異なるサブパートに対応する 3 つの異なるメソッドがあります。例として、次の表で説明します。
メソッド名 | 説明 | 入力 | 出力 |
---|---|---|---|
エンコード | オーディオ信号を潜在的な軌跡にエンコードします | オーディオ信号 | 複数の潜在的な軌跡 |
デコードする | 潜在的な軌跡をオーディオ信号にデコードします | 複数の潜在的な軌跡 | オーディオ信号 |
前方へ(デフォルト) | オーディオ信号のエンコードとデコード | オーディオ信号 | オーディオ信号 |
ユーザーは、必要なメソッドを呼び出すnn~
に 2 番目の引数を追加することで、インスタンス化中にメソッドを切り替えることができます。
最大/MSP | ピュアデータ |
---|---|
特別な属性を使用して、初期化後にモデルを構成することができます。そのタイプと効果はモデル自体によって完全に定義されます。ただし、モデルを有効または無効にするために 0 または 1 に設定できるenable
属性を除き、コストを節約できる可能性があります。アップ計算。
モデル属性は、次の構文でmessageを使用して設定できます。
set ATTRIBUTE_NAME ATTRIBUTE_VAL_1 ATTRIBUTE_VAL_2
Max/MSP および PureData グラフィカル オブジェクトを使用すると、以下に示すように、2 つのモデル属性 (つまり、生成温度と生成モード) と特別なenable
属性があるように、モデルの動作を変更する直感的な方法が得られます。
最大/MSP | ピュアデータ |
---|---|
属性リストと値もモデルに依存するため、モデルのドキュメントで取得する必要があります。
nn~
は内部的に、適切な計算負荷を維持するのに役立つ循環バッファ メカニズムがあります。以下に示すように、メソッド宣言の後に追加の整数を使用してサイズを変更できます。
最大/MSP | ピュアデータ |
---|---|
nn~
の Max/MSP リリースには、追加の外部機能、つまりmc.nn~
とmcs.nn~
が含まれており、Max 8+ のマルチカナル機能を使用してnn~
によるパッチ適用プロセスを簡素化し、オプションで計算負荷を軽減できます。
次の例では、2 つのオーディオ ファイルが同じモデルで並行してエンコードされ、デコードされています。
このパッチは、 mc.nn~
とバッチ操作を使用することで、視覚的にも計算的にも改善できます。
mc.nn~
を使用して、さまざまなバッチにわたって多管信号を構築します。上の例では、各マルチカナル信号には 2 つの異なるカナルがあります。また、以下の例に示すように、さまざまな次元にわたってマルチカナル信号を構築するmcs.nn~
external も提案します。
上の例では、 nn~ rave encode 2
オブジェクトによって生成された 2 つのマルチカナル信号には、それぞれ 16 の潜在次元に対応する 16 本のカナルがあります。これは、並列処理するサンプルの数に対応する明示的な数のインレット/アウトレットを作成することで、 mc.nn~
のバッチ処理機能を維持しながら、パッチ適用に役立ちます。
要約すると、通常のnn~
1 つの例で動作し、モデルの入力/出力と同じ数のインレット/アウトレットがあります。 mc.nn~
external はnn~
に似ていますが、複数の例を同時に処理できます。 mcs.nn~
バリアントは少し異なり、複数のサンプルを同時に処理できますが、サンプルごとに 1 つのインレット/アウトレットがあります。
計算を有効/無効にして、モデルを削除せずに計算を保存します。バイパス機能の動作と同様です。
モデルを動的にリロードします。トレーニング中にモデルの状態を定期的に更新する場合に便利です。
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
外部ファイルを~/Documents/Max 8/Packages/nn_tilde/externals/
内にコピーします。 cmake 呼び出しに-DPUREDATA_INCLUDE_DIR=/Applications/Pd-X.XX-X.app/Contents/Resources/src/
追加することで、PureData 用のnn~
を構築できます。
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
nn~ は Raspberry Pi 上でコンパイルして使用できますが、軽量の深層学習モデルの使用を検討する必要がある場合があります。現在、64 ビット OS のみをサポートしています。
次を使用して PureData 用の nn~ をインストールします
curl -s https://raw.githubusercontent.com/acids-ircam/nn_tilde/master/install/raspberrypi.sh | bash
この研究は IRCAM で主導され、以下のプロジェクトから資金提供を受けています。