import numpy as np import torch def person_embed(speaker_ids, person_vec): ''' :param speaker_ids: torch.Tensor ( T, B) :param person_vec: numpy array (num_speakers, 100) :return: speaker_vec: torch.Tensor (T, B, D) ''' speaker_vec = [] for t in speaker_ids: speaker_vec.append([person_vec[int(i)].tolist() if i != -1 else [0] * 100 for i in t]) speaker_vec = torch.FloatTensor(speaker_vec) return speaker_vec