Tworzenie osadzeń mówcy
Czas zakodować tablicę audio w osadzenie mówcy! Osadzenia mówcy (speaker embeddings) zawierają informacje o tym, jak spersonalizować generowane audio do konkretnego mówcy – są niezbędne do generowania dopasowanego audio.
Wstępnie wytrenowany model spkrec-xvect-voxceleb (speaker_model) oraz zbiór danych VCTK (dataset) zostały już załadowane.
To ćwiczenie jest częścią kursu
Modele multimodalne z Hugging Face
Instrukcje do ćwiczenia
- Uzupełnij definicję funkcji
create_speaker_embedding(), obliczając surowe osadzenie zwaveformprzy użyciuspeaker_model. - Wyodrębnij tablicę audio z punktu danych o indeksie
10ze zbiorudataset. - Oblicz osadzenie mówcy z tablicy audio, korzystając z funkcji
create_speaker_embedding().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
def create_speaker_embedding(waveform):
with torch.no_grad():
# Calculate the raw embedding from the speaker_model
speaker_embeddings = ____.____(torch.tensor(____))
speaker_embeddings = torch.nn.functional.normalize(speaker_embeddings, dim=2)
speaker_embeddings = speaker_embeddings.squeeze().cpu().numpy()
return speaker_embeddings
# Extract the audio array from the dataset
audio_array = dataset[10]["____"]["____"]
# Calculate the speaker_embedding from the datapoint
speaker_embedding = ____(____)
print(speaker_embedding.shape)