From 559d6f31e83b15a880fdb72fa80001e72045135a Mon Sep 17 00:00:00 2001 From: Mish Ushakov Date: Mon, 18 Jan 2021 19:19:58 +0100 Subject: [PATCH] Updated docs --- .gitignore | 1 - README.md | 68 ++++++++++++------- data/README.md | 19 +++++- data/{ts9_in.wav => ts9_test1_in_FP32.wav} | Bin data/{ts9_out.wav => ts9_test1_out_FP32.wav} | Bin figures/example_plot.png | Bin 0 -> 67026 bytes notebooks/colab_GPU_playground.ipynb | 2 +- 7 files changed, 64 insertions(+), 26 deletions(-) rename data/{ts9_in.wav => ts9_test1_in_FP32.wav} (100%) rename data/{ts9_out.wav => ts9_test1_out_FP32.wav} (100%) create mode 100644 figures/example_plot.png diff --git a/.gitignore b/.gitignore index 4e002af..9420a15 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ lightning_logs/ *.ckpt *.pickle -*.wav # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/README.md b/README.md index 5a6e907..fc8162c 100644 --- a/README.md +++ b/README.md @@ -35,21 +35,51 @@ For a great explanation of how it works, check out blog post from original pedal http://teddykoker.com/2020/05/deep-learning-for-guitar-effect-emulation/ +## Setup + +> Jupyter Notebooks for Google Colab are available in [notebooks](notebooks) + +1. Install [Python 3](https://www.python.org/downloads/) with pip package manager +2. Install [git](https://git-scm.com/downloads) +3. Create and enter virtual environment + ```sh + python -m venv . + ``` + + ```sh + . bin/activate + ``` +4. Clone the repository + ```sh + git clone https://github.com/GuitarML/PedalNetRT.git src/ + ``` +5. Enter the directory and install the dependencies using `pip` package manager + ```sh + cd src + ``` + + ```sh + python -m pip install -r requirements.txt + ``` + + (Optional development dependencies) + + ```sh + python -m pip install -r requirements-dev.txt + ``` + ## Data `data/ts9_test1_in_FP32.wav` - Playing from a Fender Telecaster, bridge pickup, max tone and volume
`data/ts9_test1_out_FP32.wav` - Split with JHS Buffer Splitter to Ibanez TS9 Tube Screamer (max drive, mid tone and volume).
-`models/ts9_epoch=1362.ckpt` - Pretrained model weights - +`models/pedalnet/pedalnet.ckpt` - Pretrained model weights -## Usage **Run effect on .wav file**: Must be single channel, 44.1 kHz, FP32 wav data (not int16) ```bash -# must be same data used to train -python prepare_data.py data/ts9_test1_in_FP32.wav data/ts9_test1_out_FP32.wav +python train.py data/ts9_test1_in_FP32.wav data/ts9_test1_out_FP32.wav # specify input file and desired output file python predict.py my_input_guitar.wav my_output.wav @@ -60,21 +90,19 @@ python predict.py my_input_guitar.wav my_output.wav **Train**: ```bash -python prepare_data.py data/ts9_test1_in_FP32.wav data/ts9_test1_out_FP32.wav # or use your own! -python train.py +python train.py data/ts9_test1_in_FP32.wav data/ts9_test1_out_FP32.wav -python train.py --resume_training=path_to_ckpt_file # to continue training from .ckpt file +python train.py --resume # to resume training python train.py --gpus "0,1" # for multiple gpus -python train.py --cpu=1 # for cpu training -python train.py -h # help (see for other hyperparameters) - +python train.py --cpu # for cpu training +python train.py -h # help (see for other hyperparameters) ``` **Test**: ```bash python test.py # test pretrained model -python test.py --model lightning_logs/version_{X}/epoch={EPOCH}.ckpt # test trained model +python test.py --model your_trained_model.ckpt # test trained model ``` Creates files `y_test.wav`, `y_pred.wav`, and `x_test.wav`, for the ground truth output, predicted output, and input signal respectively. @@ -85,22 +113,21 @@ output, predicted output, and input signal respectively. The .ckpt model must be converted to a .json model to run in the plugin. Usage: - python convert_pedalnet_to_wavnetva.py --model=your_trained_model.ckpt + python export.py --model=your_trained_model.ckpt Generates a file named "converted_model.json" that can be loaded into the VST plugin. **Analysis**: -You can also use "plot_wav.py" to evaluate the trained PedalNet model. By +You can also use "plot.py" to evaluate the trained PedalNet model. By default, this will analyze the three .wav files from the test.py output. It will output analysis plots and calculate the error to signal ratio. -Usage (after running "python test.py --model=your_model.ckpt"): +Usage (after running "python test.py --model=your_trained_model.ckpt"): - python plot_wav.py - -![app](https://github.com/keyth72/pedalnet/blob/master/figures/example_plot.png) + python plot.py +![plot.py output](figures/example_plot.png) Public spreadsheet for sharing analysis results (can request write access through google account):
https://docs.google.com/spreadsheets/d/1sIkhW3cdLkMc8bYrYspE8xzdCrJbyWXg_I0vAuJec88/edit?usp=sharing @@ -137,8 +164,3 @@ Helpful tips on training models: 6. This WaveNet model is effective at reproducing distortion/overdrive, but not reverb/delay effects (or other time-based effects). Mostly untested on compressor/limiter effects, but initial results seem promising. - - - Note: Added an experimental Google Colab notebook to train pedalnet models on TPU's. - Upload "colab_TPU_training.ipynb" in Google Colab, and upload this pedalnet - repository to your Google Drive to use. diff --git a/data/README.md b/data/README.md index 7fe1038..cfa4e0a 100644 --- a/data/README.md +++ b/data/README.md @@ -1 +1,18 @@ -here is the training data +# Training data + +1. Must be single channel, 44.1 kHz, FP32 wav data (not int16) +2. Wav files should be 3 - 4 minutes long, and contain a variety of + chords, individual notes, and playing techniques to get a full spectrum + of data for the model to "learn" from. +3. A buffer splitter was used with pedals to obtain a pure guitar signal + and post effect signal. +4. Obtaining sample data from an amp can be done by splitting off the original + signal, with the post amp signal coming from a microphone (I used a SM57). + Keep in mind that this captures the dynamic response of the mic and cabinet. + In the original research the sound was captured directly from within the amp + circuit to have a "pure" amp signal. +5. When recording samples, try to maximize the volume levels without clipping. + The levels you train the model at will be reproduced by the plugin. Also try + to make the pre effect and post effect wav samples equal in volume levels. + Even though the actual amp or effect may raise the level significantly, this isn't + necessarily desirable in the end plugin. diff --git a/data/ts9_in.wav b/data/ts9_test1_in_FP32.wav similarity index 100% rename from data/ts9_in.wav rename to data/ts9_test1_in_FP32.wav diff --git a/data/ts9_out.wav b/data/ts9_test1_out_FP32.wav similarity index 100% rename from data/ts9_out.wav rename to data/ts9_test1_out_FP32.wav diff --git a/figures/example_plot.png b/figures/example_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..7c96fca3193a369c3628d2fbb7361be74dc1d098 GIT binary patch literal 67026 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 YY+yqQs|^ib0lw6pzIsxmV*cTO0De=0.17.1\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz (829kB)\n","\u001b[K |████████████████████████████████| 829kB 12.7MB/s \n","\u001b[?25hRequirement already satisfied: tensorboard>=1.14 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (2.3.0)\n","Requirement already satisfied: torch>=1.1 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (1.7.0+cu101)\n","Requirement already satisfied: numpy>=1.16.4 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (1.18.5)\n","Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (4.41.1)\n","Requirement already satisfied: google-auth<2,>=1.6.3 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.17.2)\n","Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (0.10.0)\n","Requirement already satisfied: wheel>=0.26; python_version >= \"3\" in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (0.35.1)\n","Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (2.23.0)\n","Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.15.0)\n","Requirement already satisfied: grpcio>=1.24.3 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.33.2)\n","Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.7.0)\n","Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (50.3.2)\n","Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (3.3.3)\n","Requirement already satisfied: protobuf>=3.6.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (3.12.4)\n","Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.0.1)\n","Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (0.4.2)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.6/dist-packages (from torch>=1.1->pytorch_lightning==0.7.3) (3.7.4.3)\n","Requirement already satisfied: dataclasses in /usr/local/lib/python3.6/dist-packages (from torch>=1.1->pytorch_lightning==0.7.3) (0.8)\n","Requirement already satisfied: rsa<5,>=3.1.4; python_version >= \"3\" in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (4.6)\n","Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (4.1.1)\n","Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (0.2.8)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (3.0.4)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (1.24.3)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (2.10)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (2020.11.8)\n","Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /usr/local/lib/python3.6/dist-packages (from markdown>=2.6.8->tensorboard>=1.14->pytorch_lightning==0.7.3) (2.0.0)\n","Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.6/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=1.14->pytorch_lightning==0.7.3) (1.3.0)\n","Requirement already satisfied: pyasn1>=0.1.3 in /usr/local/lib/python3.6/dist-packages (from rsa<5,>=3.1.4; python_version >= \"3\"->google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (0.4.8)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/dist-packages (from importlib-metadata; python_version < \"3.8\"->markdown>=2.6.8->tensorboard>=1.14->pytorch_lightning==0.7.3) (3.4.0)\n","Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=1.14->pytorch_lightning==0.7.3) (3.1.0)\n","Building wheels for collected packages: future\n"," Building wheel for future (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for future: filename=future-0.18.2-cp36-none-any.whl size=491057 sha256=745be7372a3c702a9eb466c1cb82625633700e071d9cd422b6f7da25da5d8cdf\n"," Stored in directory: /root/.cache/pip/wheels/8b/99/a0/81daf51dcd359a9377b110a8a886b3895921802d2fc1b2397e\n","Successfully built future\n","Installing collected packages: future, pytorch-lightning\n"," Found existing installation: future 0.16.0\n"," Uninstalling future-0.16.0:\n"," Successfully uninstalled future-0.16.0\n","Successfully installed future-0.18.2 pytorch-lightning-0.7.3\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"XBb2THG2BtLm","colab":{"base_uri":"https://localhost:8080/"},"outputId":"17f2b4ec-51ba-487d-f745-9786de93df64"},"source":["!python3 train.py data/ts9_in.wav data/ts9_out.wav"],"execution_count":null,"outputs":[{"output_type":"stream","text":["\rEpoch 1484: 75% 18/24 [00:02<00:00, 7.85it/s, loss=0.026, v_num=2]\n","\rValidating: 0% 0/6 [00:00=0.17.1\n","\u001b[?25l Downloading https://files.pythonhosted.org/packages/45/0b/38b06fd9b92dc2b68d58b75f900e97884c45bedd2ff83203d933cf5851c9/future-0.18.2.tar.gz (829kB)\n","\u001b[K |████████████████████████████████| 829kB 12.7MB/s \n","\u001b[?25hRequirement already satisfied: tensorboard>=1.14 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (2.3.0)\n","Requirement already satisfied: torch>=1.1 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (1.7.0+cu101)\n","Requirement already satisfied: numpy>=1.16.4 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (1.18.5)\n","Requirement already satisfied: tqdm>=4.41.0 in /usr/local/lib/python3.6/dist-packages (from pytorch_lightning==0.7.3) (4.41.1)\n","Requirement already satisfied: google-auth<2,>=1.6.3 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.17.2)\n","Requirement already satisfied: absl-py>=0.4 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (0.10.0)\n","Requirement already satisfied: wheel>=0.26; python_version >= \"3\" in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (0.35.1)\n","Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (2.23.0)\n","Requirement already satisfied: six>=1.10.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.15.0)\n","Requirement already satisfied: grpcio>=1.24.3 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.33.2)\n","Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.7.0)\n","Requirement already satisfied: setuptools>=41.0.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (50.3.2)\n","Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (3.3.3)\n","Requirement already satisfied: protobuf>=3.6.0 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (3.12.4)\n","Requirement already satisfied: werkzeug>=0.11.15 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (1.0.1)\n","Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in /usr/local/lib/python3.6/dist-packages (from tensorboard>=1.14->pytorch_lightning==0.7.3) (0.4.2)\n","Requirement already satisfied: typing-extensions in /usr/local/lib/python3.6/dist-packages (from torch>=1.1->pytorch_lightning==0.7.3) (3.7.4.3)\n","Requirement already satisfied: dataclasses in /usr/local/lib/python3.6/dist-packages (from torch>=1.1->pytorch_lightning==0.7.3) (0.8)\n","Requirement already satisfied: rsa<5,>=3.1.4; python_version >= \"3\" in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (4.6)\n","Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (4.1.1)\n","Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.6/dist-packages (from google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (0.2.8)\n","Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (3.0.4)\n","Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (1.24.3)\n","Requirement already satisfied: idna<3,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (2.10)\n","Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests<3,>=2.21.0->tensorboard>=1.14->pytorch_lightning==0.7.3) (2020.11.8)\n","Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /usr/local/lib/python3.6/dist-packages (from markdown>=2.6.8->tensorboard>=1.14->pytorch_lightning==0.7.3) (2.0.0)\n","Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.6/dist-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=1.14->pytorch_lightning==0.7.3) (1.3.0)\n","Requirement already satisfied: pyasn1>=0.1.3 in /usr/local/lib/python3.6/dist-packages (from rsa<5,>=3.1.4; python_version >= \"3\"->google-auth<2,>=1.6.3->tensorboard>=1.14->pytorch_lightning==0.7.3) (0.4.8)\n","Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.6/dist-packages (from importlib-metadata; python_version < \"3.8\"->markdown>=2.6.8->tensorboard>=1.14->pytorch_lightning==0.7.3) (3.4.0)\n","Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard>=1.14->pytorch_lightning==0.7.3) (3.1.0)\n","Building wheels for collected packages: future\n"," Building wheel for future (setup.py) ... \u001b[?25l\u001b[?25hdone\n"," Created wheel for future: filename=future-0.18.2-cp36-none-any.whl size=491057 sha256=745be7372a3c702a9eb466c1cb82625633700e071d9cd422b6f7da25da5d8cdf\n"," Stored in directory: /root/.cache/pip/wheels/8b/99/a0/81daf51dcd359a9377b110a8a886b3895921802d2fc1b2397e\n","Successfully built future\n","Installing collected packages: future, pytorch-lightning\n"," Found existing installation: future 0.16.0\n"," Uninstalling future-0.16.0:\n"," Successfully uninstalled future-0.16.0\n","Successfully installed future-0.18.2 pytorch-lightning-0.7.3\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"XBb2THG2BtLm","colab":{"base_uri":"https://localhost:8080/"},"outputId":"17f2b4ec-51ba-487d-f745-9786de93df64"},"source":["!python3 train.py data/ts9_test1_in_FP32.wav data/ts9_test1_out_FP32.wav"],"execution_count":null,"outputs":[{"output_type":"stream","text":["\rEpoch 1484: 75% 18/24 [00:02<00:00, 7.85it/s, loss=0.026, v_num=2]\n","\rValidating: 0% 0/6 [00:00