Home

Awesome

<img style="float: left;" src="assets/logo.png" width="40" />   SCYCLONE | AI

Scyclone AI repository is an extension to the main Scyclone repository. Scyclone is an audio plugin that utilizes neural timbre transfer technology to offer a new approach to audio production. The plugin builds upon RAVE methodology, a realtime audio variational auto encoder, facilitating neural timbre transfer in both single and couple inference mode. <br /><br />This repository contains a comprehensive step-by-step instruction that will guide you through the process of creating your own custom sounding presets (training scripts adopted from RAVEs original Github-Page). You can use both the Colab notebooks or command line to train models.

Colab

Installation

Scyclone uses RAVE as its timbre transfer algorithm. To install RAVE, create a new virtual environment, activate it and run:

pip install acids-rave

Install ffmpeg:

conda install ffmpeg

Data Preprocessing

RAVE's original preprocessing code accepts various file extentions. To preprocess your data, run the script:

rave preprocess --input_path /path/to/audio --output_path /dataset/path --sampling_rate 48000

Training

In our experiments we used v1 of RAVE with specific configurations, making the model suitable for the plugin's environment. Please note that configurations other than ones mentioned below may lead to an undesirable outcome or cause errors during the export process.

rave train --config architectures/scyclone-config-v1.gin --db_path /dataset/path --name training_name --override LATENT_SIZE=16 --override CAPACITY=32 

Export onnx

Run this script to export the model after training.

rave export_onnx --run /path/to/run

ORT Conversion

We now need to convert the ONNX model to ORT (onnxruntime) format, which is essential for a customized and streamlined version of the ONNX Runtime static library to be utilized within Scyclone. This conversion ensures that the model is compatible with the specific requirements of the plugin and it enables an optimal performance of the model.

Assuming you have used a virtual environment for training your model, to avoid potential dependency conflicts and incompatibilities, we reccommend deactivating the previous virtual environment and follow these steps.

  1. Create a virtual environment $ python3 -m venv venv

  2. Activate it (Mac) $ source ./venv/bin/activate (Windows) $ .\venv\Scripts\activate.bat

  3. Install dependencies $ pip install -r requirements.txt

  4. cd into the ort-builder directory

  5. Place the .onnx model in the ort-builder directory

  6. Run $ ./convert-model-to-ort.sh filename.onnx (replace filename.onnx with your filename)

Usage

Once you have the trained model exported, you are ready to use it as a preset inside Scyclone.

interface

References

RAVE Original repo: https://github.com/acids-ircam/RAVE

ORT Conversion: https://github.com/olilarkin/ort-builder

Some code for the Jupyter notebooks adopted from: https://github.com/moiseshorta