인공지능 기초

음성 인식과 언어 이해

「헤이, 스마트폰! 오늘 날씨 어때?」
기계가 목소리를 글자로 옮기는 일과 그 글의 뜻을 다루는 일이 어떻게 다른지를 따라가 봅니다.

학습 목표

  1. 음성 인식과 언어 이해가 무엇인지, 둘이 어떻게 다른지 설명할 수 있다.
  2. 순환 신경망이 순차적인 데이터를 다루는 방식을 설명할 수 있다.
  3. 딥러닝(순환 신경망)이 음성 인식과 자연어 처리 문제를 해결하는 활용 사례를 탐색할 수 있다.
  4. 언어 모델이 답을 만들어 내는 방식과 그 한계를 설명할 수 있다.

소리를 글자로 (음성 인식)

사람의 목소리는 어떤 과정을 거쳐 글자가 될까?

우리의 아날로그 목소리가 컴퓨터에게 인식되기까지

인공지능 스피커에게 말을 걸면 가장 먼저 일어나는 일은 우리의 목소리(아날로그 소리)를 컴퓨터가 읽을 수 있는 글자(텍스트)로 바꾸는 것입니다. 이를 음성 인식(Speech Recognition)이라고 합니다. 마치 컴퓨터가 「받아쓰기」를 하는 것과 같습니다.

목소리는 언제 숫자가 될까?

목소리는 공기의 떨림이라 끊어짐 없이 이어지는 아날로그 신호입니다. 마이크 센서가 이것을 전기 신호로 바꾸고, A/D 변환(아날로그 신호를 디지털 숫자로 바꾸는 일)의 샘플링 → 양자화 → 부호화를 거치면 시간 순서대로 늘어선 숫자들이 됩니다.

사진이 격자 위의 숫자라면, 목소리는 한 줄로 이어지는 숫자입니다. 같은 딥러닝이라도 데이터의 생김새가 다르면 다루는 구조도 달라집니다. 그 구조는 「순환 신경망」 절에서 살펴봅니다.

더 알아보기: 음성 인식의 3단계 (참고 자료)
1

소리 듣기

마이크 센서를 통해 공기의 떨림인 소리를 전기 신호로 바꿉니다.

2

음소 쪼개기

소리를 가장 작은 단위인 「자음」과 「모음」(음소)으로 잘게 쪼개어 분석합니다.

3

텍스트 변환

분석한 소리의 패턴을 사전에 등록된 단어들과 비교하여 글자로 출력합니다.

소리(아날로그) → 마이크 센서 → 전기 신호 → A/D 변환 → 디지털 데이터 → 음소 분석 → 텍스트(글자)

스스로 확인

목소리가 숫자로 바뀌기까지 어떤 단계를 거치나요? 그리고 그 숫자는 사진의 숫자와 어떻게 다른 모양으로 늘어서 있나요?

순환 신경망 — 앞을 기억하며 읽는다

순서가 있는 데이터는 왜 따로 다뤄야 할까?

소리와 글을 다루는 신경망의 구조

목소리도 글도 순차 데이터(sequential data)입니다. 앞뒤 순서가 바뀌면 뜻이 달라지는 데이터를 가리킵니다. 「나는 밥을 먹었다」와 「밥은 나를 먹었다」는 「나」와 「밥」의 자리만 맞바꾸었는데 뜻이 완전히 달라집니다.

그런데 기본 인공신경망은 입력을 한 번에 통째로 받아 답을 내놓습니다. 말은 길이도 제각각이고, 지금 들리는 소리가 무슨 글자인지는 앞에서 무슨 소리가 났는지에 달려 있습니다. 그래서 나온 구조가 순환 신경망(RNN, Recurrent Neural Network)입니다.

순환 신경망은 데이터를 앞에서부터 한 조각씩 받습니다. 그리고 조각 하나를 처리할 때마다 지금까지 읽은 내용을 요약한 값을 만들어 다음 조각을 처리할 때 함께 넣어 줍니다. 이 요약값이 되돌아 들어오기 때문에 「순환」이라는 이름이 붙었습니다.

같은 상자가 시간 순서로 반복됩니다 글자 1 글자 2 글자 3 순환층 순환층 순환층 요약 요약 소리 조각 1 소리 조각 2 소리 조각 3

그림을 읽는 법

상자가 세 개 그려져 있지만 서로 다른 세 개의 층이 아닙니다. 같은 상자를 시간 순서대로 이어 그린 것이고, 안에 든 가중치도 셋이 똑같습니다. 달라지는 것은 들어오는 조각과 앞에서 넘어온 요약값뿐입니다.

그래서 세 번째 조각을 처리할 때는 첫 번째·두 번째 조각의 흔적이 요약값에 담겨 함께 들어옵니다. 같은 「ㅅ」 소리라도 앞에 무엇이 있었느냐에 따라 다른 글자로 적히는 이유가 여기에 있습니다.

