Створення мовних вкладень
Час закодувати аудіомасив у вкладення мовця! Вкладення мовця містять інформацію про те, як персоналізувати згенерований звук для конкретного мовця, і є необхідними для тонкого налаштування аудіогенерації.
Попередньо навчена модель spkrec-xvect-voxceleb (speaker_model) і набір даних VCTK (dataset) уже завантажені для вас.
Ця вправа є частиною курсу
Багатомодальні моделі з Hugging Face
Інструкції до вправи
- Доповніть визначення функції
create_speaker_embedding(), обчисливши «сире» вкладення зwaveformза допомогоюspeaker_model. - Дістаньте аудіомасив з елемента даних з індексом
10уdataset. - Обчисліть вкладення мовця з аудіомасиву, використавши функцію
create_speaker_embedding().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)