공부 정리 블로그
[음성신호처리1] 개론 본문
Speech Communication
vocal cord - 성대
vocal tract- 성대~입(까지 공기의 통로)
Analysis/Synthesis Based on Speech Production and Perception
vocal code(성대)에서 purse형태의 신호를 만들어냄
FFT
특정 신호에 포함되어있는 주파수 성분이 어떤 것이 있는지 찾아냄
frequency가 낮은 것부터 높은 것 까지 다양한 주기성을 가진 신호들을
신호에 얼마나 포함되어 있는지 찾아냄
각 주파수 별로 찾아냄 (이 신호에는 어떤 주파수가 어느정도로 포함되어 있는지)
각 주파수 성분의 크기가 얼마나 되는지 시간에 따라 표현
주기와 주파수의 관계성
주기와 주파수는 시간과 관련된 개념으로, 주기는 한 사건이 일어나는 데 걸리는 시간을 나타내고, 주파수는 일어나는 사건의 수를 나타냅니다. 주기는 한 사건이 시작하여 다시 동일한 상태로 돌아오기까지의 시간을 말합니다. 일반적으로 주기는 시간의 단위로 표현되며, 예를 들어 초, 분, 시간 등이 될 수 있습니다. 주기는 "T"로 표기되며, T의 역수인 "1/T"를 주파수라고 합니다. 주파수는 일어나는 사건의 수를 나타냅니다. 주파수는 일어나는 사건의 수를 시간 단위로 나타낸 것으로, 주로 헤르츠(Hz) 단위를 사용합니다. 1헤르츠는 1초에 한 번의 사건이 일어나는 것을 의미합니다. 주기와 주파수는 역의 관계에 있습니다. 주기가 길면 주파수가 낮아지고, 주기가 짧으면 주파수가 높아집니다. 수식적으로는 주파수를 "f"로 표기하고, 주기와의 관계는 다음과 같이 표현됩니다: 주파수 (f) = 1 / 주기 (T) 즉, 주파수는 주기의 역수로 정의되며, 주기와 주파수는 서로 반비례 관계에 있습니다. 예를 들어, 1초의 주기를 갖는 사건의 주파수는 1Hz이고, 0.5초의 주기를 갖는 사건의 주파수는 2Hz입니다. |
p에 해당하는 주기가 주파수에서는 1/p의 간격으로 반복된 pattern 나옴
vocal code에 해당하는 주파수의 무늬들 추가
purse train source -> filter -> speech
source/filter 로 speech 생성 모델 만듦
vocal track - linear time-varying filter
센텐스에 해당하는 단어-음절-음운
음운을 순서대로 발화하는 게 사람이 말하는 방식
음성을 해석한 다는 것은 소스/필터 구분
Speech Analysis and Synthesis Overview
주기적인 운동 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)입니다.
Examples of Speech Sounds
• 유성음(Voiced): 목소리가 나는 소리로, 후두에서 발음되는 소리입니다. 목소리의 진동에 의해 생성되는 음입니다.
• 마찰음(Fricative): 특정 부위에서 기류가 흐르면서 발음되는 소리로, 침을 낮추거나, 입술을 굽히거나, 혀를 부드럽게 통과시킴으로써 발음됩니다.
• 폭발음(Plosive): 입을 완전히 막았다가 갑자기 터트리는 소리로, 어떤 부위에서 폭발적으로 발음되는 소리입니다. 예를 들어, /p/, /t/, /k/와 같은 소리가 폭발음에 해당합니다.
Waveforms
위의 모델은 아주 간단한 수학모델으로 음성을 만들어냄
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를 분석하도록 만듦
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
'대학원 수업 > 음성신호' 카테고리의 다른 글
[음성신호처리9]-Psychoacoustics (0) | 2023.04.22 |
---|---|
[음성신호처리8] - Human Auditory System (0) | 2023.04.22 |
[음성신호처리2]푸리에 급수, 푸리에 변환, Discrete-Time Signals (1) | 2023.04.22 |
[음성신호처리7] - sound wave and wave equation (0) | 2023.04.12 |
[음성신호처리5]-Wave Basic(수정 필요) (0) | 2023.04.05 |