본문 바로가기

PYTHON/PYTORCH

[파이토치] Melspectrogram 추출하기

 

사용 데이터셋 : RAVDESS 데이터셋

 

MelSpectrogram 추출하기

data, sr = librosa.load(filepath)
melspectrogram = librosa.feature.melspectrogram(data, sr=sr, n_mels=128,n_fft=2048,hop_length=512)

plt.figure(figsize=(12, 4))
librosa.display.specshow(melspectrogram, sr=sr, x_axis='time', y_axis='mel')
plt.title('Mel power spectrogram ')
plt.colorbar(format='%+02.0f dB')
plt.tight_layout()

librosa 라이브러리를 사용하면 음원 파일에 대한 melspectrogram을 추출할 수 있다.

  • sample_rate : 아날로그 신호를 디지털 신호로 변화시킬때의 단위시간당 샐플림 횟수를 의미 / 단위는 헤레츠 / sample rate 가 높을 수록 음원의 화질이 더 좋아짐
  • n_mels : 
  • n_fft : 음성을 어느정도 길이로 잘라서 frequency를 표현해줄지를 결정 / n_fft 의 개수만큼 표현해줌
  • hop_length : window의 간격을 어느정도로 할지 결정

 

** melspectrogram : 음성의 특징을 추출하는 기법 (관련 검색어 : 푸리의 변환, STFT Melspectrogram)