음성신호의 Linear Predictive Analysis


음성신호를 분석하는 방법중에 Linear Predictive Analysis가 있다. speech signal이 s[n]이라고 하자. s[n] 값을 추정하기 위해 그전의 s[n-1],s[n-2],s[n-3],….등을 이용하는 방법이 있다. 다시 말하면 $\tilde{s}[n] = \sum_{k=1}^p \alpha_k s[n-k]$라 하여 $s[n]$을 추정하는 방법이다. 이 때 계수 $\alpha_k$가 중요한 역할을 한다. 적합한 $\alpha_k$를 찾는 방법은 여러 방법이 있으니 서치를 해보도록 하고 이 $\alpha_k$를 이용하여 vocal tract filter를 다음과 같이 모델링 할 수 있다.

$$\tilde{H}(e^{j\omega}) = \frac{G}{1-\sum_{k=1}^p \alpha_k e^{-j\omega k}}$$

$\tilde{H}$ 추정 방법

위의 $\tilde{H}$는 speech signal $s[n]$에서 부터 추정을 한다. 신호를 짧게 짧게 나눈 $s_{\hat{n}} [n]$에서 부터 추정을한다. 짧게 나누기 위해 $s[n]$에 윈도우를 곱해준 형태이다.

$$s_{\hat{n}}[n] = s[\hat{n}+n]w[n], 0\leq n \leq L-1$$

위의 숏타임 시그널로부터 $\tilde{H}$를 구성하는 $\alpha_k$를 추정한다.

추정결과

다운로드

맨위는 $s_{\hat{n}}[n]$에 해당하는 그림이다. pitch구조를 확인할 수 있다.

중간에는 $s_{\hat{n}}[n]$의 autocorrelation 이다. autocorrelation 에서도 pitch를 확인할 수 있다.

(c)에서 얇은 선은 $s_{\hat{n}}[n]$의 스펙트럼상의 로그 매그니튜드이다. pitch 구조가 보인다.

여기서 중요한 것은 굵은 선이다. 굵은선은 vocal tract의 frequency response를 그린 그림이다. 실제로 분석을 할 때 $s_{\hat{n}}[n]$만을 가지고 분석을 하는데 어떻게 vocal tract의 frequency response를 구할 수 있을까? $s_{\hat{n}}[n]$의 스펙트럼에는 excitation 과 vocal tract filter가 섞여져 있다. vocal tract filter를 분리하기 위해서는 excitation 의 영향을 없애야 한다. 없애기 위해서 택할 수 있는 방법 $\tilde{H}(e^{j\omega}) = \frac{G}{1-\sum_{k=1}^p \alpha_k e^{-j\omega k}}$에서 p를 작게하여 pitch가 검출되지 못하도록 하는것이다. 그렇게 함으로써 pitch보다는 vocal tract의 frequency response를 관찰하게 되고 그 결과 (c)에서 처럼 부드러운 곡선이 나온다.

vocal tract filter에서 얻을 수 잇는 것

vocal tract filter는 좀더 스무스하고, 포먼트 구조가 잘 보인다. 어떤 음성을 말했을 때 formant구조가 진하므로 분석하기 쉬워지는 경향이 있다.

정리

1. Linear predictive analysis를 이용해 vocal tract filter를 추정할 수 있다.

2. excitation 효과를 제거하기 위해  p 의 길이를 pitch 보다 짧게 세팅한다.

reference

Pearson._ Rabiner, Lawrence R._ Schafer, Ronald W – Theory and applications of digital speech processing-Pearson_Prentice Hall (2010_2011)

Leave a Comment