공부 정리 블로그

[음성신호처리1] 개론 본문

대학원 수업/음성신호

[음성신호처리1] 개론

따옹 2023. 4. 20. 20:59

Speech Communication

vocal cord - 성대

vocal tract- 성대~입(까지 공기의 통로)

 

Analysis/Synthesis Based on Speech Production and Perception

purse 신호/recognition 음성 신호 -> 텍스트 생성

vocal code(성대)에서 purse형태의 신호를 만들어냄

filter를 거쳐 speech 생성

FFT

특정 신호에 포함되어있는 주파수 성분이 어떤 것이 있는지 찾아냄

frequency가 낮은 것부터 높은 것 까지 다양한 주기성을 가진 신호들을

신호에 얼마나 포함되어 있는지 찾아냄

각 주파수 별로 찾아냄 (이 신호에는 어떤 주파수가 어느정도로 포함되어 있는지)

각 주파수 성분의 크기가 얼마나 되는지 시간에 따라 표현

 

주기와 주파수의 관계성

주기와 주파수는 시간과 관련된 개념으로, 주기는 한 사건이 일어나는 데 걸리는 시간을 나타내고, 주파수는 일어나는 사건의 수를 나타냅니다.

주기는 한 사건이 시작하여 다시 동일한 상태로 돌아오기까지의 시간을 말합니다. 일반적으로 주기는 시간의 단위로 표현되며, 예를 들어 초, 분, 시간 등이 될 수 있습니다. 주기는 "T"로 표기되며, T의 역수인 "1/T"를 주파수라고 합니다.

주파수는 일어나는 사건의 수를 나타냅니다. 주파수는 일어나는 사건의 수를 시간 단위로 나타낸 것으로, 주로 헤르츠(Hz) 단위를 사용합니다. 1헤르츠는 1초에 한 번의 사건이 일어나는 것을 의미합니다.

주기와 주파수는 역의 관계에 있습니다. 주기가 길면 주파수가 낮아지고, 주기가 짧으면 주파수가 높아집니다. 수식적으로는 주파수를 "f"로 표기하고, 주기와의 관계는 다음과 같이 표현됩니다:
주파수 (f) = 1 / 주기 (T)

즉, 주파수는 주기의 역수로 정의되며, 주기와 주파수는 서로 반비례 관계에 있습니다. 예를 들어, 1초의 주기를 갖는 사건의 주파수는 1Hz이고, 0.5초의 주기를 갖는 사건의 주파수는 2Hz입니다.

p에 해당하는 주기가 주파수에서는 1/p의 간격으로 반복된 pattern 나옴

filter(vocal track)
원본 신호 * filter 신호

vocal code에 해당하는 주파수의 무늬들 추가

 

purse train source -> filter -> speech

source/filter 로 speech 생성 모델 만듦

 

vocal track - linear time-varying filter

센텐스에 해당하는 단어-음절-음운

음운을 순서대로 발화하는 게 사람이 말하는 방식

음성을 해석한 다는 것은 소스/필터 구분

 

Speech Analysis and Synthesis Overview

vocal track 일종의 filter

주기적인 운동 voiced

주기적이지 않은 운동 unvoiced(마찰음, 무질서한 sound)

 

Glottal Airflow

주기가 중요 pitch period (역수는 pitch)

성대가 붙었다 떨어졌다하는 주기 - 사람의 개개인의 고유한 특성이 있음(ex. 남/여)

 

Lossless Tube Model (1)

음성관을 손실이 없는 비균일한 튜브로 가정합니다.
비균일한 튜브는 N개의 균일한 튜브로 근사화될 수 있습니다.
파동 방정식을 적용하고, 후두부에서 입술까지의 전달 함수를 유도합니다.

성도 vocal tract을 아래 그림과 같이 나타냄

단면적이 일정하지 않음

N개의 uniform tube를 연결

 

lossless tube model로 continuous-time model(discret)을 얻음

