Audio data feature extraction을 위한 대표 방법 중 하나인 MFCC에서,
푸리에 변환을 통해 스펙트럼을 얻는 과정까지 살펴보았다.
이제 그 다음 단계인 Mel spectrum부터 차근차근 알아보자.~
- 입력 신호를 Mel scale로 변환 : Mel filter bank 적용
- 로그를 취하여 로그 Mel spectrogram 얻기
- DCT 수행
- MFCC 계수 추출
Audio 신호는 시간에 따른 음압, 즉 time-domain의 표현이다.
여기에 FFT를 적용하여 frequency-domain의 표현이 가능해지며, 이를 spectrum이라고 했다.
spectrum의 강점은 주파수의 대역별 분석이 용이하다는 것이다.
주파수 대역별로 가진 고유의 특징을 추출할 수 있다.
그리고 그 정보를 추출하기 위해 Cepstral Analysis를 수행하게 되는데,
우리가 공부하는 MFCC는 spectrum에 Cepstral 분석을 거치는 것이 아니라 Mel-spectrum에 대해 Cepstral 분석을 수행한다. (mel spectrum을 시간 순으로 나열하면 Mel-spectrogram)
Mel Spectrum
앞서 만들어진 spectrum에 Mel filter bank라는 필터를 통과시킨다.
인간의 청각 시스템은 주파수가 높아질수록 인식이 감소한다.
(주파수의 변화를 잘 감지하지 못한다는 뜻)
이 특징을 활용해 물리적인 주파수와 실제 사람이 인식하는 주파수 간의 관계를 Mel scale이라고 한다.
(인간의 청각적 특징에 기반)
1000Hz까지는 Linear하게 변환하다가, 이후로는 Mel scale trianggular filter를 곱한다.
보통 26~40개의 filter bank를 사용하며, filter bank의 개수만큼 Mel scale bin 별로 log power값들을 구한다.
Mel filter bank
선형 주파수 영역을 Mel 스케일로 변환하는데 사용된다.
Mel scale에 기반한 filter bank를 spectrum에 적용하면 Mel Spectrum이 도출되는 것이다.
여기서 Mel scale은 filter bank를 나눌 때, 어떤 간격으로 나눠야 하는지 알려주는 역할을 한다.
일정한 Mel 주파수 간격을 가진 여러 개의 삼각형 모양 필터로 구성되며, 각 필터는 Mel 주파수 스케일에서 일정한 간격으로 정의된 주파수 대역에 해당하는 주파수 성분을 강조하고, 그 외의 주파수 성분을 감쇄시킨다.
여기까지 과정으로, Mel spectrogram을 얻을 수 있다.
이제 여기에 Cepstral analysis와 같은 전처리 과정을 통해 MFCC를 수행하는 것이다.
Cepstral Analysis
Mel filter bank를 거쳐 만들어진 Mel spectrum을 가지고, Cepstral 분석을 수행한다.
Cepstral analysis는 두 가지 과정을 거치게 된다.
1. 로그 변환(Log Transformation) :
주파수 영역에서의 스펙트럼 또는 Mel 스펙트럼에 로그를 취하여 로그 스펙트럼을 얻는다.
이는 스펙트럼의 동적 범위를 압축하여 더 넓은 주파수 영역의 성분들을 더 잘 파악할 수 있도록 돕는다.
2. 역푸리에 변환(Inverse Fourier Transformation) :
로그 스펙트럼에 IFFT를 적용시켜 Cepstrum을 얻는다.
이 과정을 통해 얻어진 Cepstrum은 주파수 영역에서의 특성을 시간 영역으로 변환한 것으로,
주파수 영역에서의 스펙트럼의 간격이나 주기성과 같은 특징을 파악할 수 있다.
왜 이와같은 과정을 거쳐야 하는가?
- 주파수 영역과 시간 영역의 분리 : 주파수에서 발생하는 변동과 시간에서 발생하는 변동을 분리하여 신호의 특성을 보다 명확하게 분석할 수 있도록 한다.
- 패턴 인식 및 분류에 유용 : Cepstrum을 사용하여 음성 신호의 특징을 추출하면 다양한 패턴 인식 및 분류 작업을 수행할 수 있다.
Cepstrum은 Cepstral analysis를 통해 얻은 주파수 영역의 특징을 나타내는 것으로, 시간 영역에서의 주파수 영역의 변화를 나타낸다. 다시 말해, 주파수 영역에서의 스펙트럼을 다시 시간 영역으로 변환한 것으로, 스펙트럼의 log를 취하고 역푸리에 변환을 수행해서 얻어진다.
https://hyunlee103.tistory.com/45
(Cepstral anaysis 자세한 참고)
DCT(Discrete Cosine Transform)
주파수 영역의 특성을 Cepstral-domain으로 변환하기 위해 사용되는 기법
주파수 영역의 스펙트럼이나 Mel Spectrum에서 추출된 정보를 Cepstral domain으로 변환
DCT를 수행하는 이유는
- Mel filter bank는 모두 오버랩되어있기 때문이다.
- Filter bank 에너지들 사이에 상관관계가 있기 때문이다.
그래서 DCT는 에너지들 사이에 상관관계를 분리해주는 역할을 한다.
(De-Correlate)
위와 같은 과정을 통해 우리는 feature를 cepstrum domain에서 추출하고자 한다.
MFCC
DCT를 적용한 결과로 얻는 Cepstral domain 계수들 중 일부를 선택한다
보통 낮은 주파수 대역에서 높은 주파수 대역으로 갈수록 중요성이 줄어들기 때문에,
첫 번째 몇 개의 계수를 제외하고 나머지 계수 중 일부를 선택한다.
-> Coefficients 2~13만 남김
선택된 coefficient들을 모아서 MFCC 벡터를 생성한다.
이렇게 생성된 MFCC 벡터는 해당 프레임의 음성 신호에서 추출된 특징을 나타내는데 사용된다.
일반적으로 각 프레임마다 MFCC 계수를 추출하게 되며, 추출된 MFCC 계수들은 시간에 따른 음성 신호의 특성을 나타내는 시퀀스로 사용된다.
MFCC 과정을 짧게 요약하면
1. 프레임 분할 :
입력된 오디오 신호를 작은 프레임으로 자름 (window 함수 적용)
2. power spectrum 계산
3. Mel filter Bank 적용
4. 로그 변환 :
Mel spectrum or Mel spectrogram에 로그를 취하여 로그 Mel spectrum을 얻음
5. DCT 변환 :
cepstral domain으로 변환
6. 계수 선택 :
5에서 취한 값에 Coefficients 2~13만 남기고 버림
'Audio' 카테고리의 다른 글
[Audio processing] Audio data feature 추출 이해하기 (1) (0) | 2024.02.10 |
---|---|
[Audio processing] Audio data 이해하기 (0) | 2024.02.09 |