Aan de slagGa gratis aan de slag

Spraakembeddings maken

Tijd om een audio-array te encoderen naar een speaker-embedding! Speaker-embeddings bevatten informatie om gegenereerde audio te personaliseren voor een bepaalde spreker, en zijn onmisbaar voor het genereren van fijn-afgestelde audio.

Het voorgetrainde spkrec-xvect-voxceleb-model (speaker_model) en de VCTK-gegevensset (dataset) zijn alvast voor je geladen.

Deze oefening maakt deel uit van de cursus

Multi-modale modellen met Hugging Face

Cursus bekijken

Oefeninstructies

  • Maak de functiedefinitie create_speaker_embedding() af door de ruwe embedding uit de waveform te berekenen met het speaker_model.
  • Haal de audio-array op uit het datapunt op index 10 van de dataset.
  • Bereken een speaker-embedding uit de audio-array met de functie create_speaker_embedding().

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren