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 설치 패키지 폴더(예: 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 모델에는 모델의 다양한 하위 부분에 해당하는 세 가지 방법이 있습니다. 예를 들어 다음 표에서 이에 대해 설명하겠습니다.
메소드 이름 | 설명 | 입력 | 출력 |
---|---|---|---|
인코딩하다 | 오디오 신호를 잠재 궤적으로 인코딩합니다. | 오디오 신호 | 다중 잠재 궤적 |
풀다 | 잠재 궤적을 오디오 신호로 디코딩합니다. | 다중 잠재 궤적 | 오디오 신호 |
앞으로 (기본값) | 오디오 신호를 인코딩 하고 디코딩합니다. | 오디오 신호 | 오디오 신호 |
사용자는 원하는 메서드를 호출하는 nn~
에 두 번째 인수를 추가하여 인스턴스화 중에 메서드 간에 전환할 수 있습니다.
최대/MSP | 퓨어데이터 |
---|---|
모델을 활성화하거나 비활성화하기 위해 0 또는 1로 설정할 수 있는 enable
속성을 제외하고 유형과 효과는 모델 자체에 의해 완전히 정의되는 특수 속성을 사용하여 초기화 후 모델을 구성할 수 있습니다. 계산까지.
모델 속성은 다음 구문을 사용하여 message 를 사용하여 설정할 수 있습니다.
set ATTRIBUTE_NAME ATTRIBUTE_VAL_1 ATTRIBUTE_VAL_2
Max/MSP 및 PureData 그래픽 개체를 사용하면 아래에 표시된 것처럼 두 가지 모델 속성(예: 생성 온도 및 생성 모드)과 특수 enable
속성이 있는 모델의 동작을 수정하는 직관적인 방법으로 이어질 수 있습니다.
최대/MSP | 퓨어데이터 |
---|---|
속성 목록과 값은 모델에 따라 다르며 모델 문서에서 검색해야 합니다.
내부적으로 nn~
에는 합리적인 계산 부하를 유지하는 데 도움이 되는 순환 버퍼 메커니즘이 있습니다. 아래와 같이 메소드 선언 뒤에 추가 정수를 사용하여 크기를 수정할 수 있습니다.
최대/MSP | 퓨어데이터 |
---|---|
nn~
의 Max/MSP 릴리스에는 추가 외부 요소, 즉 mc.nn~
및 mcs.nn~
포함되어 있어 Max 8+의 다중 채널 기능을 사용하여 nn~
의 패치 프로세스를 단순화하고 선택적으로 계산 부하를 줄일 수 있습니다.
다음 예에서는 두 개의 오디오 파일이 인코딩된 후 동일한 모델에 의해 병렬로 디코딩됩니다.
이 패치는 mc.nn~
사용하고 배치 작업을 사용하여 시각적 으로나 계산적으로 향상될 수 있습니다.
mc.nn~
사용하여 우리는 다양한 배치에 대해 다중 운하 신호를 구축합니다. 위의 예에서 각 다중 근관 신호에는 2개의 서로 다른 근관이 있습니다. 또한 아래 예와 같이 다양한 차원에 걸쳐 다중 채널 신호를 구축하는 mcs.nn~
external을 제안합니다.
위의 예에서 nn~ rave encode 2
객체에 의해 생성된 두 개의 다중 채널 신호에는 각각 16개의 잠재 차원에 해당하는 16개의 채널이 있습니다. 이는 병렬로 처리하려는 예제 수에 해당하는 명시적인 개수의 입력/출력을 생성하여 mc.nn~
의 일괄 처리 기능을 유지하면서 패치를 수행하는 데 도움이 될 수 있습니다.
요약하면 일반 nn~
단일 예에서 작동하며 모델에 입력/출력이 있는 만큼 많은 입구/출구가 있습니다. mc.nn~
외부는 nn~
과 비슷하지만 동시에 여러 예제를 처리할 수 있습니다. mcs.nn~
변형은 약간 다르며 동시에 여러 예제를 처리할 수 있지만 예제마다 하나의 입구/출구가 있습니다 .
모델을 삭제하지 않고 계산을 저장하려면 계산을 활성화/비활성화합니다. 바이패스 기능이 작동하는 방식과 유사합니다.
모델을 동적으로 다시 로드합니다. 훈련 중에 모델 상태를 주기적으로 업데이트하려는 경우 유용할 수 있습니다.
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에서 주도했으며 다음 프로젝트에서 자금을 지원 받았습니다.