연속시간 모델을 이산화하면, 결국 음성 생성의 이산시간 모델을 얻게 되는데, 이 모델의 전달 함수 V(z)는 안정적인 모두 극점 함수(all-pole function)입니다.

where Nis the number of the concatenated tubes.

Examples of Speech Sounds

• 유성음(Voiced): 목소리가 나는 소리로, 후두에서 발음되는 소리입니다. 목소리의 진동에 의해 생성되는 음입니다.
• 마찰음(Fricative): 특정 부위에서 기류가 흐르면서 발음되는 소리로, 침을 낮추거나, 입술을 굽히거나, 혀를 부드럽게 통과시킴으로써 발음됩니다.
• 폭발음(Plosive): 입을 완전히 막았다가 갑자기 터트리는 소리로, 어떤 부위에서 폭발적으로 발음되는 소리입니다. 예를 들어, /p/, /t/, /k/와 같은 소리가 폭발음에 해당합니다.

 

Waveforms

speech production mechanism

위의 모델은 아주 간단한 수학모델으로 음성을 만들어냄

 

Spectrographic Analysis of Speech

 

FFT는

wave form에 대해서 주파수 성분이 얼마나 어떻게 분포되어 있는가를 분석하는 것

-무한대 ~ 무한대 시간동안 하나의 transform의 결과를 냄

하지만 사람의 음성은 시간에 따라 바뀜

각 발화 시점마다의 주파수 특성을 구분할 수 있어야 함

 

STFT

▫ 웨이브폼의 일부를 슬라이딩 윈도우(일반적으로 20-30ms)로 나누어 개별적으로 푸리에 변환을 수행합니다.
▫ Hamming window는 음성 세그먼트에 대해 자연스러운 불연속성을 피하고 왜곡을 최소화하는 데 사용됩니다.
▫ Hamming window는 주파수 해상도를 향상시키고 측사이드 로브 감소를 보장하여 좋은 트레이드오프를 제공합니다. 즉, 좋은 주파수 해상도와 작은 스미어링을 얻을 수 있습니다.

"smearing"은 주파수 해상도의 손실을 의미합니다. STFT는 시간-주파수 평면에서 신호를 분석하기 위해 윈도우를 이동하면서 일부 신호를 잘라내어 각 윈도우에서의 주파수 스펙트럼을 계산합니다. 그러나 윈도우의 길이가 짧을 경우, 주파수 해상도가 낮아지고, 주파수 정보가 스펙트럼에서 흩어질 수 있습니다. 이를 "smearing"이라고 부릅니다. 따라서 좋은 주파수 해상도는 주파수 정보의 정확한 표현을 보장하고, 작은 smearing은 주변 주파수 영향을 최소화하여 분석 결과의 정확성을 높이는 것을 의미합니다.
▫ 프레임 쉬프팅(Frame shifting): 일반적으로 10ms의 간격으로 윈도우를 이동하여 연속적인 STFT를 얻습니다.

 

1/50초 정도로 자르고 한부분만 선택하고 나머지는 다 0으로 만듦, 해당 구간에 해당하는 주파수 특성을 파악

hamming window는 mainlobe width 와 sidelobe attenuation 을 적절히 trade-off 시켜쥼

10ms 간격으로 움직여서 분석 함

시간-주파수 graph를 분석하도록 만듦

 

빨간 부분이 에너지가 큼
peak 에 해당하는 부분들이 붉게 표시됨

 

Spectrum of Vowels

Pitch가 다르면 다른 사람의 발화(a)-(b)

동일한 사람이 발음했지만 발음이 다름(b)-(c)

 

CepstralAnalysis

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yeominrock&logNo=167235723 

 

캡스트럼 (cepstrum)

cepstrum을 설명하려면 spectrum에 대한 언급이 있어야 한다. cepstrum 밑줄 친 부분을 거꾸로 해보면...

blog.naver.com

spectrum

cepstrum(다른 차원의 spectrum)

(b)푸리에 변환

(c) log 변환 log a(low) + log b(high)

(d) low (성도) 발음 종류, high(성대) 화자

 

STFT

시간-주파수 spectrum