이 구조에도 약점이 있습니다

요약값은 조각을 하나 지날 때마다 다시 계산되어 덮어 쓰입니다. 그래서 문장이 길어지면 맨 앞의 내용이 흐려져, 한참 앞에서 나온 말과 지금 말을 이어 붙이기 어려워집니다. 층이 깊을 때 생기는 기울기 소실(거슬러 오는 신호가 점점 작아져 앞쪽이 거의 고쳐지지 않는 일)이 여기서도 발목을 잡습니다. 문장이 길면 거슬러 올라가야 할 조각이 그만큼 많아지기 때문입니다.

그래서 오래된 정보를 더 잘 붙드는 구조들이 뒤이어 나왔고, 요즘 번역기나 대화형 인공지능은 문장 전체를 한꺼번에 놓고 어느 낱말끼리 관련이 깊은지 계산하는 방식을 주로 씁니다. 그 방식들의 이름까지 외울 필요는 없습니다. 다만 「순서를 다루는 방법이 순환 신경망 하나뿐인 것은 아니다」라는 점만 기억해 둡시다.

스스로 확인

순환 신경망이 다음 조각으로 넘겨주는 것은 무엇인가요? 그리고 문장이 길어지면 왜 앞부분이 흐려질까요?

딥러닝은 음성 인식을 어디에 활용할까?

단순한 받아쓰기를 넘어, 감정까지 읽어내는 오늘날의 음성 인식

오늘날의 음성 인식은 단순히 음성을 알아듣고 텍스트로 바꾸는 것을 넘어, 음성에 포함된 감정을 인식하고 화자의 음성을 학습해 재생성할 수 있는 수준으로 발전하였습니다.

음성 비서 및 가상 어시스턴트

사용자의 음성 명령을 이해하고, 문자 메시지를 보내거나 검색 결과를 알려 주는 등의 작업을 수행합니다.

음성 감정 분석

목소리의 톤·속도·크기·사용 단어 등을 분석하여 화자의 감정을 인식합니다. 공감 마케팅 등에 활용됩니다.

음성 재생성 및 합성

특정 화자의 음성을 학습해 다른 문장을 읽는 목소리를 만듭니다. 언어 장애인을 위한 목소리 생성, 영화 더빙 등에 쓰입니다.

스스로 확인

전화 상담 센터의 음성 인식 모델이 고객의 말을 글로 옮기면서 목소리의 크기와 속도도 함께 분석합니다. 이 모델은 받아쓰기 말고 무엇을 더 알아내려는 것이고, 그 판단이 틀리면 어떤 문제가 생길까요?

글자의 진짜 뜻 파악하기 (언어 이해)

글자로 옮겼다고 해서 그 뜻까지 아는 것일까?

텍스트로 바뀐 문장의 단어 관계와 사람의 진짜 의도를 파악하는 과정

받아쓰기를 완벽하게 했다고 해서 컴퓨터가 그 말의 「뜻」을 안다는 것은 아닙니다. 텍스트로 바뀐 문장을 분석하고 단어들의 관계와 사람의 진짜 의도를 파악하는 과정을 언어 이해(Language Understanding)라고 합니다. 그리고 사람이 쓰는 말과 글을 컴퓨터가 계산으로 다룰 수 있는 형태로 바꾸어 번역·요약·분류 같은 일에 쓰는 기술 분야 전체를 자연어 처리(NLP, Natural Language Processing)라고 부릅니다. 언어 이해는 그 안에 들어 있는 한 갈래입니다.

「이해한다」는 말을 조심해서 씁시다

「알아본다」는 것과 「뜻을 이해한다」는 것은 다릅니다. 여기서 말하는 「언어 이해」도 사람이 말뜻을 알아듣는 것과 같은 일이 아니라, 수많은 문장에서 함께 쓰이던 낱말의 관계를 계산해 가장 그럴듯한 해석을 고르는 일입니다. 관습적으로 「이해」라는 낱말을 쓸 뿐입니다.

더 알아보기: 구문 → 개체명 → 의도 분석 3단계 (참고 자료)

1. 구문 분석 (Syntax Analysis)

문장을 뜻을 가진 가장 작은 단위(형태소)로 쪼개고, 누가 무엇을 했는지 단어 간의 문법적 관계를 분석합니다.

오늘 뉴스에서 기온이 35도가 넘는다고 해.

➔ [오늘/명사] [뉴스/명사] [에서/조사] [기온/명사] [이/조사] [35도/숫자+명사] ...

2. 개체명 분석 (Entities Analysis)

