Spaces:
Running
Running
import os | |
import json | |
from torch.utils.data import DataLoader | |
import soundfile as sf | |
import tqdm | |
from dataloader import DelimitValidDataset | |
def main(): | |
# Parameters | |
data_path = "/path/to/musdb18hq" | |
save_path = "/path/to/musdb18hq_limited" | |
batch_size = 1 | |
num_workers = 1 | |
sr = 44100 | |
# Dataset | |
dataset = DelimitValidDataset(root=data_path) | |
data_loader = DataLoader( | |
dataset, batch_size=batch_size, num_workers=num_workers, shuffle=False | |
) | |
dict_valid_loudness = {} | |
# Preprocessing | |
for limited_audio, orig_audio, audio_name, loudness in tqdm.tqdm(data_loader): | |
audio_name = audio_name[0] | |
limited_audio = limited_audio[0].numpy() | |
loudness = float(loudness[0].numpy()) | |
dict_valid_loudness[audio_name] = loudness | |
# Save audio | |
os.makedirs(os.path.join(save_path, "valid"), exist_ok=True) | |
audio_path = os.path.join(save_path, "valid", audio_name) | |
sf.write(f"{audio_path}.wav", limited_audio.T, sr) | |
# write json write code | |
with open(os.path.join(save_path, "valid_loudness.json"), "w") as f: | |
json.dump(dict_valid_loudness, f, indent=4) | |
if __name__ == "__main__": | |
main() | |