음성 임베딩 만들기
이제 오디오 배열을 화자 임베딩으로 인코딩해 볼까요? 화자 임베딩에는 특정 화자에 맞춰 생성 오디오를 개인화하는 데 필요한 정보가 들어 있으며, 미세 조정된 오디오를 생성하는 데 필수적입니다.
사전 학습된 spkrec-xvect-voxceleb 모델(speaker_model)과 VCTK 데이터셋(dataset)이 미리 로드되어 있습니다.
이 연습은 강의의 일부입니다
Hugging Face로 배우는 멀티모달 모델
연습 안내
speaker_model을 사용해waveform에서 원시 임베딩을 계산하도록create_speaker_embedding()함수 정의를 완성하세요.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)