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
Oefeninstructies
- Maak de functiedefinitie
create_speaker_embedding()af door de ruwe embedding uit dewaveformte berekenen met hetspeaker_model. - Haal de audio-array op uit het datapunt op index
10van dedataset. - 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)