네이버 클로바에 나만의 스킬을 만들어보자! - (1) 들어가기 전에

클로바 앱 또는 디바이스를 통해 나만의 음성인식 서비스를 개발하는 것을 목표로 CEK 콘솔에 기본 서비스 정보를 등록하는 것부터 발화에 대한 결과를 제공하기 위해 AWS 상에 Lambda를 이용한 서버 구현까지 함께 해보는 글입니다.
글쓴이는 처음으로 포스팅하다보니 재미없을 수도 있고, 두서없을 수 도 있지만 최대한 노오력해보도록 하겠습니다!

목차

  1. (현재글) 들어가기 전에

  2. AWS의 API Gateway과 Lambda를 이용하여 서버가 없는 API서버 구성하기

  3. Node.js를 이용하여 국가 또는 수도 맞추기 게임 코드 작성하기

  4. Clova Console에 Extension 기본 정보 등록하기

  5. Clova Console에서 모델을 빌드하고 테스트 해보기

개발환경

  • Naver Clova : 자연어 처리

  • AWS Lambda : 서버 관리가 없이 코드를 실행하고, 사용한 만큼만 비용을 지불하는 시스템

  • AWS API Gateway : API 서비스의 문지기 역할을 해주는 서비스

언어

  • Node.js 8.10 : 글쓴이가 익숙하고 AWS Lambda가 지원하는 Node.js 버전 중 최신 버전

클로바(Clova)는?

NAVER가 개발 및 서비스하고 있는 인공지는 플랫폼 서비스입니다. Clova 사용자의 음성이나 이미지를 분석하여 사용자가 원하는 정보나 서비스를 제공해줍니다.
우리는 클로바에서 제공해주는 개발 킷인 Clova Extension Kit(이하 CEK)를 이용하여 튜토리얼을 할 것입니다.

CEK는?

외부 서비스나 IoT 기기를 제어할 수 있는 Clova Skill을 서비스할 수 있도록 필요한 도구와 인터페이스를 제공해줍니다.
여기서, Clova Skill을 서비스하는 것이 결국 우리의 궁극적인 목표입니다. 왜냐하면, 클로바 사용자는 Clova Skill을 통해서 클로바 상에서 여러가지 기능을 수행하기 때문입니다.

CEK의 동작 구조

CEK_Interaction_Structure.png
CIC(클로바 디바이스, 클로바 앱 등)으로 부터 입력된 사용자의 발화를 인식하여, CEK에 등록한 Interaction 모델을 참조하여 사용자의 발화를 분석합니다.

우리의 튜토리얼 목표는

사용자에게 국가 또는 수도 퀴즈 봇 서비스를 제공하는 것입니다.
Extension을 만들기에 앞서, 먼저 세무 목표와 사용 시나리오를 수립해야 합니다. 이 포스트에선 아래와 같은 세부 목표와 사용 시나리오를 이용해서 튜토리얼을 진행할 것입니다.

세부 목표

  1. 서비스 호출 : 사용자가 "국가 수도 퀴즈 봇 시작해줘"나 "국가 수도 봇에서 수도 퀴즈 하자", "나라 수도 봇에서 국가 퀴즈 하자" 등으로 호출 할 수 있다.

  2. 사용 제안 또는 추천

    1. 퀴즈 봇이 시작되면 국가 퀴즈 또는 수도 퀴즈를 할 것인가에 대한 안내를 받을 수 있다.

    2. 퀴즈가 시작되면 문제 다시 듣는 법, 다시 푸는 법, 문제 넘기는 법, 정답 제출하는 법에 대해 안내를 받을 수 있다.

  3. 퀴즈 종류 선택 및 시작 : 국가 또는 수도의 퀴즈를 선택할 수 있다.

  4. 정답 제출 : 사용자는 퀴즈 중에 정답을 제출하고 결과를 들을 수 있다.

  5. 문제 다시 듣기 : 사용자는 퀴즈 중에 그 턴의 문제를 다시 들을 수 있다.

  6. 문제 넘기기 : 사용자는 문제를 넘길 수 있다.

  7. 문제 정답 확인 : 정답을 모르는 경우 정답을 받을 수 있다.

  8. 종료 : "그만" 등의 문장으로 서비스를 종료할 수 있으며, 퀴즈 중에 그만 할 경우 퀴즈의 결과를 들을 수 있다.

사용 시나리오

  1. (사용자, 세부 목표 #1) : 국가 수도 퀴즈봇 시작해줘

  2. (익스텐션, 세부 목표 #2-1) : 안녕하세요. 국가 수도 퀴즈봇 입니다. 국가를 맞추고 싶으시다면 국가 퀴즈, 수도를 맞추고 싶으시다면 수도 퀴즈라고 말해보세요.

  3. (사용자, 세부 목표 #3) : 수도 퀴즈하자.

  4. (익스텐션, 세부 목표 #2-2, #3) : 수도 퀴즈를 시작합니다. 제가 먼저 수도를 말하면 도전자님은 국가 이름을 말하시면 돼요. 만약 문제를 다시 듣고 싶으시다면 다시 들을래, 넘기고 싶으시다면 넘겨줘, 정답이 궁금하시다면 정답이 뭐야라고 말씀하시면 돼요. 자 이제 퀴즈를 시작합니다. 대한민국의 수도는?

  5. (사용자, 세부 목표 #4) : 서울

  6. (익스텐션, 세부 목표 #4) : 정답!, 미국의 수도는?

  7. (사용자, 세부 목표 #5) : 다시 들을래

  8. (익스텐션, 세부 목표 #5) : 으음, 잘 들으셔야돼요! 미국의 수도는?

  9. (사용자, 세부 목표 #4) : 로스엔젤레스

  10. (익스텐션, 세부 목표 #4) : 삐! 틀렸어요. 미국의 수도는?

  11. (사용자, 세부 목표 #4) : 워싱턴

  12. (익스텐션, 세부 목표 #4) : 정답!, 브라질의 수도는?

  13. (사용자, 세부 목표 #7) : 넘겨줘

  14. (익스텐션, 세부 목표 #7, #4) : 문제를 넘깁니다. 일본의 수도는?

  15. (사용자, 세부 목표 #9) : 그만

  16. (익스텐션, 세부 목표 #9) : 퀴즈를 그만합니다. 총 3문제 중 2문제를 풀었습니다.

이상 우리가 이 튜토리얼 시리즈를 통해 무엇을 만들어 볼지 알아보았다.
아마 이 포스트를 끝까지 보게 된다면 여러분들은 이를 통해 여러가지로 창의적으로 변경해볼 수 있게 될 것 입니다.
임베디드를 좋아하시는 분들은 음성인식 Home IoT를 만들어 볼 수 있을 것이고, 로스트아크를 좋아하시는 분들은 음성인식 로스트아크 대기열 알리미 등등 만들어 보실 있게 될 것 입니다.

다음 포스트에선

  • API Gateway와 AWS Lambda를 이용하여 서버 환경을 구성해보도록 하자.

참고