엔트리와 함께하는 인공지능 교실 > Chapter 7. 음성 분류 인공지능 모델(2)

[Session 01] 어디로 갈까요?

 어디로 갈까요?

사람의 말을 따라 행동하는 로봇이 나오는 영화를 본 적이 있나요? 예전에는 먼 미래의 이야기처럼 들렸지만 가까운 미래에 볼 수 있을지도 모른다. 하지만 지금도 실제로 움직이는 로봇이 아니어도 모니터 상에서는 캐릭터를 사람이 말하는 대로 움직이도록 프로그래밍할 수 있다. 이번 세션에서는 걸어가고 있는 엔트리봇을 사람이 말로 하는 지시에 따라 방향을 바꾸어 걸어가게 한다. 사람의 말을 인식하는 것은 엔트리 프로그램에서 제공하는 기능으로 별도의 학습을 필요로 하지 않는다.


학습 목표 

소리 즉, 오디오 감지를 위한 인공지능 블록 블러오기 기능을 사용하여 사람의 말을 인식하는 프로젝트를 구현할 수 있다.

학습 준비물

•음성 녹음이 가능한 PC 또는 노트북

데이터 수집 아이디어

•음성 분류를 위한 오디오 감지 명령은 엔트리 프로그램에서 미리 학습된 명령으로 별도의 데이터를 수집하고 학습 시키는 절차는 필요 없다.



 1-1 음성 분류

사람의 말을 인식하기 위해서는 다양한 사람들의 말을 수집하고 이를 컴퓨터에게 학습시킬 필요가 있다. 사람의 말을 인식하는 것은 반드시 필요한 기능이며, 다양한 곳에서 사용할 수 있지만 이를 위하여 다양한 사람의 말을 수집하고 학습시키는 일은 매우 힘든 일이다. 다행히 엔트리를 비롯한 최근의 교육용 프로그래밍 도구에서는 미리 학습시킨 인공지능 블록을 제공한다. 즉, 사람의 말을 인식하기 위해서 별도로 사람의 말에 대한 데이터를 수집하고, 학습시킬 필요가 없으며 프로그래밍 도구에서 제공하는 명령을 사용하면 된다. 엔트리 프로그램에서 음성 인식 기능을 구현하기 위해서는 다음과 같은 절차에 따라 진행하면 된다.

1) 엔트리 프로그램에서를 클릭하여 오른쪽과 같이 “오디오 감지”를 선택한다. 단, AI 활용 블록은 인터넷이 연결되어 있어야 하므로 인터넷 연결 상태를 확인한다.


 


2)  “오디오 감지”를 선택하면 오른쪽과 같은 블록 명령을 사용할 수 있다.

 


3) ‘음성 인식하기’ 명령을 사용하면 음성을 인식한 결과가 오른쪽과 같은 블록에 텍스트로 저장된다.

 


4) 음성 인식 명령을 사용하기 위해서는 컴퓨터에 마이크가 연결되어 있어야 하는데 마이크가 연결되어 있는지의 판단과 마이크의 소리 크기를 알 수 있는 블록 명령은 오른쪽과 같다.

 



 1-2 엔트리 코딩하기

앞에서 언급한 바와 같이 사람의 말을 인식하는 명령은 미리 학습된 명령 블록을 사용하면 된다. 즉, 인공지능 명령을 사용하기 위하여 데이터를 수집하고 학습할 필요가 없다.

“어디로 갈까요?” 프로젝트를 엔트리로 구현하는 절차는 다음과 같다.

 

1) 배경으로 “공원(3)”을 선택하고, 사용하지 않을 “엔트리봇” 오브젝트는 삭제한다.


2) 엔트리봇으로 분류된 오브젝트 모음에서 “(3)엔트리봇”, “[묶음] 걷기 앞 모습”, “[묶음] 걷기 뒷모습”, “[묶음] 걷기 옆모습”과 “다양한 표정 엔트리 봇”을 찾아 추가한다.


 

3) 신호로 “앞으로”, “뒤로”, “왼쪽으로”, “오른쪽으로” 및 “중지”를 추가한다.


