티스토리 뷰

1. MCFF란?

- Mel-Frequency Cepstral Coefficients

- 음성 신호의 주요 특징을 추출하는 대표적인 방법 중 하나

- 음성 인식, 음성 인증 감정 분석 등 다양한 음향 처리 분야에서 널리 사용된다.

 

2. 왜 사용할까?

- 사람의 귀는 고주파수보다는 저주파수(말소리의 주파수)에 더 민감하게 반응한다.

- Mel 스케일을 사용해 주파수 축을 재조정하여 인간의 청각 특성에 맞게 변환한다.

- 일반적으로 13~40개의 MFCC 계수를 사용하여 음성을 효율적으로 표현해 모델 학습을 위한 입력의 크기를 줄이고, 처리속도를 높인다.

- MFCC는 주로 주파수 정보를 사용하며 시간적 정보를 잘 반영하지 못한다. => LSTM, CNN과 같은 딥러닝 모델로 보완

- 배경 소음이나 잡음에 취약하다 => 노이즈 제거 등의 전처리로 성능 개선 필요

* Mel Scale이란?

- 사람이 인식하는 주파수 간격에 더 가깝게 설계된 비선형 스케일

 

3. 계산방법

1) 신호 입력 및 신호 프레임 분할

- 음성 신호는 시간에 따라 변화하므로, 전체 신호를 작은 프레임으로 나눈다.

- 일반적으로 20~40ms 길이로 분할하며, Hamming Window를 사용하여 경계 효과를 줄인다.

2) FFT (Fast Fourier Transform) 변환

- 각 프레임에 대해 FFT를 적용하여 주파수 도메인으로 변환한다.

- FFT는 신호의 스펙트럼 정보를 제공한다.

* 푸리에 변환( Fourier Transform )이란?

- 복잡한 신호를 여러 주파수의 사인파와 코사인파로 분해(모음: 저주파, 자음: 고주파)

- 시간 영역에서는 신호의 진폭이 시간에 따라 변화

- 주어진 신호가 특정 주파수에서 얼마나 강하게 진동하는지를 계산

- 주파수 영역에서는 신호의 주파수 구성 요소(진폭, 위상)을 표시

- 주파수 영역 정보를 다시 시간 영역으로 복원 가능

X:f에서의 신호의 크기, 위상정보, x:시간 t에서의 신호 값, e^~:주파수 f의 사인파(복소수)

3) Mel Filter Bank 적용

- 주파수 스케일을 Mel Scale로 변환해 저주파 대역에 더 많은 필터를 할당하고, 고주파 대역에 적은 필터를 할당한다.

4) 로그 스펙트럼 변환

- Mel 필터링된 스펙트럼에 대해 로그를 적용한다.

- 사람이 주파수를 인식할 때 비선형적으로 반응한다는 점을 반영한다.

5) DCT (Discrete Cosine Transform) 변환 및 MFCC 계수 추출

- 로그 필터 뱅크 출력을 DCT로 변환하여 MFCC 계수를 계산한다.

- DCT는 주파수 정보를 컴팩트한 표현으로 압축한다.

- 일반적으로 상위 13개 계수만 사용하며, 이는 음성의 주요 특징을 보존한다.

 

4 Librosa란?

- Python에서 오디오 및 음악 신호 처리를 위한 라이브러리

- 음성 및 음악 데이터를 분석하거나 전처리하는데 필요한 다양한 도구를 제공한다.

- 오디오 파일을 읽고 numpy 배열로 변환

- 단순히 신호를 FFT(Fast Fourier Transform)로 변환하여 주파수 분석 가능

- 신호의 속도와 피치 조작 가능

 

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함