음성신호의 생성 과정은 아래의 Speech production model (Source filter model)로 나타냅니다. 그러면 voiced speech signal 와 unvoiced speech signal 과 각각의 vocal tract impulse response는 아래와 같이 식으로 표현해줄 수 있습니다.
[voiced speech]
signal : $s[n]=p[n] * h_V[n]$
impulse response : $h_V[n]=A_V \cdot g[n] * v[n] * r[n]$
[unvoiced speech]
signal : $s[n]=u[n] * h_U[n]$
impulse response : $h_U[n]=A_U \cdot v[n] * r[n]$
위의 식을 통해서 각각의 component signal들이 convolution되어 최종적으로 음성신호로 출력되는 것을 알 수 있습니다.
1. Homomorphic system
Homomorphic system은 우리가 자주 들어본 LTI system에서의 linearity 성질(principle of superposition)을 일반화 시킨 시스템입니다. 기존의 LTI system은 input으로 두 가지 signal이 addition된 형태가 들어오면 output 역시 각 signal의 output의 addition을 출력해주는 특성을 가지고 있습니다.
Homomorphic system의 경우에는 이 superposition 특성을 일반화하여서 input으로 두 가지 signal이 convolution된 형태가 들어오면 output 역시 각 signal의 output의 convolution을 출력해주는 특성을 갖는 시스템을 말합니다.
이 Homomorphic system의 중요한 특징이 바로 3개의 homomorphic system을 casecade의 형태로 합쳐 아래의 그림처럼 표현을 할 수 있다는 점입니다. 이때 $\mathcal{D}_*\{ \cdot \}$은 characteristic system으로 convolution → addition 형태로 출력해주는 시스템이고, 그 inverse system같은 경우에는 반대로 addition → convolution의 형태로 바꿔주는 특성을 가지고 있습니다. 즉 characteristic system에 convolutioned input을 넣어주면 signal의 component들을 addition한 non-linearity한 convoltion 연산을 linearity 연산으로 바꿔줍니다..!!!
그런데 speech signal은 각 component들의 convolution된 signal이니까, 이 characteristic system을 이용하면 신호의 각 성분들을 decompose할 수 있게 되는 것입니다. 이때 charateristic system의 output은 complex cepstrum의 합입니다.
2. Cepstrum
Cepstrum은 time-domain에서 frequency-domain으로 변환을 해준 것처럼 frequency-domain에서 time-domain으로의 변환도 가능하다는 것을 보여주기 위해 도입된 개념입니다.
Cepsturm은 아래의 식과 같이 spectrum의 log magnitude를 취한 후 Inverse Fourier Transform을 해주어 구합니다. 그리고 이때 magnitude를 취하지 않고 spectrum의 magnitude만 취한 후 Inverse Fourier Transform을 해주어 구한 것은 complex cepsturm이라고 합니다.
[cepstrum]
$c[n]=\frac{1}{2 \pi} \int_{-\pi}^\pi \log \left|X\left(e^{j \omega}\right)\right| e^{j \omega n} d \omega$
[complex cepstrum]
$\hat{x}[n]=\frac{1}{2 \pi} \int_\pi^\pi \log \left\{X\left(e^{j \omega}\right)\right\} e^{j \omega n} d \omega$
3. Homomorphic Analysis
그럼 실제로 homomorphic system을 이용해 voiced sound를 decompose하는 예를 보도록 하겠습니다.
voiced sound의 component들이 아래와 같은 신호가 있다고 할 때, 우리는 signal과 complex cepstrum을 다음의 식으로 나타낼 수 있습니다.
\begin{aligned} & s[n]=h_V[n] * p[n]=A_V g[n] * v[n] * r[n] * p[n] \\ & \hat{s}[n]=\hat{h}_V[n]+\hat{p}[n]=\log \left|A_V\right| \delta[n]+\hat{g}[n]+\hat{v}[n]+\hat{r}[n]+\hat{p}[n]\end{aligned}
그러면 각각의 component들의 complex cepstrum을 addition하면 기존의 신호의 complex cepstrum을 나타낼 수 있습니다. 그럼 addition된 결과물에서 각각의 component의 특성이 잘 보이니까 음성신호 분석에 사용이 가능하다는 것이겠죠? 아래는 각각의 component들의 complex cepstrum입니다.
보시면 아실 수 있듯이 각자 특징이 보입니다. 그렇기 때문에 원래의 synthetic speech의 complex cepstrum을 보았을 때, 각각의 component들의 특징을 알아볼 수 있습니다. 이때 이 포스트에서는 다루진 않았지만, 각각의 component들이 모두 maximum/minimum phase signal이기 때문에 cepstrum은 아래의 오른쪽 그림과 같이 complex cepstrum의 even part로 나타납니다. (이 내용은 길어질 것 같아 따로 포스팅으로 하도록 하겠습니다.)
'신호처리 > 음성신호' 카테고리의 다른 글
[LPC] Linear Predictive Analysis (0) | 2024.01.25 |
---|---|
[STFT] Frequency resolution과 Time resolution (3) | 2023.11.09 |
[Window] Rectangular window와 Hamming Window (0) | 2023.11.09 |