4) “(3)엔트리봇” 오브젝트는 프로젝트가 시작되면, 즉, 시작하기 버튼을 클릭했을 때 서 있는 엔트리봇이 보이며 어느쪽으로 갈지 말해달라고 안내하고, 사용자가 음성으로 명령하는 것을 기다린다. 이때, 안내하는 경우에는 모습을 보이고 다른 모습이 보이기 전에 보이지 않도록 한다.


 

 

5) 다음에는 음성으로 명령하면 엔트리 프로그램은 음성을 인식하여 그 명령에 따라 엔트리봇이 방향을 전환하여 걸어가게 한다. 단, 엔트리봇을 기준으로 명령을 수행하므로 엔트리봇이 앞을 보고 있는 상태에서는 “오른쪽으로”라는 명령에 대해서 엔트리봇은 화면 상에서 왼쪽으로 걸어가게 신호를 보내며, “왼쪽으로”라는 명령에 대해서는 화면 상에서 오른쪽으로 걸어 가게 신호를 보내야 한다. 또한 서 있는 엔트리봇은 안 보이도록 “모양 숨기기”를 한다.


 

6) “[묶음] 걷기 앞모습”, “[묶음] 걷기 뒷모습”, “[묶음] 걷기 옆모습” 및 “다양한 표정 엔트리봇” 등의 오브젝트들은 프로젝트가 시작되었을 때는 보이지 않고 지정한 방향으로 걸어갈 때에만 보이도록 해야 한다. 따라서, 엔트리봇의 걸어가는 오브젝트들은 시작하기 버튼을 클릭했을 때에는 모양을 숨긴다.


 

7) “[묶음] 걷기 뒷모습” 오브젝트는 “뒤로”라는 신호를 받으면 뒤로 가는 모습을 보이고, 다음 모습으로 바꾸는 동작을 반복한다.


 

8) 다음에는 어느 쪽으로 갈지 묻고 기다렸다가 명령하는 방향으로 걸어가도록 신호를 준다. 걷기 신호를 주기 전에 현재의 걷기 모습은 보이지 않도록 한다.

 

9) “[묶음] 걷기 앞모습” 오브젝트는 “앞으로”라는 신호를 받으면 앞을 보고 걸어가는 모습을 보이고, 다음 모습으로 바꾸는 동작을 반복한다.


 

10) 다음에는 어느 쪽으로 갈지 묻고 기다렸다가 명령하는 방향으로 걸어 가도록 신호를 준다. 또한, 현재의 걷기 모습은 보이지 않도록 한다.


11) “[묶음] 걷기 옆모습” 오브젝트는 “오른쪽으로” 혹은 “왼쪽으로” 신호를 받으면 해당하는 방향으로 걷는 모습을 보여주는데 기본적으로는 앞으로 혹은 뒤로 걷는 모습과 비슷하다. 다만, 이 오브젝트에서 왼쪽으로 혹은 오른쪽으로 걷는 모습을 모두 구현해야 하므로 신호에 따라 다르게 코딩해야 하는데, 기본 방향은 화면 상에서 오른쪽이므로 왼쪽으로 걷는 모습을 구현하려면 좌우 모양을 뒤집는다. 방향 전환은 엔트리를 기준으로 회전하도록 신호를 보내도록 한다.

 

12) “다양한 표정 엔트리봇” 오브젝트는 “중지” 명령을 받게 되면 엔트리봇은 감사하다는 말과 함께 인사를 하고 프로젝트를 끝낸다.


[정리]

이 프로그램은 음성 인식의 결과가 텍스트로 저장되며 이후의 처리는 텍스트 기반으로 처리하는 것과 유사함을 보여준다. 따라서, 텍스트 기반의 프로그램이 이미 개발되어 있다면 음성 인식을 사용한 프로그램으로의 전환은 쉽게 이루어질 수 있다. 이 프로그램의 전체 프로그램은 다음과 같다.


[전체 프로그램]




 

[과제]

음성 명령에 따라 춤을 추는 아바타 프로그램을 작성해 보세요.