def get_batch_of_embeddings(data_dir, model_dir, n_speakers, n_utterances): # create data set speaker_dataset = SpeakerVerificationDataset(data_dir, dataset_len=26) # create model device = torch.device('cuda') model = load_model(model_dir, device) model.eval() # get embeddings print("running model on batch...") with torch.no_grad(): speakers = [ speaker_dataset[i] for i in np.random.randint(0, len(speaker_dataset), n_speakers) ] # for i in np.arange(n_speakers)] my_batch = SpeakerBatch(speakers, utterances_per_speaker=n_utterances, n_frames=160) my_batch_data = torch.from_numpy(my_batch.data).to(device) print("Batch shape: ", my_batch_data.shape) embeds = model(my_batch_data) print("Embeds shape: ", embeds.shape) embeds = embeds.detach().cpu().numpy() return embeds
def collate(self, speakers): return SpeakerBatch(speakers, self.utterances_per_speaker, partials_n_frames)
def collate(self, speakers): return SpeakerBatch(speakers, self.utterances_per_speaker, PARTIALS_N_FRAMES)