문장 속에서 「사람」, 「조직」, 「시간」, 「장소」 등을 나타내는 중요한 낱말(사람 이름 같은 고유명사, 날짜 등)에 꼬리표(태그)를 붙입니다.

「학생 A는 2024년에 학교 방송부에 들어갔다.」

학생 A ➔ [사람/Person] 2024년 ➔ [시간/Time] 학교 방송부 ➔ [조직/Organization]

3. 의도 분석 (Intent Analysis)

최종적으로 사용자가 이 말을 왜 했는지 진짜 목적을 찾아냅니다.

「방이 너무 덥네」
에어컨을 켜 달라는 의도로 파악 ➔ 에어컨 켜기
스스로 확인

인공지능 스피커가 「창문 좀 열어 줄 수 있어?」를 글자 하나 틀리지 않고 받아썼습니다. 이 말이 열 수 있는지를 묻는 질문이 아니라 부탁이라는 것은 받아쓰기만으로 알 수 있을까요? 어느 단계가 그 일을 맡나요?

딥러닝은 자연어 처리를 어디에 활용할까?

번역부터 챗봇까지, 언어의 숨은 의미를 이해하는 딥러닝

딥러닝을 쓰기 전의 자연어 처리는 주로 사람이 만든 사전과 문법 규칙, 낱말 수를 세는 단순한 통계에 기대었습니다. 지금은 엄청난 양의 글에서 낱말이 함께 쓰이던 방식을 학습하기 때문에, 문장에 배어 있는 감정이나 관용 표현, 직접 적히지 않은 뜻까지 상당 부분 파악합니다. 그 덕분에 기계 번역과 질의응답의 성능이 크게 올랐습니다. 다만 「상당 부분」이지 전부는 아닙니다. 학습한 글에 드물게 나오던 표현이나 새로 생긴 말에서는 여전히 어긋납니다.

기계 번역의 발달

초기의 기계 번역은 사람이 정해 둔 어법 규칙에 따라 번역했지만, 딥러닝 번역은 원문과 번역문을 짝지어 둔 수많은 문장에서 낱말과 어순이 어떻게 대응하는지를 학습해 번역합니다.

문서 분류 및 감정 분석

텍스트 문서를 주제나 감정(긍정·부정·중립) 등의 관점에서 분류합니다. 뉴스 기사 분류나 소셜 미디어 감정 분석에 활용됩니다.

자연어 생성과 챗봇

질문을 받아 문장을 새로 지어 답합니다. 은행이나 쇼핑몰의 상담 챗봇, 자동 요약, 글쓰기 도우미 등에 쓰입니다. 이런 모델이 답을 어떻게 만들어 내는지는 「언어 모델은 어떻게 답을 지어낼까?」 절에서 봅니다.

스스로 확인

「이 영화 정말 대단하네, 두 시간 내내 잤어.」라는 후기를 감정 분석 모델이 「긍정」으로 분류했습니다. 모델은 무엇을 놓쳤고, 왜 이런 일이 생길 수 있을까요?

언어 모델은 어떻게 답을 지어낼까?

술술 대답한다고 해서 아는 것일까?

대규모 언어 모델의 원리와 반드시 알아야 할 한계

우리가 쓰는 대화형 인공지능의 바탕에는 대규모 언어 모델(LLM, Large Language Model)이 있습니다. 엄청난 양의 글을 학습한 신경망인데, 학습으로 익힌 일은 뜻밖에도 단순합니다. 지금까지의 글 다음에 어떤 낱말이 올 법한지를 확률로 매기는 것입니다. 대화에 알맞게 답하도록 조정하는 학습을 더 거치기도 하지만, 답을 만드는 바탕은 이 일입니다.

그렇게 낱말 하나를 고르면, 고른 낱말을 문장 뒤에 붙이고 다시 그다음 낱말의 확률을 매깁니다. 이것을 반복하면 긴 답변 한 편이 만들어집니다. 그림의 확률은 수업에서 원리를 확인하려고 지어낸 값입니다.

「오늘 점심에 김밥을 ____」 다음에 올 낱말은? 먹었다 0.62 샀다 0.18 만들었다 0.09 던졌다 0.01 확률이 높은 낱말을 골라 붙이고, 같은 일을 처음부터 다시 합니다

모델이 고르는 기준

모델이 고르는 기준은 「참인가」가 아니라 「그럴듯한가」입니다. 학습할 때 맞혀야 했던 것은 사실 여부가 아니라 다음 낱말이었기 때문입니다. 사실을 확인하는 장치가 따로 붙어 있지 않으면, 모델은 사실인지 아닌지를 확인할 수단 자체가 없습니다.

그럴듯한 거짓을 자신 있게 말한다

그래서 언어 모델은 있지도 않은 책 제목, 실제와 다른 연도, 존재하지 않는 법 조항을 아주 매끄러운 문장으로 만들어 내놓곤 합니다. 이런 현상을 환각 (hallucination)이라고 부릅니다.

