MFCC (Mel Frequency Cepstrum Coefficient) ์์ฑ ์ ํธ ๋ถ์ํ๊ธฐ
<๋ณธ ๋ธ๋ก๊ทธ๋ ์นด์นด์ค์ํฐํ๋ผ์ด์ฆ๋์ ๊ธฐ์ ๋ธ๋ก๊ทธ, hyunlee103๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-) >
https://tech.kakaoenterprise.com/66
AI์๊ฒ ์ด๋ป๊ฒ ์์ฑ์ ๊ฐ๋ฅด์น ๊น?
์์ํ๋ฉฐ ์ธ๊ฐ์ ๊ท๋ก ๋ฃ๊ณ , ์ ์ผ๋ก ๋งํ์ฌ ํ์ธ๊ณผ ์์ฌ์ํตํฉ๋๋ค. ๋์ ๋ํํ ์ ์๋ ์กด์ฌ๋ฅผ ์ฐฝ์กฐํ๊ณ ์ถ๋ค๋ ๋ฐ๋์ ๋ง์ ์ฌ๋๋ค์ด ์ค๋์ ๋ถํฐ ์์ํ๊ณ , ์์ค๋ก ์ฐ๊ณ , ์ฐ๊ตฌํด ์์ต๋๋ค.
tech.kakaoenterprise.com
https://hyunlee103.tistory.com/54
์ค๋์ค ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ (1) Waveform
๋ชจ๋์ ์ฐ๊ตฌ์ ์์ฑ์ธ์ ํ์์ค์ฟจ์์ Introduction to Speech Processing(2E) ์ค acousitc featrure extraction ๋ถ๋ถ ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ๋ํ ํ๊ตญ ์ธ๊ณต์ง๋ฅํํ ์ค๋์ค ์ฒ๋ฆฌ ์ธ์ ์์ ๊ณต๋ถํ ๋ด์ฉ๋
hyunlee103.tistory.com
๐ Audio
์ด๋ค ๋ฌผ์ฒด๊ฐ ์ง๋ํ๋ฉด์ ๋ฐ์
Y์ถ์ Amplitude(์งํญ), X์ถ์ Time(sec)
ํน์ ์ง์ ์์ ๋ค์ ๋ฑ์ฅํ๋ ๊ทธ ๊ฐ๊น์ง๋ฅผ period(์ฃผ๊ธฐ)
Frequency๋ Hz ๋จ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, 1์ด์ 100๋ฒ period(์ฃผ๊ธฐ)๊ฐ ๋ฐ์ํ๋, 100Hz๋ก ์ ์
f = 1/T
High frequency ์ด๋น ์ง๋ ์(์ฃผ๊ธฐ)๊ฐ ๋ง์ ์๋ฆฌ์ ๊ฒฝ์ฐ High pitch(๋์ ์๋ฆฌ)๋ฅผ ๊ฐ์ง
Amplitude๊ฐ ํฌ๋ฉด ์๋ฆฌ๊ฐ ํฌ๋ค
๐ ์ฃผํ์๋
: ์ ํธ๊ฐ 1์ด์ ๋ช ๋ฒ ์ง๋ํ๋์ง๋ฅผ ๋ํ๋ด๋ ์์น
: ์๋ฆฌ๋ ๋น ๋ฅด๊ฒ ์ง๋ํ ์๋ก, ์ฆ ์ฃผํ์๊ฐ ๋์์๋ก ์์ด ๋๊ฒ ๋ค๋ฆผ
- ํธ๋ฆฌ์ ๋ณํ(Fourier transform)
: ํน์ ์๊ฐ ๊ธธ์ด์ ์์ฑ ์กฐ๊ฐ(์ด๋ฅผ ํ๋ ์์ด๋ผ๊ณ ๋ถ๋ฆ)์ด ๊ฐ๊ฐ์ ์ฃผํ์ ์ฑ๋ถ๋ค์ ์ผ๋ง๋งํผ ๊ฐ๊ณ ์๋์ง๋ฅผ ์๋ฏธํ๋ ์คํํธ๋ผ(spectrum)์ ์ป์
- ์คํํธ๋ก๊ทธ๋จ(spectrogram)
: ์์ฑ ์ ์ฒด๋ก๋ถํฐ ์ป์ ์ฌ๋ฌ ๊ฐ์ ์คํํธ๋ผ์ ์๊ฐ ์ถ์ ๋์ดํ๋ฉด ์๊ฐ ๋ณํ์ ๋ฐ๋ฅธ ์คํํธ๋ผ์ ๋ณํ
๐ ์ฌ๋์ ์๋ฆฌ๋ฅผ ๋ฃ๋ ๊ณผ์
์๋ฆฌ๋ฅผ ๋ฃ๋ ๊ธฐ๊ด์ธ ๊ท๋ ๊ท๋ฐํด์์ ์๋ฆฌ๋ฅผ ๋ชจ์ผ๊ณ , ๊ณ ๋ง๊ณผ ์ด์๊ณจ์ด ์ง๋ํ์ฌ ๋ฌํฝ์ด๊ด์ ์ฒญ๊ฐ ์ธํฌ๋ฅผ ์๊ทนํ๋ฉด ์ ๊ธฐ ์ ํธ๊ฐ ๋ฐ์ํด ์ด๋ฅผ ๋์ ์ ๋ฌํ๋ ๋ฐฉ์
๋ฌํฝ์ด๊ด์ ๋ง์น ๊ธธ๊ฒ ๋์ด์ง ๊ด์ ๋๋ ๋ง์ ๋ชจ์๊ณผ ๊ฐ์ผ๋ฉฐ, ์ก์ฒด๋ก ๊ฐ๋ ์ฐจ ์๋ ์ด ๊ด์๋ ์ฒญ๊ฐ ์ธํฌ๋ค์ด ์ผ๋ ฌ๋ก ๋์ดํด ์๋ ์ฝ๋ฅดํฐ ๊ธฐ๊ด์ด ์กด์ฌ
๋ฐ์์ ์ง๋์ด ์ ๋ฌ๋๋ฉด ์ฝ๋ฅดํฐ ๊ธฐ๊ด์ ํน์ ์ฒญ๊ฐ ์ธํฌ๊ฐ ์๊ทน๋์ด ์ ๊ธฐ ์ ํธ๋ฅผ ๋ฐ์์ํค๋๋ฐ, ์ฒญ๊ฐ ์ธํฌ๋ง๋ค ์ธ์งํ ์ ์๋ ์ฃผํ์ ๋์ญ์ด ๋ค๋ฆ
๋ฌํฝ์ด๊ด์ ๊ฐ์ฅ ์์ชฝ ์ฒญ๊ฐ ์ธํฌ๋ ์ ์ฃผํ ๋์ญ์ ์ธ์งํ๋ฉฐ, ๋ฐ๊นฅ์ชฝ ์ฒญ๊ฐ ์ธํฌ๋ ๊ณ ์ฃผํ ๋์ญ์ ์ธ์ง
๋ชจ๋ ์ฃผํ์ ๋์ญ์ ๊ฐ์ ๋น์ค์ผ๋ก ์ธ์งํ์ง ์๊ณ , ๊ณ ์ฃผํ์์ ์ ์ฃผํ๋ก ๋ด๋ ค๊ฐ์๋ก ๋ด๋นํ๋ ์ฃผํ์ ๋์ญ์ด ์ ์ ๋ ์กฐ๋ฐ
๐ ์์ฑ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
โญ FFT -> logFFT -> IFFT (Log FFT)
โญFourier transform -> ์ ๊ณฑ (power spectrum) -> Mel-filter bank -> Real log -> Discrete cosine transform(DCT)
๐ ๋ฉ ์ค์ผ์ผ(Mel scale)
์ค์ ์ฃผํ์ ์ ๋ณด๋ฅผ ์ธ๊ฐ์ ์ฒญ๊ฐ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํ์ฌ ์ํ์ ์ผ๋ก ๋ณํ
pitch์์ ๋ฐ๊ฒฌํ ์ฌ๋์ ์์ ์ธ์งํ๋ ๊ธฐ์ค(threshold)์ ๋ฐ์ํ scale ๋ณํ ํจ์
๋์ด๊ฐ ๋ค๋ฅธ 2๊ฐ์ ์์ ์ฌ๋์๊ฒ ๋ค๋ ค์คฌ์ ๋, ์ฌ๋์ด ์ธ์งํ๋ ์ฐจ์ด์ ๋ ์์ ์ค์ ์ฃผํ์ ์ฐจ์ด๋ฅผ ๋ค์ํ๊ฒ ์กฐ์ฌํ์ฌ ํต๊ณ๊ฐ ๊ตฌ์ถ
์ฃผํ์ ์ฑ๋ถ์ ์ค์๋์ ๋ฐ๋ผ ์ฐจ๋ฑ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํ ์ข์ ์งํ
๐ Mel-Frequency Cepstral Coefficient (MFCC)
์ธ๊ฐ์ด ์๋ฆฌ๋ฅผ ์ธ์งํ๋ ๊ณผ์ (์๋ฆฌ)์ ๋ฐ๋ผ ํด์ '์ด๋ค ํน์ง ๋ฒกํฐ'๋ฅผ ์ถ์ถํด๋ด๋ ๊ณผ์
์ฃผํ์์ ๋ฐ๋ผ ์ง๋ํ๊ฒ ๋๋ ๋ถ๋ถ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ Mel filterbank๋ผ๋ ํํฐ๋ฑ ํฌ๋ฅผ ์ด์ฉํด์ ์๋ฆฌ๋ฅผ ์ฃผํ์ ๋์ญ๋ณ๋ก ๊ฑธ๋ฌ๋
์ฌ๋์ ๋ฎ์ ์ฃผํ์์ ๋์ฑ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์
๋ฎ์ ์ฃผํ์์์ ๋ ์ธ์ธํ๊ฒ, ๋์ ์ฃผํ์๋ก ๊ฐ์๋ก ๋ฌ์ฑ๋ฌ์ฑ ์ชผ๊ฐ์ง
MFCC (Mel-Frequency Cepstral Coefficient) : ์์ฑ์ ํธ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ด๋ ํ ํน์ง์ ๋ฝ์๋ด๋ ๊ณผ์
โ feature extraction
coefficient (๊ณ์) : ์ด๋ค ์ฒ๋ฆฌ๋ฅผ ํ์ฌ ๊ตฌํ ๊ณ์
์ฌ๋ฌ task(์์ฑ์ ์ด๋ค ์์ผ๋ก๋ ๋ถ๋ฅํ๋ task)์์ ์์ฑ์ ํ feature(ํน์ฑ)์ผ๋ก์จ ์ด์ฉ
1. Pre-emphasis filtering : ์ ์ฒ๋ฆฌ๋ฅผ ํตํด ๊ณ ์ฃผํ ๋ถ๊ทผ์์ ํฌ๊ธฐ๊ฐ ์์์ง๋ ์์ฑ์ ๊ฐ์กฐ
2. Windowing : fram ๋จ์๋ก ์ฒ๋ฆฌ๋ฅผ ํ๋๋ฐ ๊ธธ์ด๋ 25~35ms ์ฌ์ฉํ๊ณ 50% overlap ์ด์ฉ
3. ์ ์ฒด ์ค๋์ค ์ ํธ๋ฅผ ์ผ์ ๊ฐ๊ฒฉ์ผ๋ก ๋๋๊ณ ํธ๋ฆฌ์ ๋ณํ์ ๊ฑฐ์ณ ์คํํธ๋ก๊ทธ๋จ์ ๊ตฌํจ
4. ๊ฐ ์คํํธ๋ผ์ ์ ๊ณฑ์ธ ํ์ ์คํํธ๋ก๊ทธ๋จ์ Mel scale filter bank๋ฅผ ์ฌ์ฉํด ์ฐจ์ ์๋ฅผ ์ค์
5. log() & IDCT => MFCC : cepstral ๋ถ์์ ์ ์ฉํด MFCC๋ฅผ ๊ตฌํจ
Cepstral ๋ถ์ : ํธ๋ฆฌ์ ๋ณํ์ ๊ฑฐ์ณค์ ๋ ์๊ฐ ์ถ์์ ์ฒ์ฒํ ๋ณํ๋ ์ ๋ณด๊ฐ ๋ฎ์ ์ฃผํ์ ์ฑ๋ถ์ ์์นํ๊ณ , ๋นจ๋ฆฌ ๋ณํ๋ ์ ๋ณด๊ฐ ๋์ ์ฃผํ์ ์ฑ๋ถ์ ์์น
โ Mel filterbank
Mel : ์ฐ๋ฆฌ์ ์ฃผํ์์ ๋ฐ๋ฅธ ์ฃผ๊ด์ ์ธ ์ธ์ง๋์ ์ธก์ ํ๋ ๋จ์
์ฃผํ์๊ฐ ๋๋ฌด ๋์์ง๋ฉด ์ ๊ตฌ๋ณํ์ง ๋ชปํ๋ ํน์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ์ฃผํ์๋ฅผ ๋น์ ํ์ ์ธ ๊ฐ์ผ๋ก mel์ด๋ผ๋ ๋จ์๋ก ๋งคํ ์ํด
์ฆ, mel์ด๋ผ๋ ๋จ์๋ ๋น์ ํ์ ์ธ ์ฃผํ์๋ผ๋ ๋จ์๋ฅผ ์ธ๊ฐ์ ํน์ฑ์ ๋ง๊ฒ ์ ํ์ ์ผ๋ก ํํ๋จ
๊ธฐ์ค์ 1000Hz (1000 mel=1000Hz)
โ STFT (Short Time Fourier Transform)
Time ๋๋ฉ์ธ์ ํํ์ Frequency ๋๋ฉ์ธ์ผ๋ก ๋ณํ์ํค๋ ํธ๋ฆฌ์ ๋ณํ
์ ์ฒด ํํ์ ๋์์ผ๋ก ํ๋ฉด ์ ๋๋ก ๋ ์ฃผํ์ ๋ถ์์ ํ ์ ์๊ธฐ ๋๋ฌธ์, ์งง์ ์๊ฐ ๋จ์๋ก ๋ถ๋ฆฌํด์ ๊ฐ๊ฐ์ ๊ตฌ๊ฐ์ ๋ํด ๋ณํ
- win_length : FFT(Fast Fourier Transform์ ์ฝ์, ๋น ๋ฅด๊ฒ ๋ณํํ๋ ๋ฐฉ์)๋ฅผ ํ ๋ ์ฐธ์กฐํ ๊ทธ๋ํ์ ๊ธธ์ด
- hop_length : ์ผ๋ง๋งํผ ์๊ฐ ์ฃผ๊ธฐ๋ฅผ ์ด๋ํ๋ฉด์ ๋ถ์์ ํ ๊ฒ์ธ์ง (์นผ๋ผ๋งต์ ์๊ฐ ์ฃผ๊ธฐ)
- n_fft : win_length๋ณด๋ค ๊ธธ ๊ฒฝ์ฐ ๋ชจ๋ zero paddingํด์ ์ฒ๋ฆฌํ๊ธฐ ์ํจ (default๋ win_length์ ๊ฐ์)
๊ทธ๋ํ X, Y ์ถ์ ์ด๋ฐ ์์ผ๋ก ํ๋ฌ๊ฐ๋ค