SlideShare a Scribd company logo
1 of 31
Download to read offline
NUGU developers 및 Play 소개
AI사업 Unit AI오픈플랫폼 Cell
권세영
1
목차
I. NUGU & NUGU developers
II. NUGU Play Kit
III. NUGU Biz
2
I. NUGU & NUGU developers NUGU 란?
▪ SK 텔레콤의 인공지능 기술로서, 사용자의 자연어(음성 언어 또는 문자 언어) 요청을 이해하여 의도를 파악한 후 특정 명령을
수행하거나 자연어로 응답하는 대화 기반 인공지능 플랫폼
▪ NUGU 스피커, T map, B tv, 키즈폰 등 다양한 디바이스 및 모바일 앱에 적용돼 있으며 월간 실 사용자 600만 명
3
I. NUGU & NUGU developers NUGU developers 란?
▪ 대화 기반 인공지능 서비스를 개발할 수 있는 통합 개발 환경을 GUI 기반으로 제공함으로써, 서비스 및 콘텐츠 개발자들은 NUGU
developers를 통해 좀더 쉽게 자신들의 서비스를 개발할 수 있도록 함
▪ SK 텔레콤이 보유한 최고 수준의 음성 인식, 음성 합성, 자연어 이해 분야의 기술력을 경험 및 사용할 수 있음
4
I. NUGU & NUGU developers 사용자 발화 (음성) 처리 과정
▪ 사용자 발화는 음성 인식, 자연어 이해 모듈 (엔진)를 통해 그 의도가 파악 되고,
▪ 대화 관리자는 파악된 의도에 맞는 액션을 수행하여 사용자에게 전달할 응답을 생성 하며,
▪ 생성된 응답은 음성 합성 모듈 (엔진)을 거쳐서 사용자에 합성음으로 전달 됨
서비스 및 콘텐츠 개발자 영역
5
I. NUGU & NUGU developers NUGU developers 란?
▪ 사용자 발화가 처리되는 과정에서 반드시 필요한 요소 기술들을 제공하고, 서비스를 개발할 수 있는 통합 개발 환경인 Play Builder를
제공
▪ 개발된 서비스는 바로 사용자에게 노출되지 않고, ‘심사와 배포’ 과정을 거친 후 NUGU 사용자들에게 공개
▪ 특히 NUGU Biz를 통해 특정 사용자 그룹 또는 전용 디바이스에만 해당 서비스를 제공될 수 있도록 설정
6
II. NUGU Play Kit
▪ NUGU Play Kit 이란?
▪ NUGU의 서비스 단위인 Play를 제작하는 도구
▪ 개발자가 아니어도 대화 기반 서비스를 개발할 수 있는 통합 환경을 제공하고, 좋은 콘텐츠를 보유하고 있는 업체 또는 개인이 NUGU
사용자에게 자신의 서비스를 제공할 수 있도록 도와주는 것이 목표
▪ NUGU Play Kit 구성
▪ Play를 제작하는 Play Builder
▪ 응답 생성에 필요한 정보를 외부 서버로부터 가져오기 위한 Backend Proxy API
▪ 오디오 플레이어 등 제어 기능을 사용하기 위한 Capability Interface
7
II. NUGU Play Kit Play 란?
▪ NUGU 플랫폼의 모듈(엔진)들과 통신해 서비스를 제공하는 단위
▪ 사용자와 상호 작용하여 의도를 이해하고 그에 맞는 적절한 답변을 주거나 명령을 수행함
▪ 서비스로 제공하기 위해서는 사용자의 발화를 이해하고 의도를 파악하고 그에 맞는 답변을 제공해야 함
▪ 즉, 서비스 제공자는 사용자의 발화를 예상하고 이 발화들의 의도에 맞는 기능들을 정의해야 함
• 오늘 명동 날씨가 어때?
• 명동 오늘 날씨
• 날씨 알려줘
특정 날짜/장소의 날씨
문의
특정 날짜/장소의 날씨
제공
• 오늘 명동 날씨는 맑아요
• 맑을 것으로 예상됩니다
• 맑아요
8
II. NUGU Play Kit Play 타입
▪ Public Play
▪ NUGU 사용자 모두가 사용할 수 있는 Play
▪ 추후 공개 예정인 스토어에 Play가 등록되면 NUGU 사용자가 선택하여 사용
▪ 스토어가 공개되기 전까지는 선택 과정 없이 바로 사용
▪ Private Play
▪ 등록된 디바이스 혹은 초대된 사용자만 사용할 수 있는 Play
▪ 예를 들어, 회사 내에서만 혹은 가족/친구끼리만 사용하는 Play로도 활용
▪ 특정 디바이스를 등록하거나 제한된 사용자만 초대하는 것은 NUGU Biz에서 설정
9
II. NUGU Play Kit
▪ 서비스 분야
카테고리 예시 발화
정보 제공
▪ 아리아, [Invocation name]에서 오늘 스포츠 뉴스 찾아줘
▪ 아리아, [Invocation name]에서 오늘 SK 경기결과 확인해줘
기기 제어
▪ 아리아, [Invocation name]에서 거실 불 켜줘
▪ 아리아, [Invocation name]에서 알람 설정해줘
커머스
▪ 아리아, [Invocation name]에서 생수 주문해줘
▪ 아리아, [Invocation name]에서 아메리카노 주문해줘
미디어
▪ 아리아, [Invocation name]에서 최신 인기 음악 틀어줘
▪ 아리아, [Invocation name]에서 오디오북 틀어줘
▪ Play 호출 이름 (Invocation name)
▪ 사용자가 Play를 호출하기 위해 발화하는 고유한 이름
▪ 사용자가 Play 호출 이름을 발화하면 해당 Play의 세션으로 진입하여 해당 Play의 기능을 사용
10
II. NUGU Play Kit Play 세션 (Session)
▪ Case 1
▪ 사용자가 특정 Play의 호출 이름을 발화하여 호출
▪ 그 Play가 활성화되면서 해당 Play의 명령만 수행할 수
있는 Play 세션으로 진입
▪ 이 세션이 열려있는 동안에는 해당 호출 이름을 발화하지 않아도
그 Play의 기능을 계속 사용
▪ 세션이 닫히기 전까지는 다른 Play를 사용할 수 없음
11
II. NUGU Play Kit Play 세션 (Session)
▪ Case 2
▪ 특정 명령을 통해 세션을 닫을 수 있음
▪ 정해진 세션 유지 시간이 경과하거나 Capability Interface 중 AudioPlayer의 명령이 수행되면 세션이 닫힘
12
II. NUGU Play Kit Play 사용 방법
▪ Play 시작 Case 1
▪ [Invocation name] + Start / Open Intent (의도)
▪ Built-in Intent인 ‘Open’ 또는 ‘Start’를 사용하여 특정한 기능 수행 요청 없이 Play를 호출
▪ ‘Open’에 해당하는 발화 예시 : ‘열어’, ‘오픈’ 등
▪ ‘Start’에 해당하는 발화 예시 : ‘시작’, ‘스타트’, ‘실행’ 등
▪ Play 시작 Case 2
▪ [Invocation name] + 해당 Play의 Intent (의도)
▪ 실행하고자 하는 Play의 기능을 호출 이름에 이어서 발화하여 Play를 시작
▪ Play 시작되며 곧바로 해당 Play의 Intent 수행
▪ 호출이름과 Intent 사이에 ‘에게/에서/한테/로’와 같은 조사를 넣어 발화하거나 Entity를 함께 발화할 수 있음
13
II. NUGU Play Kit Play 사용 방법
▪ Play 종료 Case 1
▪ [Invocation name] + Stop / Close Intent (의도)
▪ Play 호출이름에 Built-in Intent인 ‘Stop’ 또는 ‘Close’를 사용하여 Play를 종료
▪ ‘Stop’에 해당하는 발화 예시 : ‘그만’, ‘정지’, ‘중지’, ‘종료’, ‘멈춰’, ‘스탑’, ‘끝’ 등
▪ ‘Close’에 해당하는 발화 예시 : ‘닫기’, ‘닫아’ 등
▪ Play 종료 Case 2
▪ 세션 대기 상황에서 Stop / Close Intent (의도)
▪ 세션 대기 상황에서 NUGU 에이전트가 Listening 상태인 경우, Play 호출 이름을 포함하지 않아도 ‘Stop’ 또는 ‘Close’를 발화하여
Play를 종료
▪ 예) ‘그만’  Play 종료됨
14
II. NUGU Play Kit Play 사용 방법
▪ Play 종료 Case 3
▪ 세션 대기 상황에서 미지원 발화 (Fallback) 2회 연속 발생 시
▪ 사용자 발화가 Play 내에 정의된 Intent가 아닌 경우 Fallback으로 처리되며, 2회 연속으로 Fallback이 발생하면 Play 종료
▪ 예) 워커힐 VISTA Play 세션 중,
▪ NUGU : (Listening 상태)
▪ 사용자 : 음악 틀어줘
▪ NUGU : 워커힐에서는 제공하지 않는 기능이에요. 무엇을 더 도와드릴까요? (Fallback 1회)
▪ 사용자 : 음악 틀어줘
▪ NUGU : 워커힐에서는 제공하지 않는 기능이에요. 무엇을 더 도와드릴까요? (Fallback 2회)
▪ Play 종료 Case 4
▪ 세션 대기 상황에서 미발화 (Silence) 발생 시
▪ 7초간 미발화 (Silence) 발생 시 Play 종료
15
II. NUGU Play Kit Intent와 Entity
▪ Play가 제공하는 기능을 사용하기 위해 사용자는 발화를 통해 Play에게 의도를 전달해야 함
▪ User Utterance Model : 인간과 기계 (Play) 가 음성 대화를 통해 상호 작용할 수 있도록 하는 언어 모델
▪ Play는 이러한 모델을 통해 사용자의 말을 이해하고 그 속에 담긴 요청/명령을 수행
▪ User Utterance Model은 Intent와 Entity로 구성
▪ Intent : Play의 기능을 동작시키기 위해 표현하는 사용자 의도를 의미
▪ Entity : 사용자의 요청을 정확히 처리하기 위해 Intent 외에 추가로 알아야 하는 개체를 의미
▪ Play Builder에서 사용자가 정의한 User Utterance Model을 바탕으로 NLU 엔진을 학습 및 빌드 시킬 수 있음
▪ 이후 사용자가 예상 발화와 일치하거나 유사한 의도를 가지는 발화를 한 경우에 NLU 엔진은 해당 Intent와 Entity로 분석
16
II. NUGU Play Kit Intent
▪ 사용자가 발화를 통해 수행하고자 하는 기능을 구체적으로 구분한 범주이며, Play의 필수 구성 요소
▪ 입력된 예상 발화를 바탕으로 NLU 엔진은 학습하여 사용자의 실제 발화를 분석
▪ Intent를 정의하기 위해서는 기능 수행을 위한 사용자의 예상 발화를 일정 수준 이상 입력해야 함 (최소 10문장)
▪ 동일한 Intent에 대해 사용자들은 각자의 상황/성향에 따라 여러 가지 형태 또는 문형으로 발화할 수 있으므로,
▪ 이를 고려하여 다양한 문형의 예상 발화를 입력하는 것이 좋음
▪ Built-in Intent
▪ 자주 사용할 것으로 예상되거나 필수로 정의해야 하는 NUGU의 기본 제공 Intent
▪ NUGU.INTENT.stop / NUGU.INTENT.rewind
▪ Play 생성 시 추가되며, Capability Interface를 적용할 때 마다 추가되는 Built-in Intent가 더 늘어남
▪ Custom Intent
▪ 특정 Play에서 정의된 Intent
17
II. NUGU Play Kit Entity
▪ Intent만으로 특정 기능의 발화 의도를 표현하기 어려울 때 사용하는 부가 상세 정보를 의미하는 개체
▪ Intent의 예상 발화 정의 시 해당 발화문 내에서 특정 텍스트를 지정하여 정의
▪ 예상 발화에서 정의된 Entity는 사용자 발화에서 동일한 의미/유형의 다른 어휘들로 나타날 수 있는 가변적인 요소
▪ 필요한 경우에만 정의하는 선택 요소이지만, 정의한 Entity가 사용자 발화에 누락된 경우는 정상적으로 기능을 동작시키지 못할 수 있음
▪ 이 경우에는 Entity를 필수로 지정하여 사용자에게 다시 물어 Entity를 확인하거나, Play 개발자가 기본 값으로 처리하도록 개발할 수 있음
▪ 예를 들어, “경로 알려줘” 라고 했을 때, <목적지>를 필수로 지정하여 “목적지를 말씀해주시겠어요?”와 같이 되묻도록 할 수 있음
18
II. NUGU Play Kit Entity Type& Entity Role
▪ Entity Type은 특정 Entity들의 집합 또는 그 범주를 의미하며,
▪ ‘명동, 남포동, 역삼동’과 같은 개체들은 ‘동 이름’을 나타내며, 이것을 Entity Type라고 함
▪ Entity Role은 특정 Entity의 발화 문장에서의 역할을 의미
▪ 발화 문장에서의 역할 (목적지, 경유지, 위치 등)을 Entity Role이라고 함
19
II. NUGU Play Kit Entity Type
▪ Built-in Entity Type
▪ 시간이나 장소, 숫자, 나이와 같이 범용적으로 자주 쓰이는 표현들을 정의해 둔 Entity Type
▪ Custom Entity Type과 동일하게 사용 가능
▪ 28개의 Entity Type이 Built-in으로 제공 (이후 추가 예정)
▪ Custom Entity Type
▪ 특정 Play 내에서 정의된 Entity Type
20
II. NUGU Play Kit Entity Role
▪ 발화 문장에서 Entity가 특정 역할을 수행한다면, 이를 구분하여 Entity Role을 별도로 정의
▪ “서울에서 부산까지 항공편 예약해줘” 라는 발화 문장에서, ‘서울’과 ‘부산’은 도시를 나타내는 동일한 Entity Type
▪ 하지만, 서로 다른 역할 (출발지, 목적지)을 수행하고 있으며, 이는 명확히 구분되어야 정상적으로 기능을 수행
▪ ‘서울’은 출발지, ‘부산’은 목적지라는 역할 (Role)을 구분하여 지정해야 함
사용자 발화 Intent Entity
Entity Text Entity Type Entity role
서울에서 부산까지 항공편 예약해줘 book.flight
서울 CITY POINT_OF_DEPARTURE
부산 CITY POINT_OF_DESTINATION
21
II. NUGU Play Kit 예제를 통해 Intent와 Entity 알아보기
▪ 날씨를 안내하는 Play의 경우, 다음과 같은 User Utterance Model
▪ Intent : 날씨 안내 기능을 사용하기 위해서는 ‘날씨 정보를 요청’ 이라는 의도를 표현  ask.weather
▪ 예상 발화 : 이 의도를 표현하기 위해 사용자가 “날씨 알려줘”, “날씨 알려주세요”, “날씨가 어때” 라고 말할 것
22
II. NUGU Play Kit 예제를 통해 Intent와 Entity 알아보기
▪ 실제로는 사용자가 “어제 날씨 알려줘”, “내일 날씨 알려줘”, “명동 날씨 알려줘” 와 같이 발화할 수 있음
▪ 이러한 발화들을 각각 독립된 Intent로 정의한 뒤, 각 Intent를 처리하는 기능들을 추가하여 처리하는 것도 가능
23
II. NUGU Play Kit 예제를 통해 Intent와 Entity 알아보기
▪ ‘어제’, ‘내일’, ‘명동’을 Entity로 간주하고 동일한 ask.weather Intent로 처리하면, 조금 더 효율적으로 대응 가능
▪ 이를 위해, 같은 속성을 가진 Entity끼리 하나의 Entity Type으로 묶고, 이를 예상 발화에 지정하면 Entity를 활용한 User Utterance
Model을 정의할 수 있음
▪ Entity Type을 예상 발화에 지정할 때에는 Entity Type별로 하나의 값만을 사용
24
II. NUGU Play Kit Play Builder
▪ Play Builder 란?
▪ Play를 만드는 도구
▪ 사용자의 발화를 이해하는 User Utterance Model
▪ 이를 기반으로 기능을 수행하는 Action들을 조합
▪ 하나의 Play를 완성하기 위해서는 크게,
▪ 사용자의 발화를 정확하게 분석하도록 Intent/Entity를 정의하여 NLU 엔진을 학습시키고,
▪ Intent별로 Action을 정의하여 사용자의 요청에 대해 적절한 응답과 동작을 처리할 수 있어야 하며,
▪ 실질적으로 사용자 발화에 대해 응답하거나 동작할 수 있는 Backend proxy API를 연동하는 것이 필요
▪ Play Builder는 이 모든 기능들을 하나의 통합된 환경에서 GUI 기반으로 제공
25
II. NUGU Play Kit Backend proxy
▪ Backend proxy 란?
▪ 외부 서버를 호출하여 대화 관리자에게 정보를 전달하는 서버
▪ 사용자의 발화로부터 Intent와 Entity가 분석되면 대화 관리자가 적절한 Prompt (응답)를 생성하여 스피커로 전달
▪ Prompt를 생성할 때 외부 서버로부터 필요한 정보를 가져와 응답을 생성해야 하는 경우
▪ Backend proxy는 외부 서버로부터 가져온 정보를 수정하거나 복잡한 로직을 통해 조건을 판단하는 기능도 수행
▪ 개발자가 직접 개발하여 NUGU 플랫폼과 연동할 수 있도록 준비
▪ Backend proxy를 사용하는 경우
▪ 외부 서버로부터 정보를 가져와야 하는 경우
▪ 사칙연산, 날씨/시간 계산 등 로직을 통해 정보를 가공하는 경우
▪ 오디오 재생을 위한 명령어 (Play, Pause, Stop)를 생성해야 하는 경우  AudioPlayer Interface 지원 Play
▪ 시나리오 전체에 필요한 정보를 미리 가져와서 사용하는 경우
26
II. NUGU Play Kit Backend proxy
▪ 사용자가 ‘명동 날씨 알려줘’라고 발화한 경우,
▪ ask.weather Intent와 함께 ‘명동’을 Backend proxy로 전달
▪ Backend proxy는 기상 정보를 제공하는 외부 서버를 호출하여 원하는 시간의 날씨 정보를 얻어와 {{status}}로 결과를 반환
▪ 대화 관리자 {{location}}과 {{status}}를 이용하여 날씨를 안내하는 응답을 스피커로 보냄
27
II. NUGU Play Kit Capability Interface
▪ Capability Interface 란?
▪ 디바이스의 여러 기능을 제어하기 위한 규격
▪ 응답을 재생하는 기능 외에 오디오 재생, 무드등 제어, 음량 조절 등 다양한 기능을 제어
▪ 현재는 디바이스에서 오디오 스트리밍을 통해 음악을 재생하기 위한 AudioPlayer Interface만 지원
▪ Play를 생성하는 시점에 Play에서 지원하고자 하는 Capability Interface를 선택하면 사용 가능
▪ Capability Interface 구성
▪ Built-in Intent : 기능을 제어하기 위해 기본으로 제공되는 Intent
▪ 사용자가 직접 정의하지 않아도 사용 가능
▪ Directive : 디바이스의 기능을 제어하기 위해 Play에서 디바이스로 전달하는 명령어
▪ Event : 디바이스가 명령을 수행하면 상태가 변경되는데, 이 상태의 변경을 Play에 알려주기 위해 사용
28
III. NUGU Biz
▪ NUGU Play Kit에서 만든 Private Play를 개발자가 지정한 전용 디바이스 (Shared Device) 또는 특정 사용자 그룹 (Enrolled
User)만 사용할 수 있도록 관리하는 기능을 제공
▪ 전용 디바이스 관리 (Shared Device)
▪ NUGU 디바이스를 사업장/영업장 등과 같은 공용 공간에서 누구나 사용할 수 있도록 설정하는 기능
▪ 전용 디바이스로 설정되면 NUGU 개인 계정과 연결 없이, 해당 공간을 이용하는 사람은 누구나 이용 가능
▪ 사무 공간, 호텔, 병원 등 다양한 공용 공간에서 전용 디바이스를 이용 가능
29
III. NUGU Biz
▪ 사용자 그룹 관리 (Enrolled User)
▪ 특정 사용자 그룹을 초대하여, Private Play를 사용할 수 있도록 권한을 부여하고 관리하는 기능
▪ 자사 임직원 또는 단체에 소속된 회원만 초대하여 회원들의 NUGU 디바이스에서 Private Play를 사용
▪ 초대된 사용자가 초대 승인 및 인증 절차를 완료하면 Private Play를 이용 가능
[NUGU Dev Days Beginner] NUGU developers 및 Play 소개

