콘텐츠진흥원과 건국대학교의 시범 강의로 진행된,
'스마트 스피커의 이해 - 음성인식 기반 플랫폼' 강의 슬라이드 입니다.
이번 강의에서는 실제로 스마트 스피커들 실물을 살펴보고,
(Amazon Alexa를 중심으로) 스마트 스피커에서 서비스를 개발하려면 어떤 것들을 사전에 알고 고려해야 하는 지에 대한 설명을 하였습니다.
강의 동영상은 아래에서 보실 수 있습니다.
1) 스마트 스피커 Demo
https://www.youtube.com/watch?v=c5FFoV1_yeA
이 동영상에서는 Amazon Echo, Echo Show, Echo Look에 대한 작동을 해 보고, Google Home도 살펴보았습니다.
국내 제품으로는 SKT NUGU Candle과 Naver Wave, Kakao mini를 가지고도 실제 작동을 시키며 살펴보았습니다.
그리고 음성인식 서비스에서, 디바이스의 전처리에 대한 개념을 설명하였습니다.
2) 스마트 스피커 Platform과 VUX
https://www.youtube.com/watch?v=_klMahZ4FYg
이 동영상에서는 실제로 스마트 스피커에서 서비스를 만들려고 할 때, 알아야 할 기본 개념을 설명하였습니다.
스마트 스피커에서 음성인식 서비스를 위해서 시스템이 어떻게 구성되는지, Voice UX를 구성하기 위해서는 어떠한 고려를 해야 하는지, 그리고 실제로 음성인식 서비스를 개발하기 위해 필요한 지식과, Amazon의 ASK 화면을 기반으로 어떻게 구성되는지를 살펴보았습니다.
12. AI Open Platform 구조
Amazon
Alexa
Google
Home
NAVER
Clova
Naver Clova
Clova Extension Kit
Clova Interface Connect
Clova Contents / Services
Clova Mobile App Clova Devices
Amazon Alexa
Alexa Skills Kit
Alexa Voice Service
Alexa Skills(일반)
Alexa Skills
(Smart Home)
App with Alexa Devices with Alexa
Google Assistant
Actions on Google
Embedded Google Assistant
Google Actions
Google Assistant App Google Assistant Device
AI Platform
AI Service API
Embedded AI Interface
IoT 연동
(Smart Home)
서비스
(VUX App)
S/W PoC H/W Embedded
15. Voice UX의 설계
ü Task 처리 목적 동일
ü 사용자의 행동과 반응
(UX)의 차이
ü Input에 대한 Output이
다양할 수 있음
다양한 행태를 그림
ü 연극/영화 대본?
[Source] http://blog.rightbrain.co.kr/?p=7951
17. Alexa Skills Kit
Learn
Design
Build
Launch
• No coding knowledge required
• Smart Home Skills, Games and Trivia Skills, Flash Briefing Skills, Custom Skills,
Video Skills, Skills for Echo Show
• Check out the Amazon Alexa Voice Design Guide
• Learn about the makings of a great voice user interface
• You can build and host most skills for free with AWS Lambda, which is free for the first
one million calls per month. You can also apply for AWS promotional credits if you incur
AWS charges related to your skill.
• Submit Your Skill for Certification
• Gather User Feedback, Gain Insights from Usage Data
• Level Up with AWS Promo Credits
ASK is a collection of self-service APIs, tools, documentation, and code
samples that makes it fast and easy for you to add skills to Alexa
[Source] https://developer.amazon.com/alexa-skills-kit
18. Alexa Skills 개발 (1/5)
메뉴
개발 Process 에 맞는
Menu 구성
3가지 Skill type 중 선택
- Custom Interaction Model
- Smart Home Skill API
- Flash Briefing Skill API
사용 언어 선택
: English(U.S), English(U.K),
German 지원*
Skill의 이름 설정
: Customer에게 노출하는 Skill의
이름으로 2~50자로 설정
Invocation Name
: Customer가 해당 Skill을 이용
하기 위한 activation 명령어 정의
- NUGU의 domain word 에 해당
- “Alexa, ask InvocationName ..”
와 같은 형대로 음성 명령
Global Fields Audio Player
: 해당 Skill이 audio player
기능을 사용하는지 여부
ü Skill Information: Skill 의 기본적인 종류와 속성을 정의
* 현재는 인도, 일본, 호주/뉴질랜드, 프랑스, 이탈리아, 스페인, 멕시코 추가됨https://developer.amazon.com/alexa/console/ask
19. Alexa Skills 개발 (2/5)
ü Interaction Model: 사용자 발화에 따른 동작 시나리오 및 대표 발화문을 정의
Intent Schema
- 사용자의 발화 요청에 따른
action을 정의
- JSON Format으로 작성
- 필요 Intent 와 Slot 을 정의
Custom Slot Types(Optional)
- 사용자의 발화와 이에 따라
호출되는 Intent에 추가 정보를
제공하기 위한 Slot 중 Amazon이
제공하지 않는 종류의 Slot을
정의
(Alexa의 ASR 인식률을 위한
것으로 추측됨)
Sample Utterances (예시 발화문)
- 예시 발화문과 발화문에 해당하는
Intent의 관계 정의
(Alexa의 NLU에서 변이되는
발화문을 자체 인식)
※ Intent : 사용자 명령 발화 기
능과 동작의 종류
※ Slot : 사용자 명령에 필요한
개별 속성
20. Alexa Skills 개발 (3/5)
ü Configuration: 동작 서버, 계정 등 환경 설정
Endpoint
- 음성인식 이 외에 서비스 로직
이 구현된 코드로의 연결
- Intent를 전달 해 응답값을
수신해 올 Skill의 Endpoint 정의
- Lambda/HTTPS 방식 중 선택l
AWS Lambda ARN
- AWS Lambda 에 대한 사용
정보 입력
- Serverless하게 코드를 실행
하기 위해 Amazon이 제공하는
Cloud computing 환경(AWS)의
Skill의 Endpoint Address
HTTPS
- 개발자가 자체 서버 또는
타 Cloud 환경을 이용해 구축한
Skill의 Endpoint Address
Account Linking
- Skill이 자체 계정 체계를
보유하고 있는지에 대한 설정
Permissions
- 사용자의 주소 정보 등 정보
수집에 대한 동의 여부 설정
(택일 - Full Address
/ Country & Postal Code Only)
21. Alexa Skills 개발 (4/5)
ü Test – Voice Simulator: TTS 로 발화되는 음성에 대한 테스트
Test Enabler
- 현재까지 정의한 Skill을
개발자의 계정에서 테스트하는
환경 설정 (Enable/Disable)
Voice Simulator
- Alexa의 TTS를 테스트하기 위한
Voice Simulator
- 사용자가 직접 입력한 text 및
SSML을 통해 TTS 엔진을 통해
생성된 음성을 들을 수 있음
22. Alexa Skills 개발 (5/5)
ü Test - Service Simulator: 발화 명령에 따른 처리 Code 및 결과 Simulation
Service Simulator
- 사용자의 발화를 직접 입력하는
방식으로 발화문에서 Intent가
제대로 정의되었는지, Intent에
따른 Endpoint Action이 제대로
동작하는지 확인하는 Service
Simulator 환경 제공 Enter Utterance
- 테스트 할 발화문 입력화면
(Text / JSON)
Request
- 샘플 발화문이 Lambda 서버에
어떤 식으로 Request 되는지
상세 정보 제공
- 실제 동작 코드 정보 제공
Response
- Request에 따른 Lambda 서버
처리된 Response code 정보 제공
Listen
- Response에 따른 결과 발화
(TTS) 음성을 실제로 들어볼 수
있는 테스트 기능
24. Google Actions 개발
ü Google Actions 개발 시작 화면: 시작 안내 page
Overal Guide
제공 API 에 대한 전반
적인 설명과
Actions 제작 가이드
제공.
개발 Console 연결
이 링크를 통해서
API.AI 개발 환경으로
연결됨
※ API.AI : google 에서 인수
한 AI 관련 API 제공 플랫
폼 서비스
https://console.actions.google.com/
25. Google Actions 개발
ü Google api.ai Create Agent 화면: Agent 의 생성
Create Agent
API. AI tool을 활용한
Conversation actions
제작 화면.
1단계로
Create Agent 메뉴에서
New Agent 생성
Agent name
제작하고자 하는 Agent
이름 등록
Language
Agent 제작에 사용할
언어 선택
(영어외 15개 언어,
한국어 포함)
Type
Public / Private 중 선택
※ Agent : API.AI 로 만든 AI 서비스를 통칭하며,
Google Home 에 연동할 경우 Actions on
Google 을 만들 수 있음.
그 외 Facebook 등 다양한 서비스 제작 가능https://console.dialogflow.com/api-client/
26. Google Actions 개발
ü Google Entities 정의 화면(1): 음성 명령의 주요 속성
Entity 정의
Amazon Slot과 유사
발화에 따른 사전 정의
Entity 신규 생성
※ Entity : 사용자 명령에 필요한
개별 속성을 정의하는 것으로,
Amazon 의 Slot 과 유사함
27. Google Actions 개발
ü Google Entities 정의 화면(2): 음성 명령의 주요 속성
Entity 정의
Entity에 등록한 단어와
동일한 뜻을 같은 유사어 등록
28. Google Actions 개발
ü Google Intents 정의 화면(1): 입력한 Entity 기반 예상 발화문에 따른 신규
Intent 생성
User says
사용자 예상 발화문을 다양하게
입력 등록
Intents 등록
Agent 사용 시 예상되
는 사용자 발화문을
사전 등록하고, 대화의
순서 및 필수 대화요소,
Entity에 따른 Prompt
정의
예상 발화문 자동 분석
입력한 예상 발화문이 노출되며,
이를 분석하여 사전에 입력 저장한
Entities 와 자동 매핑함
Entity 별 옵션
‘Agent – User’ 간의 Conversation
에 진행되는 Entity 요소, 필수
여부, 그에 따른 Google Home의
응답 Prompt 정의
※ Intents : 사용자 명령 발
화 기능과 동작의 종류를
정의하는 것으로,
Amazon 의 Intent 와 유
사함
Action
분석을 위한 예시 발화문 입력
29. Google Actions 개발
ü Google Intents 정의 화면(2)
Response
해당 Intent의 종료 Response
메시지 정의 영역 (복수 정의 시
Random하게 발화)