음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

“스피커야~ 노래 틀어줘” (10년 전) 스피커에게 말을 겁니다. (...) 답이 없습니다.

AI 스피커가 있는 지금, 스피커에게 말을 겁니다. 대답을 해줍니다. 내 말을 알아듣는 것도 신기한데, 이제는 내 목소리와 다른 사람의 목소리를 구분할 줄도 압니다. 내 목소리에만 반응하는 AI 스피커도 있습니다. 어떻게 기계가 목소리를 구별하는 걸까요?

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

소리는 공기의 떨림, 즉 진동입니다. 소리를 음파라고 하는 것에서도 알 수 있듯, 소리는 파동의 한 종류입니다. 소리는 1초에 진동하는 횟수에 따라 음역이 결정되고(진동수), 진폭에 따라 소리의 크기가 결정됩니다. 이렇게 생각하면 소리는 매우 단순한 것 같지만, 실제 우리가 듣는 소리들은 매우 복잡한 파동입니다. 단순히 진동수와 진폭이 같다고 해서 모두 같은 ‘소리’로 들리는 것은 아닙니다.

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli
음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

출처: Pixabay

예를 들어, ‘라’ 음은 440Hz입니다. 그렇지만 바이올린의 ‘라’음과 피아노의 ‘라’음은 같은 진동수를 가지지만 다른 소리입니다. 사람의 목소리도 같은 음을 낸다 해도 전혀 다르게 느껴집니다. 이를 ‘맵시’가 다르다고 표현합니다. 맵시의 다름이 목소리나 악기의 소리를 구분 짓는 단서가 됩니다.

파동의 중요한 성질 중 하나는 중첩이 가능하다는 것입니다. 즉, 여러 파동이 모여 새로운 파동을 만들어냅니다. 자연에서 볼 수 있는 복잡한 형태의 파동들은 이런 중첩된 파동들입니다. 즉, 맵시는 이렇게 서로 파동들이 중첩되어서 일정한 주기를 가지게 된 파형을 말하는데요. 이 파동을 표현하기 위해서는 ‘수학’이 필요합니다.

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

복잡한 파동은 서로 다른 주기(진동수)를 가진 ‘삼각함수’의 합으로 표현할 수 있습니다. 이런 표현 방법을 푸리에 급수라 합니다. 가장 단순한 파동을 떠올리면 누구나 사인함수를 떠올리는 것처럼, 복잡한 파동도 이런 사인함수나 코사인함수와 같은 단순한 삼각함수들로 이루어져 있습니다.

마찬가지로, 목소리도 각기 다른 진동수를 가진 삼각함수들의 합입니다. 이미 합쳐진 파동을 다시 쪼갤 수도 있는데요. 이때 ‘수학적인 필터’를 사용합니다. (조금 더 구체적으로는 원하는 진동수를 가진 삼각함수의 그래프만 남겨놓고 다른 진동수를 가진 삼각함수는 0으로 만들어 주는 방법입니다. 삼각함수의 직교성을 이용하는데, 목소리를 나타내는 함수에 원하는 진동수를 가진 파동을 곱하여 한 주기에 대해 ‘적분’을 해주면 다른 모든 함수는 직교성에 의해 0이 되고 자신이 원하는 삼각함수의 계수(진폭)만 찾아낼 수 있습니다.)

이렇게 수학적 필터를 이용하면, 복잡한 파동 뒤에 ‘숨은’ 파동의 관계를 진폭과 진동수의 그래프(스펙트럼)로 표현할 수 있습니다. 이를 푸리에 변환이라 합니다.

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

출처 : 위키피디아

문제는 사람도, 컴퓨터도, 모든 진동수를 다 파악할 수는 없다는 것입니다. 그렇기 때문에 가장 중요한 ‘파동’부터 찾아야 합니다. 중요한 파동이란, 원래 파동의 특성을 가장 잘 드러내는 파동으로, ‘파동의 진폭(계수)’이 클수록 원래 파동의 전체적인 특징을 잘 드러냅니다.

이렇게 진동수 중에서 파동의 특성을 잘 드러내는 진동수들의 계수를 불연속적으로 추려내는 푸리에 변환을 DFT(Discrete Fourier Transformation, 불연속 푸리에 변환)라 합니다. 컴퓨터는 이런 불연속 푸리에 변환을 더 효율적으로 수행하기 위해 FFT(Fast Fourier Transform, 쾌속 푸리에 변환)라는 특별한 알고리즘을 이용합니다.

이런 알고리즘을 통해 목소리의 ‘스펙트럼’을 그릴 수 있습니다. 스펙트럼은 진동수에 따라 각 파동이 목소리에서 얼마나 중요한지(진폭)를 나타내는 그래프입니다. 앞서 얘기한, 바이올린과 피아노의 ‘라’음은 둘 다 스펙트럼에서 440Hz를 갖지만, 그 440Hz 주변의 스펙트럼의 모양이 다르기 때문에, 다른 맵시가 느껴지게 되는 것입니다. 스펙트럼은 파동의 성분분석표라고 할 수 있습니다. 보이지 않는 소리의 다름을, 우리는 스펙트럼이 보여주는 차이를 이용해서 ‘다르다’고 확실히 알 수 있습니다.

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli
음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

출처: 위키피디아

한편 사람의 귀는 고막과 달팽이관 그리고 청신경으로 이루어져 있습니다. 고막은 달팽이관의 입구에 있어서 진동판, 즉 마이크의 역할을 합니다.

달팽이관의 벽면을 따라 청신경이 연결되어 있고, 구조적으로 안쪽으로 갈수록 점점 폭이 좁아지는 형태를 가지고 있습니다. 이렇게 관의 폭이 좁아질수록 높은 진동수의 파동을 감지합니다. 바로 스펙트럼을 만들어내는 것입니다. 우리의 뇌는 그 미세한 ‘다름’을 인식합니다. 그렇게 구별된 파동의 특성을 뇌에서는 우리가 알고 있는 언어와 일치시켜 의미를 이끌어 내기도 하고, 사람의 목소리를 구분하기도 하는 것입니다.

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli
음성인식 수학적 원리 - eumseong-insig suhagjeog wonli

출처: 위키피디아

목소리의 스펙트럼은 사람마다 다른 모양을 가집니다. 듣는 지문이라는 이야기가 있을 정도입니다. 이런 정보들을 조합하면, 범죄 수사 드라마나 영화에서 볼 수 있듯이 전화상의 목소리를 이용하여 범인의 전체적인 인상과 특성을 보여줄 수도 있습니다.

각자 다른 목소리를 인식하는 AI 스피커는 소리의 스펙트럼과 언어를 연결시켜 머신 러닝을 통해 학습시킨 것입니다. 자연의 오묘함과 이를 설명하는 수학의 탁월함 덕분에, 오늘도 우리는 AI 스피커에게 마음껏 말을 걸 수 있게 됐습니다. 언젠간 AI 스피커에게 “넌 내 목소리를 어떻게 구분하니?”라고 물으면 스피커가 푸리에를 설명해주는 날이 오게 될지도 모릅니다.

음성인식 수학적 원리 - eumseong-insig suhagjeog wonli