More Related Content

More from NUGU developers

[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner
[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner
[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI PartnerNUGU developers
 
[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere
[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere
[NUGU CONFERENCE 2019] 키노트 2 : NUGU EverywhereNUGU developers
 
[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전
[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전
[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경
[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경
[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티
[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티
[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?
[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?
[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip
[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip
[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tipNUGU developers
 
[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip
[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip
[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 TipNUGU developers
 
[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발
[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발
[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDKNUGU developers
 
[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDKNUGU developers
 
[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -
[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -
[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...
[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...
[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기
[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기
[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...
[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...
[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개
[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개
[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개NUGU developers
 
[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술
[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술
[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술NUGU developers
 
[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인
[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인
[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인NUGU developers
 

More from NUGU developers (20)

[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner
[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner
[NUGU CONFERENCE 2019] 키노트 3 : NUGU, Your AI Partner
 
[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere
[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere
[NUGU CONFERENCE 2019] 키노트 2 : NUGU Everywhere
 
[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전
[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전
[NUGU CONFERENCE 2019] 키노트 1 : 인공지능 비서 : 새로운 도전
 
[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경
[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경
[NUGU CONFERENCE 2019] 트랙 C-4-1 : AI로 만드는 영어 환경
 
[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티
[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티
[NUGU CONFERENCE 2019] 트랙 C-3 : 인공지능을 활용한 사회적 가치 창출 행복커뮤니티
 
[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?
[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?
[NUGU CONFERENCE 2019] 트랙 C-1 : AI NUGU는 미디어 소비행태를 어떻게 바꾸나?
 
[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip
[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip
[NUGU CONFERENCE 2019] 트랙 B-5-2 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 tip
 
[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip
[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip
[NUGU CONFERENCE 2019] 트랙 B-5-1 : NUGU play 개발 공모전 수상팀이 알려주는 play 개발 Tip
 
[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발
[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발
[NUGU CONFERENCE 2019] 트랙 B-3 : Pre-built Model를 활용한 NUGU 스마트홈 개발
 
[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-2 : NUGU SDK
 
[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK
[NUGU CONFERENCE 2019] 트랙 B-2-1 : NUGU SDK
 
[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -
[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -
[NUGU CONFERENCE 2019] 트랙 B-1 : NUGU SDK 소개 - 정책 및 프로세스 관점에서 -
 
[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...
[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...
[NUGU CONFERENCE 2019] 트랙 A-7 : When in Doubt, Just See : 영상인식기반 T map 도로교통정보...
 
[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-6 : 개인화 서비스를 위한 음성기반 화자인식 기술 소개
 
[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기
[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기
[NUGU CONFERENCE 2019] 트랙 A-5 : 검색 데이터 저장소 구축기
 
[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...
[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...
[NUGU CONFERENCE 2019] 트랙 A-4 : Zero-shot learning for Personalized Text-to-S...
 
[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개
[NUGU CONFERENCE 2019] 트랙 A-3 : NUGU 개인화 음악 추천 기술 소개
 
[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개
[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개
[NUGU CONFERENCE 2019] 트랙 A-2 : NUGU call 적용 기술 및 서비스 소개
 
[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술
[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술
[NUGU CONFERENCE 2019] 트랙 A-1 : Knowledge Graph 기반의 Complex QA 기술
 
[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인
[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인
[NUGU Dev Days Beginner] 음성 서비스 디자인 가이드라인
 

[NUGU Dev Days Beginner] NUGU developers 및 Play 소개

  • 1. NUGU developers 및 Play 소개 AI사업 Unit AI오픈플랫폼 Cell 권세영
  • 2. 1 목차 I. NUGU & NUGU developers II. NUGU Play Kit III. NUGU Biz
  • 3. 2 I. NUGU & NUGU developers NUGU 란? ▪ SK 텔레콤의 인공지능 기술로서, 사용자의 자연어(음성 언어 또는 문자 언어) 요청을 이해하여 의도를 파악한 후 특정 명령을 수행하거나 자연어로 응답하는 대화 기반 인공지능 플랫폼 ▪ NUGU 스피커, T map, B tv, 키즈폰 등 다양한 디바이스 및 모바일 앱에 적용돼 있으며 월간 실 사용자 600만 명
  • 4. 3 I. NUGU & NUGU developers NUGU developers 란? ▪ 대화 기반 인공지능 서비스를 개발할 수 있는 통합 개발 환경을 GUI 기반으로 제공함으로써, 서비스 및 콘텐츠 개발자들은 NUGU developers를 통해 좀더 쉽게 자신들의 서비스를 개발할 수 있도록 함 ▪ SK 텔레콤이 보유한 최고 수준의 음성 인식, 음성 합성, 자연어 이해 분야의 기술력을 경험 및 사용할 수 있음
  • 5. 4 I. NUGU & NUGU developers 사용자 발화 (음성) 처리 과정 ▪ 사용자 발화는 음성 인식, 자연어 이해 모듈 (엔진)를 통해 그 의도가 파악 되고, ▪ 대화 관리자는 파악된 의도에 맞는 액션을 수행하여 사용자에게 전달할 응답을 생성 하며, ▪ 생성된 응답은 음성 합성 모듈 (엔진)을 거쳐서 사용자에 합성음으로 전달 됨 서비스 및 콘텐츠 개발자 영역
  • 6. 5 I. NUGU & NUGU developers NUGU developers 란? ▪ 사용자 발화가 처리되는 과정에서 반드시 필요한 요소 기술들을 제공하고, 서비스를 개발할 수 있는 통합 개발 환경인 Play Builder를 제공 ▪ 개발된 서비스는 바로 사용자에게 노출되지 않고, ‘심사와 배포’ 과정을 거친 후 NUGU 사용자들에게 공개 ▪ 특히 NUGU Biz를 통해 특정 사용자 그룹 또는 전용 디바이스에만 해당 서비스를 제공될 수 있도록 설정
  • 7. 6 II. NUGU Play Kit ▪ NUGU Play Kit 이란? ▪ NUGU의 서비스 단위인 Play를 제작하는 도구 ▪ 개발자가 아니어도 대화 기반 서비스를 개발할 수 있는 통합 환경을 제공하고, 좋은 콘텐츠를 보유하고 있는 업체 또는 개인이 NUGU 사용자에게 자신의 서비스를 제공할 수 있도록 도와주는 것이 목표 ▪ NUGU Play Kit 구성 ▪ Play를 제작하는 Play Builder ▪ 응답 생성에 필요한 정보를 외부 서버로부터 가져오기 위한 Backend Proxy API ▪ 오디오 플레이어 등 제어 기능을 사용하기 위한 Capability Interface
  • 8. 7 II. NUGU Play Kit Play 란? ▪ NUGU 플랫폼의 모듈(엔진)들과 통신해 서비스를 제공하는 단위 ▪ 사용자와 상호 작용하여 의도를 이해하고 그에 맞는 적절한 답변을 주거나 명령을 수행함 ▪ 서비스로 제공하기 위해서는 사용자의 발화를 이해하고 의도를 파악하고 그에 맞는 답변을 제공해야 함 ▪ 즉, 서비스 제공자는 사용자의 발화를 예상하고 이 발화들의 의도에 맞는 기능들을 정의해야 함 • 오늘 명동 날씨가 어때? • 명동 오늘 날씨 • 날씨 알려줘 특정 날짜/장소의 날씨 문의 특정 날짜/장소의 날씨 제공 • 오늘 명동 날씨는 맑아요 • 맑을 것으로 예상됩니다 • 맑아요
  • 9. 8 II. NUGU Play Kit Play 타입 ▪ Public Play ▪ NUGU 사용자 모두가 사용할 수 있는 Play ▪ 추후 공개 예정인 스토어에 Play가 등록되면 NUGU 사용자가 선택하여 사용 ▪ 스토어가 공개되기 전까지는 선택 과정 없이 바로 사용 ▪ Private Play ▪ 등록된 디바이스 혹은 초대된 사용자만 사용할 수 있는 Play ▪ 예를 들어, 회사 내에서만 혹은 가족/친구끼리만 사용하는 Play로도 활용 ▪ 특정 디바이스를 등록하거나 제한된 사용자만 초대하는 것은 NUGU Biz에서 설정
  • 10. 9 II. NUGU Play Kit ▪ 서비스 분야 카테고리 예시 발화 정보 제공 ▪ 아리아, [Invocation name]에서 오늘 스포츠 뉴스 찾아줘 ▪ 아리아, [Invocation name]에서 오늘 SK 경기결과 확인해줘 기기 제어 ▪ 아리아, [Invocation name]에서 거실 불 켜줘 ▪ 아리아, [Invocation name]에서 알람 설정해줘 커머스 ▪ 아리아, [Invocation name]에서 생수 주문해줘 ▪ 아리아, [Invocation name]에서 아메리카노 주문해줘 미디어 ▪ 아리아, [Invocation name]에서 최신 인기 음악 틀어줘 ▪ 아리아, [Invocation name]에서 오디오북 틀어줘 ▪ Play 호출 이름 (Invocation name) ▪ 사용자가 Play를 호출하기 위해 발화하는 고유한 이름 ▪ 사용자가 Play 호출 이름을 발화하면 해당 Play의 세션으로 진입하여 해당 Play의 기능을 사용
  • 11. 10 II. NUGU Play Kit Play 세션 (Session) ▪ Case 1 ▪ 사용자가 특정 Play의 호출 이름을 발화하여 호출 ▪ 그 Play가 활성화되면서 해당 Play의 명령만 수행할 수 있는 Play 세션으로 진입 ▪ 이 세션이 열려있는 동안에는 해당 호출 이름을 발화하지 않아도 그 Play의 기능을 계속 사용 ▪ 세션이 닫히기 전까지는 다른 Play를 사용할 수 없음
  • 12. 11 II. NUGU Play Kit Play 세션 (Session) ▪ Case 2 ▪ 특정 명령을 통해 세션을 닫을 수 있음 ▪ 정해진 세션 유지 시간이 경과하거나 Capability Interface 중 AudioPlayer의 명령이 수행되면 세션이 닫힘
  • 13. 12 II. NUGU Play Kit Play 사용 방법 ▪ Play 시작 Case 1 ▪ [Invocation name] + Start / Open Intent (의도) ▪ Built-in Intent인 ‘Open’ 또는 ‘Start’를 사용하여 특정한 기능 수행 요청 없이 Play를 호출 ▪ ‘Open’에 해당하는 발화 예시 : ‘열어’, ‘오픈’ 등 ▪ ‘Start’에 해당하는 발화 예시 : ‘시작’, ‘스타트’, ‘실행’ 등 ▪ Play 시작 Case 2 ▪ [Invocation name] + 해당 Play의 Intent (의도) ▪ 실행하고자 하는 Play의 기능을 호출 이름에 이어서 발화하여 Play를 시작 ▪ Play 시작되며 곧바로 해당 Play의 Intent 수행 ▪ 호출이름과 Intent 사이에 ‘에게/에서/한테/로’와 같은 조사를 넣어 발화하거나 Entity를 함께 발화할 수 있음
  • 14. 13 II. NUGU Play Kit Play 사용 방법 ▪ Play 종료 Case 1 ▪ [Invocation name] + Stop / Close Intent (의도) ▪ Play 호출이름에 Built-in Intent인 ‘Stop’ 또는 ‘Close’를 사용하여 Play를 종료 ▪ ‘Stop’에 해당하는 발화 예시 : ‘그만’, ‘정지’, ‘중지’, ‘종료’, ‘멈춰’, ‘스탑’, ‘끝’ 등 ▪ ‘Close’에 해당하는 발화 예시 : ‘닫기’, ‘닫아’ 등 ▪ Play 종료 Case 2 ▪ 세션 대기 상황에서 Stop / Close Intent (의도) ▪ 세션 대기 상황에서 NUGU 에이전트가 Listening 상태인 경우, Play 호출 이름을 포함하지 않아도 ‘Stop’ 또는 ‘Close’를 발화하여 Play를 종료 ▪ 예) ‘그만’  Play 종료됨
  • 15. 14 II. NUGU Play Kit Play 사용 방법 ▪ Play 종료 Case 3 ▪ 세션 대기 상황에서 미지원 발화 (Fallback) 2회 연속 발생 시 ▪ 사용자 발화가 Play 내에 정의된 Intent가 아닌 경우 Fallback으로 처리되며, 2회 연속으로 Fallback이 발생하면 Play 종료 ▪ 예) 워커힐 VISTA Play 세션 중, ▪ NUGU : (Listening 상태) ▪ 사용자 : 음악 틀어줘 ▪ NUGU : 워커힐에서는 제공하지 않는 기능이에요. 무엇을 더 도와드릴까요? (Fallback 1회) ▪ 사용자 : 음악 틀어줘 ▪ NUGU : 워커힐에서는 제공하지 않는 기능이에요. 무엇을 더 도와드릴까요? (Fallback 2회) ▪ Play 종료 Case 4 ▪ 세션 대기 상황에서 미발화 (Silence) 발생 시 ▪ 7초간 미발화 (Silence) 발생 시 Play 종료
  • 16. 15 II. NUGU Play Kit Intent와 Entity ▪ Play가 제공하는 기능을 사용하기 위해 사용자는 발화를 통해 Play에게 의도를 전달해야 함 ▪ User Utterance Model : 인간과 기계 (Play) 가 음성 대화를 통해 상호 작용할 수 있도록 하는 언어 모델 ▪ Play는 이러한 모델을 통해 사용자의 말을 이해하고 그 속에 담긴 요청/명령을 수행 ▪ User Utterance Model은 Intent와 Entity로 구성 ▪ Intent : Play의 기능을 동작시키기 위해 표현하는 사용자 의도를 의미 ▪ Entity : 사용자의 요청을 정확히 처리하기 위해 Intent 외에 추가로 알아야 하는 개체를 의미 ▪ Play Builder에서 사용자가 정의한 User Utterance Model을 바탕으로 NLU 엔진을 학습 및 빌드 시킬 수 있음 ▪ 이후 사용자가 예상 발화와 일치하거나 유사한 의도를 가지는 발화를 한 경우에 NLU 엔진은 해당 Intent와 Entity로 분석
  • 17. 16 II. NUGU Play Kit Intent ▪ 사용자가 발화를 통해 수행하고자 하는 기능을 구체적으로 구분한 범주이며, Play의 필수 구성 요소 ▪ 입력된 예상 발화를 바탕으로 NLU 엔진은 학습하여 사용자의 실제 발화를 분석 ▪ Intent를 정의하기 위해서는 기능 수행을 위한 사용자의 예상 발화를 일정 수준 이상 입력해야 함 (최소 10문장) ▪ 동일한 Intent에 대해 사용자들은 각자의 상황/성향에 따라 여러 가지 형태 또는 문형으로 발화할 수 있으므로, ▪ 이를 고려하여 다양한 문형의 예상 발화를 입력하는 것이 좋음 ▪ Built-in Intent ▪ 자주 사용할 것으로 예상되거나 필수로 정의해야 하는 NUGU의 기본 제공 Intent ▪ NUGU.INTENT.stop / NUGU.INTENT.rewind ▪ Play 생성 시 추가되며, Capability Interface를 적용할 때 마다 추가되는 Built-in Intent가 더 늘어남 ▪ Custom Intent ▪ 특정 Play에서 정의된 Intent
  • 18. 17 II. NUGU Play Kit Entity ▪ Intent만으로 특정 기능의 발화 의도를 표현하기 어려울 때 사용하는 부가 상세 정보를 의미하는 개체 ▪ Intent의 예상 발화 정의 시 해당 발화문 내에서 특정 텍스트를 지정하여 정의 ▪ 예상 발화에서 정의된 Entity는 사용자 발화에서 동일한 의미/유형의 다른 어휘들로 나타날 수 있는 가변적인 요소 ▪ 필요한 경우에만 정의하는 선택 요소이지만, 정의한 Entity가 사용자 발화에 누락된 경우는 정상적으로 기능을 동작시키지 못할 수 있음 ▪ 이 경우에는 Entity를 필수로 지정하여 사용자에게 다시 물어 Entity를 확인하거나, Play 개발자가 기본 값으로 처리하도록 개발할 수 있음 ▪ 예를 들어, “경로 알려줘” 라고 했을 때, <목적지>를 필수로 지정하여 “목적지를 말씀해주시겠어요?”와 같이 되묻도록 할 수 있음
  • 19. 18 II. NUGU Play Kit Entity Type& Entity Role ▪ Entity Type은 특정 Entity들의 집합 또는 그 범주를 의미하며, ▪ ‘명동, 남포동, 역삼동’과 같은 개체들은 ‘동 이름’을 나타내며, 이것을 Entity Type라고 함 ▪ Entity Role은 특정 Entity의 발화 문장에서의 역할을 의미 ▪ 발화 문장에서의 역할 (목적지, 경유지, 위치 등)을 Entity Role이라고 함
  • 20. 19 II. NUGU Play Kit Entity Type ▪ Built-in Entity Type ▪ 시간이나 장소, 숫자, 나이와 같이 범용적으로 자주 쓰이는 표현들을 정의해 둔 Entity Type ▪ Custom Entity Type과 동일하게 사용 가능 ▪ 28개의 Entity Type이 Built-in으로 제공 (이후 추가 예정) ▪ Custom Entity Type ▪ 특정 Play 내에서 정의된 Entity Type
  • 21. 20 II. NUGU Play Kit Entity Role ▪ 발화 문장에서 Entity가 특정 역할을 수행한다면, 이를 구분하여 Entity Role을 별도로 정의 ▪ “서울에서 부산까지 항공편 예약해줘” 라는 발화 문장에서, ‘서울’과 ‘부산’은 도시를 나타내는 동일한 Entity Type ▪ 하지만, 서로 다른 역할 (출발지, 목적지)을 수행하고 있으며, 이는 명확히 구분되어야 정상적으로 기능을 수행 ▪ ‘서울’은 출발지, ‘부산’은 목적지라는 역할 (Role)을 구분하여 지정해야 함 사용자 발화 Intent Entity Entity Text Entity Type Entity role 서울에서 부산까지 항공편 예약해줘 book.flight 서울 CITY POINT_OF_DEPARTURE 부산 CITY POINT_OF_DESTINATION
  • 22. 21 II. NUGU Play Kit 예제를 통해 Intent와 Entity 알아보기 ▪ 날씨를 안내하는 Play의 경우, 다음과 같은 User Utterance Model ▪ Intent : 날씨 안내 기능을 사용하기 위해서는 ‘날씨 정보를 요청’ 이라는 의도를 표현  ask.weather ▪ 예상 발화 : 이 의도를 표현하기 위해 사용자가 “날씨 알려줘”, “날씨 알려주세요”, “날씨가 어때” 라고 말할 것
  • 23. 22 II. NUGU Play Kit 예제를 통해 Intent와 Entity 알아보기 ▪ 실제로는 사용자가 “어제 날씨 알려줘”, “내일 날씨 알려줘”, “명동 날씨 알려줘” 와 같이 발화할 수 있음 ▪ 이러한 발화들을 각각 독립된 Intent로 정의한 뒤, 각 Intent를 처리하는 기능들을 추가하여 처리하는 것도 가능
  • 24. 23 II. NUGU Play Kit 예제를 통해 Intent와 Entity 알아보기 ▪ ‘어제’, ‘내일’, ‘명동’을 Entity로 간주하고 동일한 ask.weather Intent로 처리하면, 조금 더 효율적으로 대응 가능 ▪ 이를 위해, 같은 속성을 가진 Entity끼리 하나의 Entity Type으로 묶고, 이를 예상 발화에 지정하면 Entity를 활용한 User Utterance Model을 정의할 수 있음 ▪ Entity Type을 예상 발화에 지정할 때에는 Entity Type별로 하나의 값만을 사용
  • 25. 24 II. NUGU Play Kit Play Builder ▪ Play Builder 란? ▪ Play를 만드는 도구 ▪ 사용자의 발화를 이해하는 User Utterance Model ▪ 이를 기반으로 기능을 수행하는 Action들을 조합 ▪ 하나의 Play를 완성하기 위해서는 크게, ▪ 사용자의 발화를 정확하게 분석하도록 Intent/Entity를 정의하여 NLU 엔진을 학습시키고, ▪ Intent별로 Action을 정의하여 사용자의 요청에 대해 적절한 응답과 동작을 처리할 수 있어야 하며, ▪ 실질적으로 사용자 발화에 대해 응답하거나 동작할 수 있는 Backend proxy API를 연동하는 것이 필요 ▪ Play Builder는 이 모든 기능들을 하나의 통합된 환경에서 GUI 기반으로 제공
  • 26. 25 II. NUGU Play Kit Backend proxy ▪ Backend proxy 란? ▪ 외부 서버를 호출하여 대화 관리자에게 정보를 전달하는 서버 ▪ 사용자의 발화로부터 Intent와 Entity가 분석되면 대화 관리자가 적절한 Prompt (응답)를 생성하여 스피커로 전달 ▪ Prompt를 생성할 때 외부 서버로부터 필요한 정보를 가져와 응답을 생성해야 하는 경우 ▪ Backend proxy는 외부 서버로부터 가져온 정보를 수정하거나 복잡한 로직을 통해 조건을 판단하는 기능도 수행 ▪ 개발자가 직접 개발하여 NUGU 플랫폼과 연동할 수 있도록 준비 ▪ Backend proxy를 사용하는 경우 ▪ 외부 서버로부터 정보를 가져와야 하는 경우 ▪ 사칙연산, 날씨/시간 계산 등 로직을 통해 정보를 가공하는 경우 ▪ 오디오 재생을 위한 명령어 (Play, Pause, Stop)를 생성해야 하는 경우  AudioPlayer Interface 지원 Play ▪ 시나리오 전체에 필요한 정보를 미리 가져와서 사용하는 경우
  • 27. 26 II. NUGU Play Kit Backend proxy ▪ 사용자가 ‘명동 날씨 알려줘’라고 발화한 경우, ▪ ask.weather Intent와 함께 ‘명동’을 Backend proxy로 전달 ▪ Backend proxy는 기상 정보를 제공하는 외부 서버를 호출하여 원하는 시간의 날씨 정보를 얻어와 {{status}}로 결과를 반환 ▪ 대화 관리자 {{location}}과 {{status}}를 이용하여 날씨를 안내하는 응답을 스피커로 보냄
  • 28. 27 II. NUGU Play Kit Capability Interface ▪ Capability Interface 란? ▪ 디바이스의 여러 기능을 제어하기 위한 규격 ▪ 응답을 재생하는 기능 외에 오디오 재생, 무드등 제어, 음량 조절 등 다양한 기능을 제어 ▪ 현재는 디바이스에서 오디오 스트리밍을 통해 음악을 재생하기 위한 AudioPlayer Interface만 지원 ▪ Play를 생성하는 시점에 Play에서 지원하고자 하는 Capability Interface를 선택하면 사용 가능 ▪ Capability Interface 구성 ▪ Built-in Intent : 기능을 제어하기 위해 기본으로 제공되는 Intent ▪ 사용자가 직접 정의하지 않아도 사용 가능 ▪ Directive : 디바이스의 기능을 제어하기 위해 Play에서 디바이스로 전달하는 명령어 ▪ Event : 디바이스가 명령을 수행하면 상태가 변경되는데, 이 상태의 변경을 Play에 알려주기 위해 사용
  • 29. 28 III. NUGU Biz ▪ NUGU Play Kit에서 만든 Private Play를 개발자가 지정한 전용 디바이스 (Shared Device) 또는 특정 사용자 그룹 (Enrolled User)만 사용할 수 있도록 관리하는 기능을 제공 ▪ 전용 디바이스 관리 (Shared Device) ▪ NUGU 디바이스를 사업장/영업장 등과 같은 공용 공간에서 누구나 사용할 수 있도록 설정하는 기능 ▪ 전용 디바이스로 설정되면 NUGU 개인 계정과 연결 없이, 해당 공간을 이용하는 사람은 누구나 이용 가능 ▪ 사무 공간, 호텔, 병원 등 다양한 공용 공간에서 전용 디바이스를 이용 가능
  • 30. 29 III. NUGU Biz ▪ 사용자 그룹 관리 (Enrolled User) ▪ 특정 사용자 그룹을 초대하여, Private Play를 사용할 수 있도록 권한을 부여하고 관리하는 기능 ▪ 자사 임직원 또는 단체에 소속된 회원만 초대하여 회원들의 NUGU 디바이스에서 Private Play를 사용 ▪ 초대된 사용자가 초대 승인 및 인증 절차를 완료하면 Private Play를 이용 가능