Spaces:
Runtime error
Runtime error
| from pathlib import Path | |
| import audiotools as at | |
| from audiotools import AudioSignal | |
| import argbind | |
| import tqdm | |
| from pedalboard import ( | |
| Compressor, Gain, Chorus, LadderFilter, Phaser, Convolution, Reverb, Pedalboard | |
| ) | |
| from pedalboard.io import AudioFile | |
| # Read in a whole file, resampling to our desired sample rate: | |
| samplerate = 44100.0 | |
| with AudioFile('guitar-input.wav').resampled_to(samplerate) as f: | |
| audio = f.read(f.frames) | |
| # Make a pretty interesting sounding guitar pedalboard: | |
| board = Pedalboard([ | |
| Compressor(threshold_db=-50, ratio=25), | |
| Gain(gain_db=30), | |
| Chorus(), | |
| LadderFilter(mode=LadderFilter.Mode.HPF12, cutoff_hz=900), | |
| Phaser(), | |
| Convolution("./guitar_amp.wav", 1.0), | |
| Reverb(room_size=0.25), | |
| ]) | |
| def augment( | |
| audio_folder: Path, | |
| dest_folder: Path, | |
| n_augmentations: int = 10, | |
| ): | |
| """ | |
| Augment a folder of audio files by applying audiotools and pedalboard transforms. | |
| The dest foler will contain a folder for each of the clean dataset's files. | |
| Under each of these folders, there will be a clean file and many augmented files. | |
| """ | |
| audio_files = at.util.find_audio(audio_folder) | |
| for audio_file in tqdm.tqdm(audio_files): | |
| subtree = dest_folder / audio_file.relative_to(audio_folder).parent | |
| subdir = subtree / audio_file.stem | |
| subdir.mkdir(parents=True, exist_ok=True) | |
| # apply pedalboard transforms | |
| for i in range(n_augmentations): | |