Créer des embeddings de voix
Il est temps d’encoder un tableau audio en un embedding de locuteur ! Les embeddings de locuteur contiennent des informations permettant de personnaliser l’audio généré pour une personne donnée, et sont indispensables pour produire de l’audio affiné.
Le modèle pré-entraîné spkrec-xvect-voxceleb (speaker_model) et le jeu de données VCTK (dataset) ont été chargés pour vous.
Cet exercice fait partie du cours
Modèles multimodaux avec Hugging Face
Instructions
- Complétez la définition de la fonction
create_speaker_embedding()en calculant l’embedding brut à partir duwaveformavecspeaker_model. - Extrayez le tableau audio du point de données à l’index
10dedataset. - Calculez un embedding de locuteur à partir du tableau audio en utilisant la fonction
create_speaker_embedding().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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)