Creare speech embedding
È il momento di codificare un array audio in uno speaker embedding! Gli speaker embedding contengono informazioni su come personalizzare l'audio generato per una voce specifica e sono fondamentali per generare audio perfezionato.
Il modello preaddestrato spkrec-xvect-voxceleb (speaker_model) e il dataset VCTK (dataset) sono già stati caricati per te.
Questo esercizio fa parte del corso
Modelli multi-modali con Hugging Face
Istruzioni dell'esercizio
- Completa la definizione della funzione
create_speaker_embedding()calcolando l'embedding grezzo a partire dalwaveformusandospeaker_model. - Estrai l'array audio dall'elemento in posizione
10deldataset. - Calcola uno speaker embedding dall'array audio usando la funzione
create_speaker_embedding().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)