Spaces:
Sleeping
Sleeping
from resemblyzer import preprocess_wav, VoiceEncoder | |
import numpy as np | |
import torch | |
def get_spk_emb(audio_file_dir, segment_len=960000): | |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
resemblyzer_encoder = VoiceEncoder(device=device) | |
wav = preprocess_wav(audio_file_dir) | |
l = len(wav) // segment_len # segment_len = 16000 * 60 | |
l = np.max([1, l]) | |
all_embeds = [] | |
for i in range(l): | |
mean_embeds, cont_embeds, wav_splits = resemblyzer_encoder.embed_utterance( | |
wav[segment_len * i:segment_len* (i + 1)], return_partials=True, rate=2) | |
all_embeds.append(mean_embeds) | |
all_embeds = np.array(all_embeds) | |
mean_embed = np.mean(all_embeds, axis=0) | |
return mean_embed, all_embeds | |
if __name__ == '__main__': | |
m, a = get_spk_emb(r'E:\Dataset\TalkingToon\Obama\test_wav_files\obama_example.wav') | |
print('Speaker embedding:', m) | |
print(m.shape) |