• 홈
  • 화살표
  • 국어 배우기
  • 화살표
  • 뭉치가 알려주는 국어 말뭉치
책 그림
  •  
    뭉치가 알려주는 국어 말뭉치
  • 말뭉치가 음성 인공 지능 연구 개발에
    어떻게 활용되나요?

  • 마인즈랩 안준환 부사장

 우리가 의사소통을 할 때, 글과 문서로만 하지는 않잖아요? 일상생활에서는 음성으로 훨씬 더 많이 의사소통을 하고 있지요. 이런 음성에는 언어적인 의미 외에도 억양, 성량, 속도, 어조 등과 같은 준언어적 표현도 포함되어 있지요. 물론, 음성 외에도 표정이나 몸짓과 같은 비언어적인 표현도 많이 활용하지요. 인공 지능 기술이 발전하면서 음성 관련 연구와 프로그램 개발이 활발히 진행되고 있고 특정 분야에서는 이러한 결과물들이 실제로 활용되고 있기도 해요.

 음성 관련 인공 지능 기술을 살펴보기 전에, 요즘 많이 얘기되고 있는 인공 지능이 어떤 것인지 간단히 알아보도록 해요.

img1

 전통적으로 하나의 프로그램을 개발할 때는 처음부터 사람이 프로그램을 개발하는 목적·기능을 잘 분석해서 설계하고, 사람이 프로그램 언어로 설계한 내용을 프로그램에서 잘 돌아가게끔 구현하는 방식으로 진행되는데요, 아래 그림의 “Rule”에 해당하는 부분이 프로그램인데 이 부분을 전문가인 사람이 노력해서 만드는 것이지요.

img1 〈전통적인 프로그램 개념 1〉

 아래 그림과 같이 목적하는 기능을 잘 설계하고 이를 프로그래밍 언어를 활용해 개발하는 방식이지요. 당연히 사람이 모든 경우의 수를 예상하고 그에 따라 적절히 처리되도록 노력을 기울여야 완성도 높은 프로그램이 만들어지겠지요?

img1 〈전통적인 프로그램 개념 2〉

 그런데, 인공 지능 기술은 전혀 다른 방식으로 프로그램을 만들어요. 아래 그림에서 볼 수 있듯이 “학습(Learning)"이라는 과정을 통해 사람의 노력이 없이 오롯이 기계가 자동으로 만드는 거예요. 이렇게 만들어진 인공 지능 프로그램에 학습 데이터와 같은 자료의 입력값을 주면 출력값을 추론(학습 결과 만들어진 프로그램의 처리 과정)해서 우리가 알아볼 수 있는 결과를 내놓게 돼요.

img1 〈인공 지능 개념〉

 프로그램이라고 하는 것은 우리가 고등학교 수학 시간에 배웠던 함수와 같다고도 볼 수 있어요. 「y=f(x)」 많이 보셨던 것이지요? 저도 그랬듯이 많은 사람이 골치깨나 앓았을 거예요. 프로그램을 함수로 본다면 아래와 같은 모습인데요, 이 함수를 구성하는 인공 지능의 모습이 개념적으로 그림 아래쪽에 있는 것과 같다고 해요. 입력과 출력 사이에 여러 계층으로 이루어진 것들이 보이네요. 이런 모습이 우리의 신경을 구성하는 뉴런과 닮았고, 여러 계층이 있어서 구조가 깊다고 인공 지능을 연구하던 사람이 생각했어요. 그래서 심층 신경망(Deep Neural Network)이라고 이름을 지었지요. 그리고, 심층 신경망이 학습하는 과정을 딥 러닝(Deep Learning)이라고 해요.

img1 〈딥 러닝의 개념적 모습〉

 인공 지능이 학습을 해서 프로그램을 만드는 방식은 수많은 데이터 즉, 수많은 입력값과 출력값을 제시하고 왜 이러한 입력값에 저러한 출력값이 나왔는지를 가능한 한 모든 경우의 수를 대입해 가며 알아맞히는 과정을 반복하는 거예요. 컴퓨터가 사람보다 뛰어난 것은 빠르다는 것과 쉬지 않는다는 것이니, 이런 일을 잘할 수 있겠죠?
 여기서 학습 데이터 즉, 말뭉치의 중요성이 매우 중요해요. 잘 정제된 일관성 있는 대량의 학습 데이터로 학습을 하게 된다면 결과적으로 음성 인공 지능의 성능이 좋아진다는 것이죠. 자, 학습이라는 과정을 마치게 되면 드디어 프로그램이 만들어졌겠지요? 그렇다면, 인공 지능이 만든 이 프로그램(모델)에 입력값을 주면 출력값을 산출하게 돼요.

img1 〈인공 지능의 학습과 추론 개념〉

 그럼, 말뭉치를 활용하는 음성 인공 지능 기술은 어떤 것들이 있는지 알아볼까요?

