開始使用免費開始

建立語音嵌入向量

現在把音訊陣列編碼成說話者嵌入向量吧!說話者嵌入向量包含如何將產生的音訊個人化為特定說話者的資訊,對於產生微調後的音訊至關重要。

已為你載入預先訓練的 spkrec-xvect-voxceleb 模型(speaker_model)與 VCTK 資料集(dataset)。

本練習屬於課程

使用 Hugging Face 的多模態模型

檢視課程

練習說明

  • 完成 create_speaker_embedding() 函式定義,使用 speaker_modelwaveform 計算原始嵌入向量。
  • 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)
編輯並執行程式碼