def encode(model_name, piece, encoding_name): model_path = './restore/' encoding_path = './encoding/' # Create directory for encoding if os.path.exists(encoding_path) is False: os.makedirs(encoding_path) net = AutoEncoder() net = load_model(net,model_path,model_name) cuda_available = torch.cuda.is_available() if cuda_available is True: net = net.cuda() net.eval() # Load audio for encoding piece = audio.load_wav(piece) spec = audio.spectrogram(piece).astype(np.float32) spec = torch.from_numpy(spec.T) spec = torch.FloatTensor(spec) spec = torch.unsqueeze(spec, 0) spec = Variable(spec, volatile=True).contiguous() if cuda_available is True: spec = spec.cuda() # Pass input audio to net forward pass encoding = net.encoder(spec) encoding = encoding.data.cpu().numpy() #encoding = np.squeeze(encoding) encoding_ndarray = encoding_path + encoding_name+ '.npy' np.save(encoding_ndarray, encoding)
def encode(spec): model_path = './restore/' model_name = 'Autoencoder1.model' net = AutoEncoder() net = load_model(net, model_path, model_name) cuda_available = torch.cuda.is_available() if cuda_available is True: net = net.cuda() net.eval() spec = torch.FloatTensor(torch.from_numpy(spec)) spec = torch.unsqueeze(spec, 0) spec = Variable(spec, volatile=True).contiguous() if cuda_available is True: spec = spec.cuda() # Pass input audio to net forward pass out = net.encoder(spec) out = out.data.cpu().numpy() out = np.squeeze(out) return out