[Session 02] 무엇을 할까요?
무엇을 할까요?
사람들은 같은 의미라도 다양한 말로 사용한다. 즉, 앞으로 가도록 하는 명령을 어떤 경우에는 “앞으로”라고 하지만 어떤 경우에는 “전진”이라고 할 수도 있다. 이와 같이 다양하게 바뀌는 명령을 이해하기 위해서 인공지능의 능력을 사용할 수 있다. 음성 분류의 결과는 텍스트로 변환되므로 텍스트의 인공지능 모델 학습하기 기능을 사용하면 다양한 형태의 음성 명령에 대처할 수 있다. 이번 세션에서는 엔트리봇에게 음성으로 동작을 명령하는데 텍스트의 인공지능 학습 기능과 결합하여 다양한 형태의 명령을 적절하게 수행하도록 한다. 앞의 예와 같이 음성 분류를 위한 별도의 데이터 수집 및 학습은 필요하지 않지만 다양한 형태의 텍스트 명령에 대처하기 위한 데이터 수집 및 학습은 필요하다.
학습 목표
•음성 분류의 결과는 텍스트로 인식되며, 이는 텍스트 분류 기술을 적용할 수 있음을 이해할 수 있다.
학습 준비물
•음성 녹음이 가능한 PC 또는 노트북
데이터 수집 아이디어
![]()
2-1 인공지능 데이터 수집
다양한 명령에 대처하기 위해서는 클래스에 해당하는 텍스트 데이터가 많을수록 좋다. 따라서 동작과 관련된 다양한 명령들을 데이터로 입력한다.
|
1) 엔트리 프로그램에서 |
|
2) 「분류:텍스트」 모델 학습하기 화면에서 모델 학습 이름을 오른쪽과 같이 “엔트리봇 동작”으로 설정한다. |
2-2 데이터 분류 및 테스트
1) 데이터 입력을 위해서 분류 범주인 키워드를 입력하고 오른쪽과 같이 동작과 관련된 텍스트를 입력한다. 먼저, “헤롱” 클래스를 생성하고 관련된 텍스트 데이터를 입력한다. |
|
2) 다음으로 “펀치” 클래스를 추가하고 관련된 텍스트 데이터를 입력한다. |
|
3) 나머지 “바람 일으키기”, “점프” 및 “팔 휘젓기” 클래스에 대한 텍스트 데이터를 입력한다. |
|
|
|
|
|
4) 클래스 별로 텍스트 데이터를 각각 5개 이상 입력하였으면 학습 단계에서 모델 학습하기 버튼을 클릭하여 인공지능 텍스트 분류가 가능하도록 학습 모델을 제작한다. |
|
5) 만들어진 모델의 학습 결과를 확인하기 위해서 다음과 같이 실제 텍스트 데이터를 입력하여 테스트한다. 테스트 결과는 분류된 클랙스별 정확도를 퍼센트 형태로 표시해준다. |
|
2-3 엔트리 코딩
사람의 말을 인식하는 명령은 미리 학습된 명령 블록을 사용할 수 있으나 다양한 명령에 대처하기 위해서는 음성 인식의 결과에 해당하는 텍스트에 대해서 기계 학습을 진행할 필요가 있다. “무엇을 할까요?” 프로젝트 를 엔트리로 구현하는 절차는 다음과 같다.
|
1) “엔트리봇” 오브젝트를 삭제한다. 엔트리봇으로 분류된 오브젝트 모음에서 “(3)엔트리봇”, “[묶음] 헤롱 앞모습”, “[묶음] 펀치 옆모습”, “[묶음] 팔 휘젓기 앞모습”, “점프 앞모습” 및 “[묶음] 바람 일으키기 앞모습”을 찾아 추가한다. |
|
2) 신호로 “바람 일으키기!”, “점프!”, “팔 휘젓기!”, “펀치!” 및 “헤롱!” 을 추가한다. |
3) “(3)엔트리봇” 오브젝트는 프로젝트가 시작되면, 즉, 시작하기 버튼을 클릭했을 때 서 있는 엔트리봇이 “무엇을 할까요?”라고 음성으로 안내하며, 사용자가 음성으로 명령하는 것을 기다린다. 음성으로 명령하면 엔트리 프로그램은 음성을 인식하여 텍스트 형태로 결과를 저장한다. 그리고, 명령에 따라 관련된 동작을 수행한다. 이때 음성 명령이 동작과 관련되어 있는지를 텍스트 분류에 따라 수행한다. 즉, 분류 결과가 “헤롱”이면 엔트리봇이 “헤롱” 동작을 수행하도록 신호를 보낸다. 마찬가지로 분류 결과에 따라 “펀치”, “팔 휘젓기”, “점프” 및 “바람 일으키기” 동작을 하도록 신호를 보낸다. 엔트리봇이 관련 동작을 한 후에는 다시 서 있는 모습이 되어 명령을 기다리는 것을 반복한다.
|
4) “[묶음] 헤롱 앞모습”, “[묶음] 펀치 옆모습”, “[묶음] 팔 휘젓기 앞모습”, “[묶음] 점프 앞모습” 및 “[묶음] 바람 일으키기 앞모습” 등의 오브젝트들은 프로젝트가 시작되었을 때는 보이지 않고 지정한 동작을 하는 때에만 보이도록 해야 한다. 따라서, 엔트리봇이 다양한 동작을 하는 오브젝트들은 시작하기 버튼을 클릭했을 때에는 모양을 숨긴다. |
|
5) “[묶음] 헤롱 앞모습”, “[묶음] 펀치 옆모습”, “[묶음] 팔 휘젓기 앞모습”, “[묶음] 점프 앞모습” 및 “[묶음] 바람 일으키기 앞모습” 등의 오브젝트들은 해당하는 신호를 받았을 때 모양을 보이고, 모양의 개수만큼 모양 바꾸기를 반복한다. 다음에는 모양을 숨긴다. 예를 들어, “[묶음]헤롱 앞모습” 오브젝트인 경우의 코드는 다음과 같다. |
6) “[묶음] 펀치 옆모습”, “[묶음] 팔 휘젓기 앞모습”, “[묶음] 점프 앞모습” 및 “[묶음] 바람 일으키기 앞모습” 오브젝트인 경우에 「헤롱! 신호를 받았을 때」에 해당하는 블록은 각각 「펀치! 신호를 받았을 때」, 「팔 휘젓기! 신호를 받았을 때」, 「점프! 신호를 받았을 때」 및 「바람 일으키기! 신호를 받았을 때」로 대체한다. 또한, 「헤롱 앞모습_1」에 해당하는 블록은 「펀치 옆모습_1」, 「팔 휘젓기 앞모습_1」, 「점프 앞모습_1」 및 「바람 일으키기 앞모습_1」 로 대체한다.
[정리]
음성 인식의 결과가 텍스트로 저장되는 것이라면 텍스트 분류 기술을 적용할 수 있음을 의미한다. 따라서, 이 프로그램은 음성 분류와 텍스트 분류 기술을 함께 사용하여 좀 더 다양한 형태의 프로그램을 만들 수 있음을 보여준다. 사람이 음성으로 명령할 때 다양한 단어를 사용할 수 있게 되어 현실에서도 잘 사용할 수 있는 프로그램을 만들 수 있음을 체험할 수 있다. 이 프로그램의 전체 프로그램은 다음과 같다.
[전체 프로그램]