처음부터 시작하겠습니다. cepstrum을 계산하는 표준 방법은 다음과 같습니다.
C(x(t))=F−1[log(F[x(t)])]
MFCC 계수의 경우는 약간 다르지만 여전히 비슷합니다.
프리 엠 퍼시스 및 윈도 잉 후 신호의 DFT를 계산하고 멜 스케일로 분리 된 겹치는 삼각 필터의 필터 뱅크를 적용합니다 (일부 경우 선형 스케일이 mel보다 낫습니다).
cepstrum 정의와 관련하여 이제 스펙트럼 (감소 스펙트럼)의 엔벨로프를 멜 주파수 스케일로 표시했습니다. 이를 나타내면 원래 신호 스펙트럼과 유사하다는 것을 알 수 있습니다.
다음 단계는 위에서 얻은 계수의 로그를 계산하는 것입니다. 이것은 cepstrum이 보컬 등의 임펄스 응답으로부터 신호를 분리하는 동형 변환이어야한다는 사실 때문입니다. 어떻게?
원래의 음성 신호 는 대부분 성대 의 임펄스 응답 와 관련이 있습니다.s(t)h(t)
s^(t)=s(t)⋆h(t)
주파수 영역에서 컨볼 루션은 스펙트럼의 곱셈입니다.
S^(f)=S(f)⋅H(f)
이는 속성에 따라 두 부분으로 분해 될 수 있습니다 .log(a⋅b)=log(a)+log(b)
또한 임펄스 응답은 시간이 지나도 변하지 않기 때문에 평균을 빼면 쉽게 제거 할 수 있습니다. 이제 밴드 에너지의 로그를 취하는 이유를 알 수 있습니다.
cepstrum 정의의 마지막 단계는 Inverse Fourier Transform 입니다. 문제는 우리는 로그 정보 만 있고 위상 정보는 없다는 것입니다. 따라서 적용 후 복소수 계수를 얻습니다.이 모든 노력이 간결한 표현이 되기에는 그리 우아하지 않습니다. FT의 '단순화'버전 인 이산 코사인 변환을 수행하여 실제 계수를 얻을 수 있습니다! 이 절차는 코 시누 소 이드를 로그 에너지 계수와 일치시키는 것으로 시각화 할 수 있습니다. cepstrum이 '스펙트럼의 스펙트럼'이라고도 기억하십니까? 이것이 바로 우리의 로그 에너지 엔벨로프 계수에서 주기성을 찾는 단계입니다.F−1ifft
이제 여러분은 원래 스펙트럼이 어떻게 생겼는지 이해하기가 어렵다는 것을 알게되었습니다. 또한 우리는 일반적으로 처음 12 개의 MFCC 만 사용하고 있는데, 더 높은 것은 로그 에너지의 빠른 변화를 설명하기 때문에 일반적으로 인식률이 떨어집니다. 따라서 DCT를 수행하는 이유는 다음과 같습니다.
원래 IFFT를 수행해야하지만 DCT에서 실제 계수를 얻는 것이 더 쉽습니다. 또한 우리는 더 이상 전체 스펙트럼 (모든 주파수 빈)을 갖지 않지만 mel 필터 뱅크 내에 에너지 계수를 가지므로 IFFT 사용은 약간 과잉입니다.
첫 번째 그림에서 필터 뱅크가 겹치므로 서로 옆의 에너지가 두 개 사이에 분산되어 있습니다. 가우스 혼합 모델 (Gussian Mixture Models)의 경우이 속성은 좋은 속성이라는 점을 명심하십시오. 여기서 완전 공차 대신 모든 계수 (상관 계수가 상관 됨) 대신 대각선 공분산 행렬을 사용할 수 있습니다 (다른 계수간에 상관 관계 없음).
멜 주파수 계수를 역 상관시키는 다른 방법은이 목적을 위해서만 사용되는 기술인 PCA (Principal Component Analysis)입니다. 운 좋게도 DCT가 신호를 장식 할 때 PCA와 매우 유사하다는 것이 입증되었으므로 Discrete Cosine Transform을 사용하는 또 다른 이점이 있습니다.
일부 문헌 :
Hyoung-노랭 김 니콜라스 모로, 토마스 시코 - MPEG-7 오디오 및 너머 : 오디오 컨텐츠 인덱싱 및 검색