1. 음성 인식(STT: Speech To Text)

 음성(소리)을 입력받아 결과로 그에 해당하는 문자(텍스트)를 출력하는 것이 음성 인식이에요. 음성 인식 인공 지능의 학습에는 다양한 상황의 수많은 사람의 목소리를 학습 데이터로 활용하게 돼요. 음성 인식은 인공 지능 분야에서 가장 먼저 연구되어 온 기술로 자동차, 휴대전화, 전화 상담실(콜센터) 등 이미 우리 실생활에서 많이 사용되고 있지요. 인공 지능 기술의 발전으로 성능이 향상되면서 활용 영역이 수년 전보다 많이 늘어나고 있어요.

img1 〈음성 인식 인공 지능의 입력과 출력 예시〉
img1 〈음성 인식 인공 지능 모듈 예시〉

 성능이 좋은 인공 지능을 활용해 단순, 반복되는 일을 자동화하고 대신 가장 중요한 자원인 사람은 보다 창의적이고 생산적인 일에 더 많은 시간을 할애할 수 있겠죠?

2. 음성 생성(TTS: Text To Speech)

 음성 생성은 음성 인식과 반대로 문자(텍스트)를 입력받아 음성(소리)을 출력하는 인공 지능이에요. 음성 생성 인공 지능은 특정 화자의 음성(소리)과 문자(텍스트)를 입력받아 진행하고, 결과로 만들어진 인공 지능 프로그램은 학습한 특정 화자의 목소리, 어조, 억양 등 그 화자의 특징을 그대로 유지한 음성 즉, 그 사람이 말하는 것인지 아닌지 잘 알아채기 어려운 정도의 자연스러운 음성을 생성하게 돼요.

img1 〈음성 생성 인공 지능의 입력과 출력 예시〉

3. 음성 분리

 음성 분리는 두 사람 이상의 음성을 분리해 내는 인공 지능이에요. 우리가 대화하다 보면 발화 겹침이 생기죠. 이런 경우에 겹치는 부분을 알아듣기 어려운데, 겹치는 부분을 각 발화자의 음성을 분리해 낸다면 잘 알아들을 수 있겠지요?

img1 〈음성 분리 예시〉

4. 잡음 제거

 잡음 제거는 사람의 음성 외의 소리를 지워서 사람의 음성만 추출하는 인공 지능이에요. 기찻길 옆이나 공장과 같은 시끄러운 환경에서는 소음 때문에 사람의 목소리를 알아듣기 어렵잖아요? 이럴 때, 잡음 제거 인공 지능을 활용해 사람의 목소리만 추출한다면 잘 알아들을 수 있어요.

img1 〈잡음 제거 인공 지능의 입력과 출력 예시〉

5. 화자 인식 및 화자 인증

 화자 인식은 다수의 발화자의 음성 특성을 기반으로 발화자를 구분해서 인식하는 인공 지능이에요. 회의 내용을 녹음하고 이것을 회의록으로 만든다고 가정해 보세요. 회의 내용뿐만 아니라 자동으로 화자가 누구인지 구분해서 회의 내용을 정리할 수 있다면 편리하겠지요? 화자 인증은 특정 화자의 목소리인지 알아맞히는 인공 지능이에요. 다른 사람 말은 무시하고 주인님 목소리에만 반응하는 서비스를 만들 때 유용하겠지요?

6. 음성 변조

 음성 변조는 특정인의 목소리를 다른 사람의 목소리 또는 가상의 목소리로 바꾸는 인공 지능이에요. 이런 기술은 나쁜 의도를 가지고 사람을 속이는 데 사용하면 안 되겠지요? 공상 과학 영화에서의 섬뜩한 장면이 생각나네요.

7. 음성 향상

 음성 향상은 저음질의 음성을 고음질의 음성으로 변환하는 인공 지능이에요. 옛날 유명인의 연설이나 노래를 고음질로 들을 수 있다면 느낌이 새로울 것 같아요.

img1

 이 외에도 대화 맥락을 이해하고 자연스러운 대화를 하거나 질문에 답하는 인공 지능 등 매우 다양한 분야에서 음성을 활용한 인공 지능 연구가 매우 활발하게 진행되고 있어요. 음성뿐만 아니라 의사소통에 사용하는 여러 가지 준언어적, 비언어적 정보와 영상, 이미지 등 멀티미디어 정보를 동시에 인지하는 인공 지능을 만든다면 사람만큼 사람다운 인공 지능도 만들 수 있겠지요?

 위와 같은 것들이 어떻게 가능할까요? 인공 지능은 인식해야 하는 대상을 벡터로 변환한다고 해요. 간단히 말해서 음성과 같이 인식해야 하는 대상을 여러 개의 숫자로 변환하는 거예요. 이렇게 숫자로 변환하면 계산할 수 있어요. 컴퓨터가 사람보다 나은 것이 뭐라고 했지요? 매우 빠르다는 것과 쉬지 않는다는 거죠!

 인공 지능이 학습하기 위해서는 많은 분량의 데이터가 필요해요. 그래서 말뭉치의 중요성이 지금과 같은 인공 지능 시대에 더 커지고 있지요.

 십 년 전보다 우리는 인공 지능을 일상생활에서 더 많이 접하고 있고, 십 년 후에는 우리의 일상에 인공 지능이 없다면 살기 어려울지도 몰라요. 인공 지능이 어렵지만, 이 글을 읽으신 분들은 위에 얘기한 기본적인 개념 정도만 알아 두시면 좋을 것 같아요!