创建语音嵌入向量
现在把音频数组编码成说话人嵌入向量吧!说话人嵌入向量包含如何将生成的音频个性化到特定说话人的信息,是生成微调音频的关键。
我们已经为您加载了预训练模型 spkrec-xvect-voxceleb(speaker_model)和 VCTK 数据集(dataset)。
本练习是课程的一部分
使用 Hugging Face 的多模态模型
练习说明
- 完成
create_speaker_embedding()函数定义,使用speaker_model基于waveform计算原始嵌入。 - 从
dataset的索引10处的数据点中提取音频数组。 - 使用
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)