{
    "componentChunkName": "component---src-templates-post-tsx",
    "path": "/dsp2/",
    "result": {"data":{"logo":null,"markdownRemark":{"html":"<h1>AI &#x26; Speech Processing: DSP-2</h1>\n<p>본 글은 광운대학교 전자공학과 박호종 교수님의 강의를 듣고 작성되었음을 밝힙니다.</p>\n<h2>DFT (Discrete Fourier Transform)</h2>\n<p>Digital 처리를 위하여 time와 frequency domain에서 모두 <strong>sampling</strong></p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/78664225-88cf2000-790e-11ea-97f9-b045bfaa45d7.png\" alt=\"image\"></p>\n<p>f축에서 1 / N 간격으로 샘플링을 하게 되면 샘플한 결과는 주기마다 N개가 된다.<br>\n이때 샘플링을 했으므로 축은 f -> k로 변하게 된다.</p>\n<p>이전 CTFT와 같이, 1 / N마다 샘플링을 하게 되면 반대 도메인에서 N마다 반복하게 된다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/78664562-3c381480-790f-11ea-845a-08b0022d3aee.png\" alt=\"image\"></p>\n<ul>\n<li>t축에서 샘플링을 했기 때문에 f축에서 반복이 일어난다. 또한 t축은 n축으로 변하게 된다.</li>\n<li>f축에서 샘플링을 했기 때문에 n축에서 반복이 일어난다. 또한 f축은 k축으로 변하게 된다.</li>\n</ul>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/78664917-efa10900-790f-11ea-88d5-232526cb7e1d.png\" alt=\"image\"></p>\n<p>사실 x[n]과 X(k)는 서로 연관이 있지 않다. x[n]은 X(f)와, x_hat[n]은 X(k)와 연관이 있을 뿐이다.<br>\n하지만 x[n]에서 X(k)로의 변환이 필요하니 조금 억지로나마 수학적으로 관계를 정의했다.<br>\n=> 이것을 <strong>DFT (Discrete Fourier Transform)</strong> 이라고 한다.</p>\n<p>여기서 이렇게 변환이 가능하게한 트릭이 뭔지 살펴보자.<br>\nx[n]과 X(k)는 서로 관계가 없다. 하지만 어차피 일정 부분의 반복일 뿐이다.<br>\n그러므로, 반복되는 부분은 새로운 정보가 있지 않다. => 반복이 되는 내용만 알면 된다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/78665186-61795280-7910-11ea-86dc-36622103938e.png\" alt=\"image\"></p>\n<p>-N/2 ~ N/2 범위로 잡기보다는 보통 [0, N-1]을 범위로 잡는다고 한다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79641837-dbdd8880-81d4-11ea-8ba1-882096d7f5c1.png\" alt=\"image\"></p>\n<p>그럼 <strong>Discrete Fourier Tansform</strong> 식을 한번 살펴보자.<br>\nx[n]식을 보게 되면, 1/N을 제외하고 보게 되면 아래와 같이 반복되는 모양이다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79641889-4262a680-81d5-11ea-8603-e57920de4d29.png\" alt=\"image\"></p>\n<p>여기서 1/N을 해주는 이유는 수학적 이론 때문이라고 한다.<br>\n(이는 그렇게 중요한 내용은 아니라고 넘어가셨다.)</p>\n<p>여기서 중요한 부분은 <strong>0 ≤ n &#x3C; N</strong> 부분이다.<br>\n위의 <strong>x_hat</strong>에 대해서 <strong>0 ≤ n &#x3C; N</strong>으로 범위를 한정해주기 때문에 x[n]으로 변환될 수 있는것이다.</p>\n<p>이렇게 조금은 억지로 x[n]과 X(k)의 관계를 정의할 수 있다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642034-214e8580-81d6-11ea-8ebd-d7a31101714a.png\" alt=\"image\"></p>\n<h3>※ 샘플링이 다른 도메인에서 반복이 되는 이유 ※</h3>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642307-b9993a00-81d7-11ea-98ac-2ba51258285d.png\" alt=\"image\"></p>\n<p>(a)와 같은 원 신호에 대해 샘플링을 한다는 것은 (b)와 같은 임펄스 신호와 곱셈을 한다고도 볼 수 있다.<br>\n그리고 <strong>시간 축에서의 곱셈은 주파수 축에서의 컨볼루션 연산과 같다.</strong><br>\n( 반대로 주파수 축에서의 곱셈은 시간 축에서의 컨볼루션이다 )</p>\n<p>그런데 (b)와 같은 임펄스 신호는 주기함수이기 때문에 주파수 대역에서 반복된다.<br>\n(주기함수는 cos(2nf + a)꼴이기 때문)</p>\n<p>즉 임펄스 신호가 주파수 대역에서 주기적으로 반복되는 신호이기 때문에 이에 컨볼루션 연산을 취하게 되면, 주기적으로 반복하는 신호가 된다.</p>\n<h3>N-point DFT</h3>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642567-252fd700-81d9-11ea-8f2e-347a489a8d5d.png\" alt=\"image\"></p>\n<p>이제 DFT에서 <strong>N</strong>에 주목해보자.<br>\n<strong>N</strong>은 주파수축에서는 1/N 마다 샘플링을 하고, 시간 축에서는 N을 주기로 반복하게 하는 중요한 파라미터다.</p>\n<p>그럼 이러한 N은 어떤 점을 결정하게 될까?<br>\n아래 그림을 살펴보자.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642660-e77f7e00-81d9-11ea-8834-9ec678cdcb44.png\" alt=\"image\"></p>\n<p>만약 위와 같이 샘플링을 하게 되면 신호의 특성을 충분히 반영하지 못할 것이다.<br>\n즉, 신호에 담겨있는 많은 <strong>정보</strong>를 잃어버리게 된다.</p>\n<p>이처럼 N은 <strong>주파수의 resolution</strong>을 결정한다. (음질)</p>\n<p>촘촘하게 샘플링을 할 수록 더 좋은 음질 혹은 해상도를 가질 수 있게 한다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642796-8ad09300-81da-11ea-9713-026b3c7be5dd.png\" alt=\"image\"></p>\n<p>위의 예제는 8kHz의 주파수 범위를 가지는 신호에 대해 100-Point 샘플링을 한 예이다.<br>\n이 때의 Spectral Resolution은 샘플링의 간격인 8k / 100 = 80Hz가 된다.</p>\n<p>그리고 만약, 해당 신호에 대하여 200Hz의 low-pass filter를 통과시켰다고 해보자.<br>\n그럼 200Hz 이상의 신호를 지워버리면 된다.</p>\n<p>근데 왜 98, 99신호가 남아있지? 라고 생각할 수 있다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642992-a25c4b80-81db-11ea-8373-1a6ce5a51037.png\" alt=\"image\"></p>\n<p>위의 그림을 봐보자. 우리는 [-N/2, N/2]를 범위로 하기보다는, 편의를 위해 [0, N-1]을 범위로 잡았다. 이때, 우리가 편의상 범위를 그렇게 잡았을 뿐이지, 원래 최고 주파수는 0.5 (가운데 )라는 사실을 기억해야한다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79642918-1ea25f00-81db-11ea-8967-7b73702538c4.png\" alt=\"image\"></p>\n<p>0.5까지는 주파수가 증가하다가 0.5 이후로는 주파수가 감소한다는 사실을 꼭 기억해야한다.</p>\n<p>즉, 가운데 (0.5) 를 기준으로 서로 대칭인 관계라는 사실을 꼭 기억해야한다.</p>\n<h2>LTI (Linear Time-Invariant) System</h2>\n<p>시스템에서 우리가 관심있는 것은 대표적으로 2가지이다.</p>\n<ol>\n<li>\n<p>시스템 동작을 어떻게 <strong>구현</strong>할 것인가</p>\n</li>\n<li>\n<p>시스템의 <strong>성질</strong>이 무엇인가</p>\n</li>\n</ol>\n<h3>충격응답 h[n]</h3>\n<p>충격응답을 넣었을 때 어떤 신호가 resonse로 나오는지가 관심이 있는 것이다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79643460-03851e80-81de-11ea-92ef-675de741b2b5.png\" alt=\"image\"></p>\n<p>위와 같이 조금은 복잡한 식이지만, 프로그래밍으로 <strong>구현</strong>한다면 충분히 구현이 가능하다.</p>\n<p>하지만, h[n]만으로 이 시스템이 어떤 동작을 시키는 시스템이냐? 라는 질문에는 답하기 어렵다.</p>\n<p>h[n]은 단지 수식으로 시스템의 동작만을 알려줄 뿐이다.</p>\n<p>하지만 이러한 한계를 H(f) (주파수 응답) 을 이용하여 극복한다.</p>\n<p>Y(f) = X(f)H(f)가 된다.<br>\n=> 시간 축에서의 컨볼루션은 주파수 축에서의 곱 !!</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79643546-6bd40000-81de-11ea-9068-95aa74824355.png\" alt=\"image\"></p>\n<p>위와 같이 X라는 입력이 H라는 시스템에 들어갔을 때 어떤 식으로 변화가 이루어지는지를 쉽게 파악할 수 있다.</p>\n<p>이러한 변화는 <strong>Spectral envelop의 변화</strong>라고 한다.<br>\n(평탄했던 Spectral의 높낮이가 변함)</p>\n<p>실제로 X와 Y의 소리를 듣게 되면 상당한 변화가 느껴진다고 한다.<br>\n교수님의 말씀으로는 이러한 Spectral envelop의 변화가 사람 음성에서는 <strong>발음</strong>을 결정하는 요소가 된다고 한다.</p>\n<h2>Z-Transform</h2>\n<p>h[n] 또는 H(f)는 <strong>시스템의 동작 구조</strong>를 효율적으로 보여주지는 못한다.<br>\nH(f)는 시스템을 쉽게 파악할 수 있게하지만, 여러번의 transform을 요구한다.</p>\n<p>그래서 z-transform을 이용하여 <strong>시스템의 동작 구조</strong>를 쉽게 파악할 수 있게 한다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79643803-a7bb9500-81df-11ea-9dad-2a26a905d37c.png\" alt=\"image\"></p>\n<p>위의 식에서 볼 수 있듯이, Z-Transform을 사용하면 쉽고 빠르게 어떤 동작이 이루어지는지를 파악할 수 있다.</p>\n<p>H(z) = X(z) / Y(z) 라는 식에 초점을 맞춰보면, <strong>분자는 인풋</strong>에 어떤 시스템이 적용되는지를 파악할 수 있고, <strong>분모는 피드백</strong>이 어떤 식으로 들어가는지를 파악할 수 있다.</p>\n<p><img src=\"https://user-images.githubusercontent.com/42150335/79643861-008b2d80-81e0-11ea-80de-10e8213948bb.png\" alt=\"image\"></p>\n<p>위는 Z-Transform을 이용하여 시스템의 동작 구조를 블록 다이어그램으로 표현한 그림이다.<br>\n이처럼 Z-Transform은 h[n]이나 H(f)보다 쉽게 시스템의 동작 구조를 이해하도록 해준다.</p>","htmlAst":{"type":"root","children":[{"type":"element","tagName":"h1","properties":{},"children":[{"type":"text","value":"AI & Speech Processing: DSP-2"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"본 글은 광운대학교 전자공학과 박호종 교수님의 강의를 듣고 작성되었음을 밝힙니다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"DFT (Discrete Fourier Transform)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Digital 처리를 위하여 time와 frequency domain에서 모두 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"sampling"}]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/78664225-88cf2000-790e-11ea-97f9-b045bfaa45d7.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"f축에서 1 / N 간격으로 샘플링을 하게 되면 샘플한 결과는 주기마다 N개가 된다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n이때 샘플링을 했으므로 축은 f -> k로 변하게 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"이전 CTFT와 같이, 1 / N마다 샘플링을 하게 되면 반대 도메인에서 N마다 반복하게 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/78664562-3c381480-790f-11ea-845a-08b0022d3aee.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ul","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"t축에서 샘플링을 했기 때문에 f축에서 반복이 일어난다. 또한 t축은 n축으로 변하게 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"f축에서 샘플링을 했기 때문에 n축에서 반복이 일어난다. 또한 f축은 k축으로 변하게 된다."}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/78664917-efa10900-790f-11ea-88d5-232526cb7e1d.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"사실 x[n]과 X(k)는 서로 연관이 있지 않다. x[n]은 X(f)와, x_hat[n]은 X(k)와 연관이 있을 뿐이다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n하지만 x[n]에서 X(k)로의 변환이 필요하니 조금 억지로나마 수학적으로 관계를 정의했다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n=> 이것을 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"DFT (Discrete Fourier Transform)"}]},{"type":"text","value":" 이라고 한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"여기서 이렇게 변환이 가능하게한 트릭이 뭔지 살펴보자."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nx[n]과 X(k)는 서로 관계가 없다. 하지만 어차피 일정 부분의 반복일 뿐이다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n그러므로, 반복되는 부분은 새로운 정보가 있지 않다. => 반복이 되는 내용만 알면 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/78665186-61795280-7910-11ea-86dc-36622103938e.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"-N/2 ~ N/2 범위로 잡기보다는 보통 [0, N-1]을 범위로 잡는다고 한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79641837-dbdd8880-81d4-11ea-8ba1-882096d7f5c1.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"그럼 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Discrete Fourier Tansform"}]},{"type":"text","value":" 식을 한번 살펴보자."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nx[n]식을 보게 되면, 1/N을 제외하고 보게 되면 아래와 같이 반복되는 모양이다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79641889-4262a680-81d5-11ea-8603-e57920de4d29.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"여기서 1/N을 해주는 이유는 수학적 이론 때문이라고 한다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n(이는 그렇게 중요한 내용은 아니라고 넘어가셨다.)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"여기서 중요한 부분은 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"0 ≤ n < N"}]},{"type":"text","value":" 부분이다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n위의 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"x_hat"}]},{"type":"text","value":"에 대해서 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"0 ≤ n < N"}]},{"type":"text","value":"으로 범위를 한정해주기 때문에 x[n]으로 변환될 수 있는것이다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"이렇게 조금은 억지로 x[n]과 X(k)의 관계를 정의할 수 있다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642034-214e8580-81d6-11ea-8ebd-d7a31101714a.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"※ 샘플링이 다른 도메인에서 반복이 되는 이유 ※"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642307-b9993a00-81d7-11ea-98ac-2ba51258285d.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"(a)와 같은 원 신호에 대해 샘플링을 한다는 것은 (b)와 같은 임펄스 신호와 곱셈을 한다고도 볼 수 있다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n그리고 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"시간 축에서의 곱셈은 주파수 축에서의 컨볼루션 연산과 같다."}]},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n( 반대로 주파수 축에서의 곱셈은 시간 축에서의 컨볼루션이다 )"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"그런데 (b)와 같은 임펄스 신호는 주기함수이기 때문에 주파수 대역에서 반복된다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n(주기함수는 cos(2nf + a)꼴이기 때문)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"즉 임펄스 신호가 주파수 대역에서 주기적으로 반복되는 신호이기 때문에 이에 컨볼루션 연산을 취하게 되면, 주기적으로 반복하는 신호가 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"N-point DFT"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642567-252fd700-81d9-11ea-8f2e-347a489a8d5d.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"이제 DFT에서 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"N"}]},{"type":"text","value":"에 주목해보자."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n"},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"N"}]},{"type":"text","value":"은 주파수축에서는 1/N 마다 샘플링을 하고, 시간 축에서는 N을 주기로 반복하게 하는 중요한 파라미터다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"그럼 이러한 N은 어떤 점을 결정하게 될까?"},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n아래 그림을 살펴보자."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642660-e77f7e00-81d9-11ea-8834-9ec678cdcb44.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"만약 위와 같이 샘플링을 하게 되면 신호의 특성을 충분히 반영하지 못할 것이다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n즉, 신호에 담겨있는 많은 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"정보"}]},{"type":"text","value":"를 잃어버리게 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"이처럼 N은 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"주파수의 resolution"}]},{"type":"text","value":"을 결정한다. (음질)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"촘촘하게 샘플링을 할 수록 더 좋은 음질 혹은 해상도를 가질 수 있게 한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642796-8ad09300-81da-11ea-9713-026b3c7be5dd.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위의 예제는 8kHz의 주파수 범위를 가지는 신호에 대해 100-Point 샘플링을 한 예이다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n이 때의 Spectral Resolution은 샘플링의 간격인 8k / 100 = 80Hz가 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"그리고 만약, 해당 신호에 대하여 200Hz의 low-pass filter를 통과시켰다고 해보자."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n그럼 200Hz 이상의 신호를 지워버리면 된다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"근데 왜 98, 99신호가 남아있지? 라고 생각할 수 있다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642992-a25c4b80-81db-11ea-8373-1a6ce5a51037.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위의 그림을 봐보자. 우리는 [-N/2, N/2]를 범위로 하기보다는, 편의를 위해 [0, N-1]을 범위로 잡았다. 이때, 우리가 편의상 범위를 그렇게 잡았을 뿐이지, 원래 최고 주파수는 0.5 (가운데 )라는 사실을 기억해야한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79642918-1ea25f00-81db-11ea-8967-7b73702538c4.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"0.5까지는 주파수가 증가하다가 0.5 이후로는 주파수가 감소한다는 사실을 꼭 기억해야한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"즉, 가운데 (0.5) 를 기준으로 서로 대칭인 관계라는 사실을 꼭 기억해야한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"LTI (Linear Time-Invariant) System"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"시스템에서 우리가 관심있는 것은 대표적으로 2가지이다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"ol","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"시스템 동작을 어떻게 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"구현"}]},{"type":"text","value":"할 것인가"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"li","properties":{},"children":[{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"시스템의 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"성질"}]},{"type":"text","value":"이 무엇인가"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h3","properties":{},"children":[{"type":"text","value":"충격응답 h[n]"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"충격응답을 넣었을 때 어떤 신호가 resonse로 나오는지가 관심이 있는 것이다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79643460-03851e80-81de-11ea-92ef-675de741b2b5.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위와 같이 조금은 복잡한 식이지만, 프로그래밍으로 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"구현"}]},{"type":"text","value":"한다면 충분히 구현이 가능하다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"하지만, h[n]만으로 이 시스템이 어떤 동작을 시키는 시스템이냐? 라는 질문에는 답하기 어렵다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"h[n]은 단지 수식으로 시스템의 동작만을 알려줄 뿐이다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"하지만 이러한 한계를 H(f) (주파수 응답) 을 이용하여 극복한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"Y(f) = X(f)H(f)가 된다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n=> 시간 축에서의 컨볼루션은 주파수 축에서의 곱 !!"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79643546-6bd40000-81de-11ea-9068-95aa74824355.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위와 같이 X라는 입력이 H라는 시스템에 들어갔을 때 어떤 식으로 변화가 이루어지는지를 쉽게 파악할 수 있다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"이러한 변화는 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"Spectral envelop의 변화"}]},{"type":"text","value":"라고 한다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n(평탄했던 Spectral의 높낮이가 변함)"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"실제로 X와 Y의 소리를 듣게 되면 상당한 변화가 느껴진다고 한다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n교수님의 말씀으로는 이러한 Spectral envelop의 변화가 사람 음성에서는 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"발음"}]},{"type":"text","value":"을 결정하는 요소가 된다고 한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"h2","properties":{},"children":[{"type":"text","value":"Z-Transform"}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"h[n] 또는 H(f)는 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"시스템의 동작 구조"}]},{"type":"text","value":"를 효율적으로 보여주지는 못한다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\nH(f)는 시스템을 쉽게 파악할 수 있게하지만, 여러번의 transform을 요구한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"그래서 z-transform을 이용하여 "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"시스템의 동작 구조"}]},{"type":"text","value":"를 쉽게 파악할 수 있게 한다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79643803-a7bb9500-81df-11ea-9dad-2a26a905d37c.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위의 식에서 볼 수 있듯이, Z-Transform을 사용하면 쉽고 빠르게 어떤 동작이 이루어지는지를 파악할 수 있다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"H(z) = X(z) / Y(z) 라는 식에 초점을 맞춰보면, "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"분자는 인풋"}]},{"type":"text","value":"에 어떤 시스템이 적용되는지를 파악할 수 있고, "},{"type":"element","tagName":"strong","properties":{},"children":[{"type":"text","value":"분모는 피드백"}]},{"type":"text","value":"이 어떤 식으로 들어가는지를 파악할 수 있다."}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"element","tagName":"img","properties":{"src":"https://user-images.githubusercontent.com/42150335/79643861-008b2d80-81e0-11ea-80de-10e8213948bb.png","alt":"image"},"children":[]}]},{"type":"text","value":"\n"},{"type":"element","tagName":"p","properties":{},"children":[{"type":"text","value":"위는 Z-Transform을 이용하여 시스템의 동작 구조를 블록 다이어그램으로 표현한 그림이다."},{"type":"element","tagName":"br","properties":{},"children":[]},{"type":"text","value":"\n이처럼 Z-Transform은 h[n]이나 H(f)보다 쉽게 시스템의 동작 구조를 이해하도록 해준다."}]}],"data":{"quirksMode":false}},"excerpt":"AI & Speech Processing: DSP-2 본 글은 광운대학교 전자공학과 박호종 교수님의 강의를 듣고 작성되었음을 밝힙니다. DFT (Discrete Fourier Transform) Digital 처리를 위하여 time와 frequency…","fields":{"readingTime":{"text":"10 min read"}},"frontmatter":{"title":"Sooftware Speech - AI & Speech Processing: DSP-2","userDate":"9 April 2020","date":"2020-04-09T10:00:00.000Z","tags":["speech","dsp"],"excerpt":null,"image":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","backgroundColor":"#f8f8f8","images":{"fallback":{"src":"/static/469a97adb92a59804305e435dac71520/cb4cb/dsp2.png","srcSet":"/static/469a97adb92a59804305e435dac71520/e6cc4/dsp2.png 750w,\n/static/469a97adb92a59804305e435dac71520/c8e41/dsp2.png 1080w,\n/static/469a97adb92a59804305e435dac71520/3f384/dsp2.png 1366w,\n/static/469a97adb92a59804305e435dac71520/cb4cb/dsp2.png 1373w","sizes":"100vw"},"sources":[{"srcSet":"/static/469a97adb92a59804305e435dac71520/79bef/dsp2.webp 750w,\n/static/469a97adb92a59804305e435dac71520/c28c7/dsp2.webp 1080w,\n/static/469a97adb92a59804305e435dac71520/a040e/dsp2.webp 1366w,\n/static/469a97adb92a59804305e435dac71520/668c2/dsp2.webp 1373w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.5105608157319738}}},"author":[{"id":"Soohwan Kim","bio":"Co-founder/A.I. engineer at TUNiB.","avatar":{"children":[{"gatsbyImageData":{"layout":"fullWidth","backgroundColor":"#282838","images":{"fallback":{"src":"/static/a9e6b445142b247ee4cfa66155398bb2/0d6f4/soohwan.png","srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/248f9/soohwan.png 40w,\n/static/a9e6b445142b247ee4cfa66155398bb2/fd435/soohwan.png 80w,\n/static/a9e6b445142b247ee4cfa66155398bb2/0d6f4/soohwan.png 120w","sizes":"100vw"},"sources":[{"srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/e7f45/soohwan.webp 40w,\n/static/a9e6b445142b247ee4cfa66155398bb2/589ec/soohwan.webp 80w,\n/static/a9e6b445142b247ee4cfa66155398bb2/71a38/soohwan.webp 120w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.6833333333333333}}]}}]}},"relatedPosts":{"totalCount":20,"edges":[{"node":{"id":"fa9e8cbb-841a-516f-9df6-4be0336b56b0","excerpt":"한국어 Tacotron2 이번 포스팅에서는 Tacotron2 아키텍처로 한국어 TTS 시스템을 만드는 방법에 대해 다루겠습니다. Tacotron2 Tacotron2는 17년 12월 구글이 NATURAL TTS SYNTHESIS BY…","frontmatter":{"title":"Sooftware Speech - 한국어 Tacotron2","date":"2021-10-10T10:00:00.000Z"},"fields":{"readingTime":{"text":"11 min read"},"slug":"/korean_tacotron2/"}}},{"node":{"id":"43c23529-71b1-5d60-8883-a45fbcd55ebd","excerpt":"Textless NLP: Generating expressive speech from raw audio paper / code / pre-train model / blog Name: Generative Spoken Language Model (GSLM…","frontmatter":{"title":"Sooftware NLP - Textless NLP","date":"2021-09-19T10:00:00.000Z"},"fields":{"readingTime":{"text":"4 min read"},"slug":"/Textledd NLP: Generating expressive speech from raw audio/"}}},{"node":{"id":"83c6b4fa-d71e-51d8-90bb-b58bfffc01d0","excerpt":"Pushing the Limits of Semi-Supervised Learning for Automatic Speech Recognition Yu Zhang et al., 2020 Google Research, Brain Team Reference…","frontmatter":{"title":"Sooftware Speech - Pushing the Limits of Semi-Supervised Learning for Automatic Speech Recognition Paper Review","date":"2021-03-17T10:00:00.000Z"},"fields":{"readingTime":{"text":"3 min read"},"slug":"/Pushing the Limits of Semi-Supervised Learning for Automatic Speech Recognition/"}}},{"node":{"id":"894a24ca-fff9-5884-b6da-1c97f2ece7bc","excerpt":"PORORO Text-To-Speech (TTS) 얼마전에 저희 팀에서 공개한 PORORO: Platform Of neuRal mOdels for natuRal language prOcessing 라이브러리에 제가 공들여만든 TTS…","frontmatter":{"title":"PORORO Text-To-Speech (TTS)","date":"2021-02-16T10:00:00.000Z"},"fields":{"readingTime":{"text":"1 min read"},"slug":"/pororo-tts/"}}},{"node":{"id":"b039977c-cecb-50f4-a0dd-fd008731bc99","excerpt":"EMNLP Paper Review: Speech Adaptive Feature Selection for End-to-End Speech Translation (Biao Zhang et al) Incremental Text-to-Speech…","frontmatter":{"title":"Sooftware Speech - EMNLP Paper Review: Speech","date":"2020-12-08T10:00:00.000Z"},"fields":{"readingTime":{"text":"4 min read"},"slug":"/2020 EMNLP Speech Paper Review/"}}}]}},"pageContext":{"slug":"/dsp2/","prev":{"excerpt":"AI & Speech Processing: DSP-1 본 글은 광운대학교 전자공학과 박호종 교수님의 강의를 듣고 작성되었음을 밝힙니다. DSP Review Time-to-Frequency transform Continuous-Time Fourier…","frontmatter":{"title":"Sooftware Speech - AI & Speech Processing: DSP-1","tags":["speech","dsp"],"date":"2020-04-08T10:00:00.000Z","draft":false,"excerpt":null,"image":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsTAAALEwEAmpwYAAABEklEQVQY043Oy3KDMBBE0fz/96Xi2FkEgYQRDtJgCSGD4aasVB7L9GZm0XWqn9Z1pTufUUrRtgatNcYYdNNgO0urNapS1HVdest94+W94/mt5lh1VJ3npCxWZhp/42nfdx5oSok0TaR5ZokT0fb49sy1syxeWELkvm2s246ywrvu0L2jsQPm4jH9wEH1X+Ajc0pMMXKNkW1KBaqOJ9pKlZ8QS48d3DjxMQheAoMbyz9IwFzGXzDn/LXye6kIS4xk8ayd5S5jgdXhFX16ozme6FVNfqx3ArelOD/gAxrHEe8cIQSuIZByZp4T9xDIziPtGddoXGPK9doQbM9t8AXc/4IxRpxzBRURRDzznPlvirLvfALoucrXa+VlDAAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/b2a62b0f00909ef6d1e35130041e84ea/ef400/dsp1.png","srcSet":"/static/b2a62b0f00909ef6d1e35130041e84ea/ef400/dsp1.png 727w","sizes":"100vw"},"sources":[{"srcSet":"/static/b2a62b0f00909ef6d1e35130041e84ea/e8edc/dsp1.webp 727w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.3246217331499312}}},"author":[{"id":"Soohwan Kim","bio":"Co-founder/A.I. engineer at TUNiB.","avatar":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABYlAAAWJQFJUiTwAAADjElEQVQ4y23Oy48TdQDA8TExEaTttvSBfdHddru7bWc6bWd+8+i0u23n0SdlBRQXZGHDgiiLDwgqXjCIJEaC8cLBmHgwUU9EYzRqQuLJi/4NJB6NF+8evgbOHr7XT76SM5ix7s4QnRHnnm9yZzvBTIswN8JcP5bC67ZoWi7CdtFsn5bloZo+dSNAMYbIIqCmD6mJIVXdR3J6I7r9IQ3T59pZlW+uxzndCbPdC/HZXoq3TikowsfqBOjOmFZ7SrM9p2kfRbXn1O0jKNbsSbJ5BMnu9Gl3+qiiz4OPSvz0QRLHFGwOZH6+neLHT5YRbRerM0J0JrTas/8FZXNKzZgg2es+ZtvDdbs8+iHJl+9lWVP7OG2br26k+PvXJCfmFqoYIpwhTXtMwxpTN0coxhjFmCKbE2rGmKoYPQY9qi2fyzsq//4e5sNXi5TlLqbd5t6lPH/9kuDTG2usqgGi7dO0hzSsIXUzQDaGKGKMLEZUxZCKCJB02+PUpMH9vQwP7ybYnSxyfNrjwumA3dEiD94v8cfnK7xzWsbpujQtH9X0qBs+iuEjC5+a7lPVPSqai9SyelyYFbjkh5hqC3TkKOutLON2nkYpgtuMcT6IszdPslo8SLlcpmUH1A0XRQyQhUtNuFQ1l4o2QFI1h3OTVXbcg+grIfSVBRqlEGopgrYSRi0e4KiIse1mScSeopA/iLADmoZL3Rgg631q+oCq1qeq95FOzhQefpzn7eMpBmqcoBVj04pzwkky0eNMRYIdL8F3twusLe2nslrE6g5pGX1U8/FhD1nvUW1tUJK7SH9+n+DR1zF2vQSvH0lz88wiV45V2J1WuHqsxLXNAnuzNJdfWmK5/BylUgFhb6DZAxR9g7rpIos+Wttja2uE9M9vYb69k+DqfJErWzLOuoVqdKlpDo4jODms4zlFckuHObx4iHwuRi6fYqmYY201x/LqMrnFDNl8gRvvukhNdT9394rcOlNFMxrUhYFmW9imTEsp0mhWKC2nWSokyWSiFA7HSKcXiEb34fayyLVniUQk8rmn2drKIqlqiNcuVrh2ymQS1Nh8sc/GoMEbl7u8eb5D1yqTzkRJJsOkkiGymQVShyLE4yHWKnEq1RjpTIhmI8r2y3mkyloI38uha1n6bpVXrkw5+4LD/S/2uHnrIopaJhZ9hmQqwqHkAXJP8BDhyD46ZoWdMxOGcx/PNfECk/8AbxXdRjRliPoAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png","srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/34f77/soohwan.png 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/a94f6/soohwan.png 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png 1148w","sizes":"100vw"},"sources":[{"srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/38420/soohwan.webp 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7470d/soohwan.webp 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/b5ef6/soohwan.webp 1148w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.6829268292682927}}}}]},"fields":{"readingTime":{"text":"3 min read"},"layout":"","slug":"/dsp1/"}},"next":{"excerpt":"AI & Speech Signal Processing Lecture : DSP for Audio 본 글은 광운대학교 전자공학과 박호종 교수님의 강의를 듣고 작성되었음을 밝힙니다. 이제는 오디오에 특화된 DSP로 넘어가보자. Short-Time…","frontmatter":{"title":"Sooftware Speech - AI & Speech Processing: DSP for Audio","tags":["speech","dsp"],"date":"2020-04-11T10:00:00.000Z","draft":false,"excerpt":null,"image":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAAACXBIWXMAAAsTAAALEwEAmpwYAAACrUlEQVQ4y32UvW4TQRSF/TI0dCAhJAo6aioeBImSN6DgASiQkBAooqFIAekIiVAiQgI4CcqP4xDbu7bXu97f2Z+5H5qx17GN4Uqj9czOPT7nnnu3ASAiXIcQ5sL+UPg5Er4MND9GwrEvXITCwWhyvtkVjsbCaSDoabrBaZgfeZ7zdW+P5tGxfbF5JdxfE269gjtvhNuvhQfvNA/fa+6+1dx4obn5UnNvTfNoXYiyHJVlGF6NGlkpRVEUFjDTcD4u+NzJ2e/nNP2Sywy6idAcY9n/GsNZCE4mNt8uoLEodxpKoYKAQfcKz+mR9l1QKaChVJNnlYOUC2kzya7r0jw85KLdJo5j+zLNMtI8xw8jvJFPnKQ4bp9MKXqOa/dhFFFWFWVZkmWZzbOARVniBwFhGFJpjYoiBv0BsefRa1/idDo43S6O606W4zD0PAvY7w+oqmome7XkPKdzdYXf7eG2L2mdnCLT+mqtZ/Lq3Plno35hLpol0x6IwzGqyK1sw0QvJS5HfdZgVYiwP4ZnvzTr3Yl7IIvMZM7deYamB03tkiSxhkTGFBGGSrM10PxONJex5puvSarVIPPRMEBb29t83Njg0+YmO7u7tsj11ESl8Py44vF+xQdHz5j+S7qtoXG40+nY9jEu2loaA6ZMlIBfGOnCWThZBngV09U1XPp3M1ZIZWf36feKJ7uak/C6svN3F11eqs9wOKTValnWZjRN9DKNk04YmnKZpp43q7GKWQ1oDDMTcN5qkabpwhdpWclKyfWhYesHPkEQWNZhGFm2nufZkTTXTGeYfT1yfzFcLnCUKkZhRD6dkFQpgjAkVYXlF2fKznmi8v+bMgMFqhUS633dQGaVZqLSbBFwnuG4EE4SzVmicZXQz4XDSHMaa3vuKGHH1xyMNXuBppqbnD++xrr4PcAGMAAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/2227958d85bef3ecbfe974892a44ceee/745a1/stft.png","srcSet":"/static/2227958d85bef3ecbfe974892a44ceee/c0e46/stft.png 750w,\n/static/2227958d85bef3ecbfe974892a44ceee/745a1/stft.png 850w","sizes":"100vw"},"sources":[{"srcSet":"/static/2227958d85bef3ecbfe974892a44ceee/5d2dd/stft.webp 750w,\n/static/2227958d85bef3ecbfe974892a44ceee/cf006/stft.webp 850w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.968235294117647}}},"author":[{"id":"Soohwan Kim","bio":"Co-founder/A.I. engineer at TUNiB.","avatar":{"childImageSharp":{"gatsbyImageData":{"layout":"fullWidth","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAOCAYAAAAvxDzwAAAACXBIWXMAABYlAAAWJQFJUiTwAAADjElEQVQ4y23Oy48TdQDA8TExEaTttvSBfdHddru7bWc6bWd+8+i0u23n0SdlBRQXZGHDgiiLDwgqXjCIJEaC8cLBmHgwUU9EYzRqQuLJi/4NJB6NF+8evgbOHr7XT76SM5ix7s4QnRHnnm9yZzvBTIswN8JcP5bC67ZoWi7CdtFsn5bloZo+dSNAMYbIIqCmD6mJIVXdR3J6I7r9IQ3T59pZlW+uxzndCbPdC/HZXoq3TikowsfqBOjOmFZ7SrM9p2kfRbXn1O0jKNbsSbJ5BMnu9Gl3+qiiz4OPSvz0QRLHFGwOZH6+neLHT5YRbRerM0J0JrTas/8FZXNKzZgg2es+ZtvDdbs8+iHJl+9lWVP7OG2br26k+PvXJCfmFqoYIpwhTXtMwxpTN0coxhjFmCKbE2rGmKoYPQY9qi2fyzsq//4e5sNXi5TlLqbd5t6lPH/9kuDTG2usqgGi7dO0hzSsIXUzQDaGKGKMLEZUxZCKCJB02+PUpMH9vQwP7ybYnSxyfNrjwumA3dEiD94v8cfnK7xzWsbpujQtH9X0qBs+iuEjC5+a7lPVPSqai9SyelyYFbjkh5hqC3TkKOutLON2nkYpgtuMcT6IszdPslo8SLlcpmUH1A0XRQyQhUtNuFQ1l4o2QFI1h3OTVXbcg+grIfSVBRqlEGopgrYSRi0e4KiIse1mScSeopA/iLADmoZL3Rgg631q+oCq1qeq95FOzhQefpzn7eMpBmqcoBVj04pzwkky0eNMRYIdL8F3twusLe2nslrE6g5pGX1U8/FhD1nvUW1tUJK7SH9+n+DR1zF2vQSvH0lz88wiV45V2J1WuHqsxLXNAnuzNJdfWmK5/BylUgFhb6DZAxR9g7rpIos+Wttja2uE9M9vYb69k+DqfJErWzLOuoVqdKlpDo4jODms4zlFckuHObx4iHwuRi6fYqmYY201x/LqMrnFDNl8gRvvukhNdT9394rcOlNFMxrUhYFmW9imTEsp0mhWKC2nWSokyWSiFA7HSKcXiEb34fayyLVniUQk8rmn2drKIqlqiNcuVrh2ymQS1Nh8sc/GoMEbl7u8eb5D1yqTzkRJJsOkkiGymQVShyLE4yHWKnEq1RjpTIhmI8r2y3mkyloI38uha1n6bpVXrkw5+4LD/S/2uHnrIopaJhZ9hmQqwqHkAXJP8BDhyD46ZoWdMxOGcx/PNfECk/8AbxXdRjRliPoAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png","srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/34f77/soohwan.png 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/a94f6/soohwan.png 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7cf1f/soohwan.png 1148w","sizes":"100vw"},"sources":[{"srcSet":"/static/a9e6b445142b247ee4cfa66155398bb2/38420/soohwan.webp 750w,\n/static/a9e6b445142b247ee4cfa66155398bb2/7470d/soohwan.webp 1080w,\n/static/a9e6b445142b247ee4cfa66155398bb2/b5ef6/soohwan.webp 1148w","type":"image/webp","sizes":"100vw"}]},"width":1,"height":0.6829268292682927}}}}]},"fields":{"readingTime":{"text":"5 min read"},"layout":"","slug":"/dsp_for_audio/"}},"primaryTag":"speech"}},
    "staticQueryHashes": ["3170763342","3229353822"]}