Spaces:
Runtime error
Runtime error
| import torch | |
| from tqdm import tqdm | |
| import librosa | |
| from hparams import hparams | |
| from wavenet_vocoder import builder | |
| torch.set_num_threads(4) | |
| use_cuda = torch.cuda.is_available() | |
| device = torch.device("cuda" if use_cuda else "cpu") | |
| def build_model(): | |
| model = getattr(builder, hparams.builder)( | |
| out_channels=hparams.out_channels, | |
| layers=hparams.layers, | |
| stacks=hparams.stacks, | |
| residual_channels=hparams.residual_channels, | |
| gate_channels=hparams.gate_channels, | |
| skip_out_channels=hparams.skip_out_channels, | |
| cin_channels=hparams.cin_channels, | |
| gin_channels=hparams.gin_channels, | |
| weight_normalization=hparams.weight_normalization, | |
| n_speakers=hparams.n_speakers, | |
| dropout=hparams.dropout, | |
| kernel_size=hparams.kernel_size, | |
| upsample_conditional_features=hparams.upsample_conditional_features, | |
| upsample_scales=hparams.upsample_scales, | |
| freq_axis_kernel_size=hparams.freq_axis_kernel_size, | |
| scalar_input=True, | |
| legacy=hparams.legacy, | |
| ) | |
| return model | |
| def wavegen(model, c=None, tqdm=tqdm): | |
| """Generate waveform samples by WaveNet. | |
| """ | |
| model.eval() | |
| model.make_generation_fast_() | |
| Tc = c.shape[0] | |
| upsample_factor = hparams.hop_size | |
| # Overwrite length according to feature size | |
| length = Tc * upsample_factor | |
| # B x C x T | |
| c = torch.FloatTensor(c.T).unsqueeze(0) | |
| initial_input = torch.zeros(1, 1, 1).fill_(0.0) | |
| # Transform data to GPU | |
| initial_input = initial_input.to(device) | |
| c = None if c is None else c.to(device) | |
| with torch.no_grad(): | |
| y_hat = model.incremental_forward( | |
| initial_input, c=c, g=None, T=length, tqdm=tqdm, softmax=True, quantize=True, | |
| log_scale_min=hparams.log_scale_min) | |
| y_hat = y_hat.view(-1).cpu().data.numpy() | |
| return y_hat |