카테고리 없음

5주차

ledn05 2024. 8. 17. 23:58

 

다음과 같이 데이터를 데이터셋을 훈련용(train)과 검증용(val)으로 나누는 비율을 정의합니다. 여기서는 80%를 훈련용, 20%를 검증용으로 나눈다. 

train_dataset : dataset_pair 리스트의 처음 80% 데이터를 훈련용으로 할당한다.

val_dataset : dataset_pair 리스트의 나머지 20% 데이터를 검증용으로 할당한다.

그 후 json 파일로 저장을 한뒤 파일들을 불러와 데이터셋의 크기를 출력해 데이터의 크기를 알아본다.

 

 

이 클래스는 PyTorch의 Dataset 클래스를 상속받아 새로운 데이터셋 클래스를 정의한다. 

data_list : 오디오 파일 경로와 레이블 정보를 담은 리스트이다.

audio_len : 각 오디오 샘플의 길이 (초 단위)이다.

mfcc_transform : 오디오 데이터를 MFCC(Mel Frequency Cepstral Coefficients)로 변환하는 객체이며,  sample_rate=16000은 샘플링 레이트가 16kHz임을 의미하고, n_mfcc=40은 40개의 MFCC 계수를 추출함을 의미한다.

 

여기서 MFCC란?

MFCC는 오디오 신호에서 추출할 수 있는 feature로, 소리의 고유한 특징을 나타내는 수치이다.

https://brightwon.tistory.com/11

 

MFCC(Mel-Frequency Cepstral Coefficient) 이해하기

이 글은 음성/음악 등 오디오 신호 처리 분야에서 널리 쓰이는 특징값(Feature) 중 하나인 MFCC(Mel-Frequency Cepstral Coefficient)에 대해 정리한 글입니다. 알고리즘 구현보다는 MFCC의 전반적인 이해와 실

brightwon.tistory.com

 

  • __getitem__: 인덱스를 받아서 해당 위치의 오디오 샘플 두 개 (audio1_path, audio2_path)와 레이블을 가져온다.
  • 오디오 데이터를 crop_and_pad 메서드를 통해 고정된 길이로 자르고 패딩한다
  • waveform을 PyTorch 텐서로 변환한 뒤 MFCC 변환을 수행한다.
  • 변환된 MFCC 데이터를 정규화(standardization) 한다.
  • 샘플링 레이트(sr1, sr2)가 16kHz인지 확인하고, 그렇지 않으면 에러 메시지를 출력한다.두 개의 MFCC 변환 결과(mfcc1, mfcc2)와 레이블을 반환한다.