Example #1
0
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)
Example #2
0
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