mostafaelaraby/wavegan-pytorch

How can I generate from trained model?

Jipski opened this issue · 3 comments

I don't understand how I can generate Audio from my trained model, other than the samples automatically saved during the training process.

import torch
import os
import soundfile as sf

DEVICE = 'cuda'
SAMPLING_RATE = 22050 # yours might differ
BATCH_SIZE = 32
MODEL_PATH = '/path/to/saved/model.tar'
AUDIO_OUTPUT_DIR = 'generated_samples'

if not os.path.exists(AUDIO_OUTPUT_DIR):
    os.makedirs(AUDIO_OUTPUT_DIR)

model = torch.load(MODEL_PATH)
model.load_state_dict(model['generator'])

noise_vector = torch.FloatTensor(BATCH_SIZE, 100).to(DEVICE)
noise_vector.data.normal_()

with torch.no_grad():
    fake = generator(noise_vector).detach().cpu().numpy()
    for idx, sample in enumerate(fake):
        sample = sample[0]
        sf.write(os.path.join(AUDIO_OUTPUT_DIR, '{}.wav'.format(idx)), sample, SAMPLING_RATE)