Play With AI > Chapter 4. 스마트홈 만들기

[이해하기] 컴퓨터 소리를 인식하는 방법 알아보기

 음성인식 인공지능 체험하기

클로바 스피치를 체험해 본 적 있나요?

클로바 스피치를 이용해 말을 하면 내가 말하는 내용을 글자로 바꿔줍니다. 여기에는 인공지능 기술 중에서도 음성인식 기술이 적용되어 있습니다. 인공지능은 소리 데이터에 있는 특징을 스스로 찾아낼 수 있는데, 음성인식은 세상의 다양한 소리 중에서도 사람의 음성을 다룹니다.

이번 주제에서는 인공지능이 소리를 인식하는 과정에 대해 배워보고 엔트리 오디오 감지 기능을 이용하여 스마트 홈 프로그램을 만들어보는 활동을 해보겠습니다. 


[인공지능 체험하기]

클로바 스피치를 직접 체험해봅시다. 클로바 스피치 체험하기 : https://clova.ai/speech


컴퓨터는 어떻게 소리를 인식할까요?

우리는 지난 시간에 컴퓨터가 이미지를 어떻게 인식하고 처리하는지 배웠습니다. 그렇다면 컴퓨터는 어떻게 소리를 인식할까요?


여기에 ‘인공지능과 함께하는 세상으로 출발!’이라고 말하는 사람의 소리 데이터가 있습니다. 우리가 일상생활 에서 접하는 소리는 모두 공기의 떨림에 의해 생깁니다. 그리고 떨림의 크기나 높낮이를 시간에 따라 나타낸 것이 소리 데이터의 모습입니다. 우리 몸의 귀는 이러한 떨림의 정도를 감지해내 무슨 소리인지 구별할 수 있습니다.

우리는 지난 시간에 컴퓨터가 데이터를 숫자로 표현하고 저장한다고 배웠습니다. 따라서 컴퓨터가 소리를 인식하기 위해서는 소리 역시 숫자 형태로 표현되어야 합니다. 소리를 어떻게 숫자로 표현할 수 있을까요? 지금부터 소리 데이터를 숫자로 바꾸는 과정을 한번 살펴보도록 하겠습니다.


1. 소리 정보의 표현 처리 단계

‘인공지능 기술의 놀라운 발전’이라고 말하는 소리 데이터의 일부분을 이용해 데이터를 숫자로 표현하는 방법을 알아봅시다. 소리 데이터는 세 가지 단계(표본화-양자화-부호화)를 거쳐 숫자의 형태로 바꿀 수 있습니다.

1-1. 표본화

첫 번째 단계는 아날로그 신호에서 일정한 시간 간격으로 잘게 쪼개 나누어 분리하는 표본화 과정입니다.


1-2. 양자화

두 번째 단계에서는 첫 번째 단계에서 쪼개어 분리한 신호 각각의 크기를 숫자로 표현하는 양자화 과정입니다.

 

1-3. 부호화

세 번째 단계는 이 숫자를 컴퓨터가 이해할 수 있는 0과 1로 바꾸어 변환하는 부호화 과정입니다.

소리 데이터를 숫자로 바꿀 때 데이터를 쪼개는 간격에 따라 소리의 정보가 달라집니다. 크기를 넓게 쪼개면 원래의 소리와 차이가 크게 나게 되어 음질이 떨어지는데 좁은 간격으로 세밀하게 쪼개면 원래의 소리와 가까운 소리를 표현할 수 있지만 대신 저장 용량이 많이 필요하게 됩니다.

 


 

2. 소리 데이터에서 특징 추출하기

소리 데이터를 숫자로 바꾼다고 해서 컴퓨터가 이 소리가 어떤 내용을 담고 있는지 인식하지는 못합니다. 그냥 컴퓨터가 알아볼 수 있는 형태로 소리를 바꾼 상태일 뿐입니다. 여기까지는 인공지능의 영역이 아닙니다. 

컴퓨터가 어떤 소리를 인식한다는 것은 그 소리를 듣고, 어떤 소리인지 구분할 수 있다는 뜻입니다. 컴퓨터가 소리를 인식하려면 소리 속에서 특징(feature)을 추출하고 그것을 분석해야 합니다.


 

우리는 대체로 목소리의 높낮이로 남자와 여자의 목소리를 구분합니다. 실제 소리 데이터를 시각적으로 나타낸 그래프를 보고 우리가 찾아낸 특징이 잘 드러나는지 확인해봅시다.

사실 소리에서 특징을 추출하는 것은 매우 어려운 일입니다. 우리는 목소리의 높낮이로 남자와 여자의 목소리를 구분 하였지만, 이것보다 더 구체적으로 어떤 사람의 목소리인지를 구분하려면 더 많고 구체적인 특징이 필요합니다. 같은 성별의 친구들을 몇 명 떠올려보세요. 그 친구들의 목소리를 구별하기 위한 특징들을 생각해보세요. 꽤 어려운 일이라는 것을 알 수 있을 거예요. 그래서 최근의 인공지능 기술(딥러닝)은 이러한 소리의 특징을 스스로 찾아내고 조합하여 분석할 수 있게 되었습니다.

이렇게 소리에서 특징을 찾아 어떤 소리인지 인식하는 것을 소리 인식이라고 합니다. 소리 인식에서는 특히 사람의 목소리를 인식하려는 노력이 많이 이루어지고 있습니다. 이렇게 사람이 발화한 소리 데이터를 특히 음성 데이터라고 합니다.

사람의 목소리를 인식하는 데에도 두 가지 분야가 있습니다. 먼저 어떤 사람이 ‘인공지능과 함께하는 세상으로 출발!’이라고 말한 음성 데이터가 있다고 생각해봅시다. 음성 데이터로는 음성인식과 화자 인식을 할 수 있습니다. 먼저 음성인식이란 ‘누가’ 말했는지에 관한 내용은 생략하고, ‘어떤’ 말을 했는지 내용을 글자로 반환하는 것을 의미합니다. 그리고 여기에 ‘자연어 처리’ 기술을 결합하면 이 글자가 어떤 의미를 지니는지도 인식할 수 있게 됩니다. 자연어 처리는 인공지능이 그 말이 어떤 뜻인지 혹은 어떤 의도인지를 사람처럼 이해하는 것을 의미합니다. 화자 인식은 ‘인공지능과 함께하는 세상으로 출발!’이라고 말한 소리 데이터에서 말한 사람의 목소리의 특징을 추출하여 ‘누가’ 말했는지 인식하는 것을 의미합니다. 


우리가 체험해본 네이버 클로바 스피치는 소리 데이터에서 말의 내용 특징을 추출합니다.


 

Q. 이 인공지능은 소리 데이터에서 어떤 특징을 추출할까요?

학습한 내용을 정리해봅시다.

Q. 컴퓨터는 소리를 어떻게 감지할까요?

소리를 ( _________ ), ( _________ )의 숫자 형태로 처리한 뒤, 데이터에서 ( _________ )을 추출하여 어떤 소리인지 감지합니다.

Q. 음성 데이터에서 ‘누가’ 말했는지에 관한 내용은 생략하고, ‘어떤’ 말을 했는지 내용을 글자로 반환하는 것을 ( _________ )이라고 합니다.