[실습하기] 나만의 스마트홈 인공지능 프로그램 만들기(1)
만들어볼까요?
지금부터 엔트리의 오디오 감지 기능을 사용하여 나만의 스마트홈 인공지능 프로그램을 만들어보겠습니다.
[STEP 1] 엔트리봇 오브젝트에서 음성인식 시작하기
|
1) 엔트리 공유 주소 http://naver.me/FsFiGILF 에 접속한 후, 코드보기를 클릭합니다. |
|
2) ‘인공지능’ 블록 꾸러미에서 ‘AI블록 불러오기’를 클릭합니다. |
|
3) ‘오디오 감지’를 선택한 뒤 ‘추가하기’를 클릭 합니다. |
4) 먼저 엔트리봇 오브젝트를 클릭하여 블록을 조립하겠습니다. ‘안녕을 4초 동안 말하기’ 블록을 가져와 다음과 같이 내용을 수정합니다.
5) 나만의 스마트홈 프로그램은 엔트리봇을 클릭했을 때 음성인식을 시작합니다. ‘오브젝트를 클릭했을 때’ 블록을 가져온 뒤, ‘안녕을 4초 동안 말하기’ 블록을 붙여 다음과 같이 블록을 조립합니다.
6) 엔트리봇 오브젝트를 클릭하면 먼저 마이크가 연결되어 있는지를 확인하고 음성 인식을 시작합니다.
[STEP 2] 음성 명령을 인식하여 적절히 대답하도록 만들기
|
7) 음성을 인식하면, 엔트리봇이 인식된 말을 문자로 바꾸어 말해줍니다. ‘인공지능’ 블록 꾸러미의 ‘음성을 문자로 바꾼 값’ 블록과 ‘생김새’ 블록 꾸러미의 ‘안녕을 말하기’ 블록을 가져와 다음과 같이 조립합니다. |
|
8) 1초 기다린 뒤, 만약 음성을 문자로 바꾼 값에 ‘열어’ 라는 말이 포함되어 있다면 창문이 열리고, ‘닫아’ 라는 말이 포함되어 있다면 창문이 닫힙니다. 먼저 ‘2초 기다리기 블록’와 만일 ~라면 아니면~‘ 블록을 가져옵니다. |
|
9) 음성을 문자로 바꾼 값에 ‘열어’라는 말이 포함 되어 있는 경우를 다음과 같이 블록으로 나타낸 뒤, ‘만일 ~라면 아니면~’ 블록의 조건 부분에 넣어줍니다. |
체크체크!
Q. 음성 인식된 말 속에 특정 단어가 포함되어 있는지 어떻게 알 수 있나요?
위 그림처럼 블록을 조립한 뒤 실행하여 ‘안녕 반가워’라고 말해 보면, 결과가 ‘4’라고 나옵니다. 어떻게 나온 결과일까요? 아래 그림을 봅시다.
음성 인식한 결과를 문자로 바꾸었을 때, 그림과 같이 앞에서부터 순서대로 한 글자마다 숫자가 매겨집니다. 이때, 공백(띄어쓰기)도 한 글자처럼 숫자가 매겨집니다. 그림에서 볼 수 있듯이 엔트리에서는 가장 먼저 나온 글자의 위치가 ‘1’로 정해져 있습니다. 따라서 ‘안녕∨반가워’라고 이야기 하면 ‘반가워’의 시작 위치는 ‘4’가 됩니다.
그렇다면 이 블록을 활용해서 음성 인식한 말 속에 특정 단어가 포함되어 있는지를 판단하려면 어떻게 해야 할까요? 다음과 같이 특정 단어의 시작 위치가 0보다 큰지를 확인하면 됩니다.
음성 인식을 한 결과를 문자로 바꾸었을 때, 가장 처음에 나온 글자의 위치는 ‘1’입니다. 그렇다면 어떤 단어의 시작 위치가 0보다 크다는 건 어떤 의미일까요? 맞습니다. 그 단어가 문장의 어딘가에는 존재하고 있다는 것을 나타내죠. 따라서 어떤 단어가 음성 인식한 결과에 포함되어 있는지를 판단하려면 시작 위치가 0보다 크다고 하면 된답니다.
|
10) 음성 인식 결과 ‘열어’라는 말이 포함되어 있다면, 엔트리봇이 ‘창문을 열겠습니다’라고 말을 합니다. |
|
11) 이어서 음성 인식 결과에 ‘닫아’라는 말이 포함되었을 때, 엔트리봇이 ‘창문을 닫겠습니다.’라고 말하도록 해보겠습니다. 먼저 ‘만일~라면’ 블록을 가져온 뒤 다음과 같이 블록을 조립합니다. |
[STEP 3] 음성 인식 결과에 따라, 창문 오브젝트 모양이 바뀌도록 만들기
|
12) 이번에는 각 명령어에 따라 창문 오브젝트의 모양이 바뀌는 것을 표현해보겠습니다. 먼저 창문 오브젝트에 보낼 신호를 만들어야 합니다. 속성에서 신호 추가하기를 눌러 ‘열림’, ‘닫힘’ 신호를 만듭니다. |
13) 음성 인식 결과에 ‘열어’가 포함되어 있으면 ‘열림’ 신호를 보내고, ‘닫아’가 포함되어 있으면 ‘닫힘’ 신호를 보냅니다. ‘시작’ 블록 꾸러미에서 ‘~신호 보내기’ 블록을 가져와 다음과 같이 조립합니다.
|
14) 이제 창문 오브젝트에 코딩을 하겠습니다. 창문 오브젝트는 프로그램이 시작될 때는 닫혀 있는 모습이어야 합니다. 다음과 같이 블록을 조립합니다. |
|
15) ‘열림’ 신호를 받았을 때 ‘창문_열림’ 모양으로 바꾸고, ‘닫힘’ 신호를 받으면 ‘창문_닫힘’ 모양으로 바뀌도록 블록을 조립합니다. |
|
16) ‘시작하기’ 버튼을 클릭하여 프로그램이 잘 동작하는지 확인합니다. |
프로그램에 대해 이야기해봅시다.
Q. 이번 시간에 만든 작품은 엔트리의 어떤 인공지능 관련 기능을 사용하였나요?
Q. 작품을 만들면서 어떤 생각이 들었나요?