왜 더 위험한가

틀린 답도 맞는 답과 똑같이 매끄럽게 나옵니다. 모델은 사실인지를 검토해 확신의 정도를 정하는 것이 아니라 가장 그럴듯한 문장을 만들도록 만들어졌기 때문입니다. 말투가 확신에 차 있다는 것이 맞다는 근거가 되지 못합니다.

그래서 우리가 할 일

  • 숫자·날짜·이름·출처는 반드시 원래 자료에서 다시 확인합니다.
  • 「어디서 나온 이야기인지 알려 달라」고 물어 확인할 수 있는 형태로 받아 둡니다.
  • 과제나 발표에 쓸 때는 어디를 인공지능의 도움으로 썼는지 밝힙니다.

그렇다고 쓸모없다는 뜻은 아닙니다

글을 정리하거나, 여러 문단을 요약하거나, 생각을 넓힐 실마리를 얻는 일처럼 사실 여부를 내가 곧바로 판단할 수 있는 작업에서는 큰 도움이 됩니다. 위험해지는 것은 내가 확인할 수 없는 사실을 대신 알아봐 달라고 맡길 때입니다.

스스로 확인

대화형 인공지능에게 어떤 발명품이 처음 만들어진 해를 물었더니, 매끄러운 문장으로 연도와 참고한 책 이름까지 알려 주었습니다. 이 답을 과제에 옮기기 전에 무엇을 해야 하고, 왜 그런가요?

헷갈리기 쉬운 점

음성 인식과 언어 이해를 같은 것으로 생각하고 있지는 않았을까?

자주 잘못 이해하는 개념들을 바로잡아 봅시다.

오해 1

「컴퓨터는 우리가 쓴 글자 그대로 소리를 듣는다?」

아닙니다. 우리는 글을 쓸 때와 실제 소리 내어 읽을 때 발음이 다른 경우가 많습니다.

표기 (글자) 비빔밥
발음 (컴퓨터가 듣는 소리) [비빔빱]

그래서 인공지능은 [비빔빱]으로 들린 소리를 「비빔밥」이라는 올바른 표기로 이어 주는 법을 학습해야 합니다.

오해 2

「문법만 완벽하면 뜻을 100% 이해한다?」

문법(구문 분석)이 맞아도 뜻이 헷갈리는 경우가 매우 많습니다. 앞뒤 문맥(상황)을 파악하는 것이 인공지능에게 가장 어려운 숙제 중 하나입니다.

「배가 아프다.」

  • 1. 몸의 위장(stomach)이 아픈 걸까?
  • 2. 남이 잘돼서 질투가 난다는 관용 표현일까?

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1 사람의 아날로그 목소리를 센서로 듣고, 이를 분석하여 컴퓨터가 읽을 수 있는 「텍스트(글자)」로 변환하는 기술은 무엇인가요?

Q2 문장 안에서 특정한 이름을 가진 단어(예: 사람 이름, 기관 이름, 시간 등)를 찾아내어 어떤 유형인지 분류하는 분석 과정은 무엇인가요?

「학생 A(사람)는 2024년(시간)에 학교 방송부(조직)에 들어갔다.」

Q3 사용자가 인공지능 스피커에게 「방이 너무 더워」라고 말했습니다. 인공지능이 이를 듣고 「에어컨을 켜달라는 요청」이라고 파악하여 에어컨을 켰습니다. 언어 이해의 어느 단계에 해당할까요?

Q4 순환 신경망이 조각을 하나 처리할 때마다 다음 조각에 넘겨주는 것은 무엇인가요?

Q5 대화형 인공지능이 있지도 않은 책 제목을 아주 자신 있게 알려 주었습니다. 이런 일이 생기는 까닭으로 가장 알맞은 것은 무엇일까요?

핵심 정리

음성 인식 · 자연어 처리

  • 목소리 → A/D 변환 → 순서 있는 숫자
  • 음성 인식은 받아쓰기, 언어 이해는 뜻 다루기
  • 순환 신경망은 앞의 요약값을 다음 조각에 넘김
  • 순서를 다루는 방법이 순환 신경망 하나뿐인 것은 아님
  • 언어 이해의 「이해」는 가장 그럴듯한 해석을 고르는 계산

딥러닝 활용 사례

  • 음성 비서 · 음성 감정 분석 · 음성 합성
  • 기계 번역 · 문서 분류 및 감정 분석
  • 자연어 생성과 챗봇

헷갈리기 쉬운 점

  • 표기 ≠ 발음
  • 받아쓰기 ≠ 뜻을 아는 것
  • 매끄러운 답 ≠ 맞는 답 (환각)
  • 같은 문장도 문맥에 따라 뜻이 갈림