SW 배움터/앱인벤터2

앱인벤터2 고급 강좌 6 : AI 음성인식 계산기 만들기

kusson 2023. 1. 11. 17:44
반응형
728x170

 이번 시간에는 앱인벤터에 있는 음성 인식 컴포넌트를 이용해 음성으로 두 수의 계산을 하는 앱을 만들어 보자. 먼저 다음과 같이 디자이너 화면을 구성한다.

 음성 인식 컴포넌트와 음성 변환 컴포넌트는 보이지 않는 컴포넌트이기 때문에 두 컴포넌트를 뷰어 안에 투척하면 하단에 배치된다. 계산기 이미지 아래에 '여기를 클릭하고 계산식을 말하세요" 란 버튼을 하나 만들고 나머지는 레이블을 배치해 입력한 내용과 결과를 확인할 것이다.

 

 

 블록에디터로 가서 변수를 설정해 주자. 공통 블록안의 '변수' 항목에서 '전역 변수 만들기 "이름" 초기값' 블록을 이용해 아래와 같은 5가지 변수 초기값을 만들어 준다. 4칙 연산 모두에 대해 계산을 해 볼 예정이기 때문에 4칙 연산 모두에 대해 초기값을 설정해 둔다. 덧셈 연산의 초기값 리스트를 보면 '더하기'와 '+' 기호가 들어가 있는데 '더하기'란 음성을 인식하면 '+' 기호를 출력하는 형식으로 화면에 나타날 것이다. 뺄셈, 곱셈, 나눗셈에 대해서도 같은 방식이 적용된다.

 

 함수 만들기 블록을 하나 가져다 두고 그 안에 입력하는 문장 속 두 수의 음절을 분리하는 코드를 입력한다. 먼저 비어있는 '입력한 숫자들' 리스트를 하나 만든다. 입력한 문장들 속에 빈칸이 있으면 그 빈칸을 기점으로 음절을 분해해서 각각의 숫자를 '입력한 숫자들' 리스트에 추가한다.

 

 

 숫자 가져오기 함수 블록을 보면 처음에는 없던 '입력문장'이라는 주황색 항목이 나타나 있다. 이 '입력문장'이라는 주황색 항목을 어떻게 만드는지 간단히 알아보자. 숫자 가져오기 함수 블록의 좌상단울 보면 톱니 모양의 아이콘이 있다. 그 아이콘위에 마우스 커서를 가져가면 '입력:X' 라는 작은 블록이 나타난다.

 

 

'입력:X'  블록을 입력값 블록 안에 끼워 넣는다. 그러면 함수 만들기 블록 우측에 주황색의 'X' 항목이 나타난다.

 

 

 'X' 에 커스를 가져가서 클릭하면 글자를 입력할 수 있는 에디터 모드로 변환되는데 여기에 '입력 문장'이라고 입력한다.

 

 

 주황색의 '입력_문장'이라는 항목이 새로 생겼다. 새로 추가된 항목은 외부에서 입력되는 변수나 데이터를 받아들이는 용도로 사용된다. '입력_문장' 항목 위에 마우스 커스를 가져가면 '가져오기 입력_문장'이란 세부 블록이 나타나므로 끌어다 사용하면 된다.

 

 

' 만약 이라면 실행'  제어 블록속에 '숫자인가요?'란 파란색 블록이 들어 있다. 입력 받은 문장에서 빈칸을 기준으로 분리해서 양쪽 음절이 숫자라면 다음 코드를 실행시킨다. 양쪽 음절의 숫자를 '입력한 숫자들' 리스트에 추가한다.

 

 

 음성 인식 버튼을 클릭할 때는 숫자가 나타나는 레이블을 깨끗이 지우고 다시 시작한다. 그 후 음성 인식으로 가져온 텍스트를 호출한다.

 

 

 덧셈 연산에 대한 코드를 보자. 첫번째 숫자 레이블에 음성 인식으로 받아온 숫자를 출력한다. 그리고 그 숫자를 호출해서 내부적으로 저장한다. 혹시 잘 들리지 않거나 오류가 나면 '오류. 다시 한번 말씀해 주세요.'란 글자가 결과 창에 표시 된다.  오류가 없이 두개의 숫자가 입력되면 입력된 결과중에서 변수 '덧셈 연산'에 있는 항목과 일치하는 것이 있는지 확인한다. '더하기'나 '+' 가 있다면 더하기 연산을 실시해서 두번째 숫자 레이블에 표시한다. 뺄셈, 곱셈, 나눗셈에 대해서도 같은 과정을 반복한다. 마지막으로 결과를 소리로도 출력한다.

 

 

위의 앱을 빌드해서 스마트폰에 나타난 초기화면이다. '여기를 클릭하고 계산식을 말하세요' 버튼을 클릭해 보자.

 

 

 구글의 음성인식 인공지능이 나타나면서 입력을 기다린다. 두개의 숫자를 더하기, 빼기, 곱하기, 나누기로 말해보자. 즉 3 더하기 5 식으로.

 

 

 '입력한 내용은:' 란에 수식이 나타나고 '결과 확인:' 란에 결과가 표시된다. 3더하기  5라고 말하면 수식과 결과가 잘 나타난다.

 

뺄셈도 잘 계산된다.

 

곱셈도 잘 계산된다.

 

 

그러나 나눗셈에 대해서는 계산 결과는 맞았지만 나누기란 말을 잘 인식을 못하고 계속 '나누기'란 말로 나타났다. 

 

 

 

 아직 나눗셈에 대해서는 좀 아쉬운 결과가 있었지만 전체적으로 만족할 만한 결과를 보여 주었다. 2자리 3자리 숫자의 계산도 척척 해 내는 걸 보면 인공지능의 기술이 나날이 발전하고 있구나 하는 생각을 하게 된다.

 

*위 내용은 '모두가 할 수 있는 앱인벤터로 11개 인공지능 앱 만들기'란 책을 참고로 작성된 포스팅입니다. 더 자세한 내용을 알고 싶은 분은 위의 책을 구입해서 공부해 보시기 바랍니다.

 

반응형
그리드형