2. Amazon Alexa에서 음성에서 인수 수신
8250 단어 AmazonAlexaAlexaSkillsKit알렉사
연재 기사
전후 관계가 있기 때문에 차례로 읽을 수 있으면 알기 쉬워지고 있습니다.
1. Amazon Alexa와 Fire TV에서 Hello World를 사용해보십시오 - Qiita
2. Amazon Alexa에서 음성에서 인수 받기 - Qiita
3. Amazon Alexa의 Custom Slot Types 설정 - Qiita
4. Amazon Alexa에서 Heroku의 Rails로 연결 - Qiita
5. Amazon Alexa에서 대화 계속하기 (세션 인계) - Qiita
6. Amazon Alexa 기술을 일본어로 만들기 - Qiita
7. 자작한 일본어의 Alexa Skill을 Echo dot로 움직이기 - Qiita
시작하기
지난번에는 Fire TV > Alexa > Lambda에서 Hello World를 만들었습니다.
Amazon Alexa와 Fire TV에서 Hello World를 사용해보십시오 - Qiita
이전 Hello World는 정해진 음성에 대해 정해진 대답을 돌려주는 단순한 것이었습니다.
이번은 조금 발전시켜 말한 음성내의 말을 인수로서 받아, 그 받은 인수에 의해 동적으로 말하는 말을 바꾸어 보겠습니다.
입력 오디오에 인수 설정
입력 오디오 정의는 Amazon 개발자 포털의 Alexa에서 Utterances를 설정합니다.
Amazon 개발자 포털
HelloWorldIntent hello my name is {firstName}
HelloWorldIntent say hello my name is {firstName}
HelloWorldIntent say hello world my name is {firstName}
{firstName}
는 인수 설정입니다.
예를 들어 "Hello my name is Bob"이라고 말하면 HelloWorldIntent
가 호출되고 그 때 firstName
라는 인수 이름으로 "Bob"이라는 단어가 전달됩니다.
Intent Schema 정의
그런 다음 Lambda에 데이터를 전달하는 schema를 정의합니다.
{
"intents": [
{
"intent": "HelloWorldIntent",
"slots": [
{
"name": "firstName",
"type": "AMAZON.US_FIRST_NAME"
}
]
}
]
}
slots
의 내용이 인수의 정의입니다.name
는 인수명으로 이번은 firstName
입니다.type
는 Amazon 측에서 정의된 인수 유형과 같습니다.
형에는 그 밖에도 많은 것이 존재하고 있어 수시로 추가되고 있는 것 같습니다.
슬롯 유형 참조 - Amazon Apps & Services Developer Portal
Slot type의 무엇이 편리한가 하면, 예를 들면 AMAZON.DATE
의 형태로 정의하면 「today」라고 하는 음성 입력에 대해 2017-09-09
와 같이 오늘의 일자로 Alexa가 리퀘스트를 던져 줍니다.
다양한 음성 입력의 패턴을 Alexa가 흡수해 통일한 형식으로 변환해 주기 때문에, 수많은 음성 입력의 패턴을 심플하게 할 수 있을 것 같습니다.
이번은 AMAZON.US_FIRST_NAME
라고 하는 형태로 하고 있습니다. 이것은 US에서 자주 사용되는 이름을 망라하고 있어 "steve"라든지 "john"라든지를 받을 수 있습니다.
물론 이 슬롯 타입은 스스로 자신의 타입을 정의할 수도 있습니다.
Alexa 설정
위의 Utterances와 Intent Schema의 설정을 한 Alexa의 설정은 아래와 같습니다.
이것으로 Alexa 설정이 완료됩니다.
그런 다음 Lambda 프로그램을 수정합니다.
Lambda에서 first name을 받고 말합니다.
이 프로그램은 이전 Hello world를 유용합니다.
Amazon Alexa와 Fire TV에서 Hello World를 사용해보십시오 - Qiita
index.js'use strict';
var Alexa = require("alexa-sdk");
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.registerHandlers(handlers);
alexa.execute();
};
var handlers = {
'LaunchRequest': function () {
this.emit('SayHello');
},
'HelloWorldIntent': function () {
this.emit('SayHello')
},
'SayHello': function () {
this.emit(':tell', 'Hello World!' + this.event.request.intent.slots.firstName.value);
}
};
이번 변경한 것은 마지막 쪽에 있는 this.emit(':tell', 'Hello World!' + this.event.request.intent.slots.firstName.value);
뿐입니다.this.event.request.intent.slots.firstName.value
에서 Alexa에서 건너온 firstName
의 텍스트를 받고, 「Hello world!」에 연결해 이름을 말하고 있습니다.
결과
나 「Tell hello world hello my name is Bob.」
Alexa 「Hello world! Bob」
Amazon Alexa에서 음성에서 인수 받기 htps // t. 코 / lg 베어 c6sR @YouTube
Let's enjoy Alexa.
참고
Reference
이 문제에 관하여(2. Amazon Alexa에서 음성에서 인수 수신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tochi/items/f96ca5979ec2ea6387d8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
지난번에는 Fire TV > Alexa > Lambda에서 Hello World를 만들었습니다.
Amazon Alexa와 Fire TV에서 Hello World를 사용해보십시오 - Qiita
이전 Hello World는 정해진 음성에 대해 정해진 대답을 돌려주는 단순한 것이었습니다.
이번은 조금 발전시켜 말한 음성내의 말을 인수로서 받아, 그 받은 인수에 의해 동적으로 말하는 말을 바꾸어 보겠습니다.
입력 오디오에 인수 설정
입력 오디오 정의는 Amazon 개발자 포털의 Alexa에서 Utterances를 설정합니다.
Amazon 개발자 포털
HelloWorldIntent hello my name is {firstName}
HelloWorldIntent say hello my name is {firstName}
HelloWorldIntent say hello world my name is {firstName}
{firstName}
는 인수 설정입니다.예를 들어 "Hello my name is Bob"이라고 말하면
HelloWorldIntent
가 호출되고 그 때 firstName
라는 인수 이름으로 "Bob"이라는 단어가 전달됩니다.Intent Schema 정의
그런 다음 Lambda에 데이터를 전달하는 schema를 정의합니다.
{
"intents": [
{
"intent": "HelloWorldIntent",
"slots": [
{
"name": "firstName",
"type": "AMAZON.US_FIRST_NAME"
}
]
}
]
}
slots
의 내용이 인수의 정의입니다.name
는 인수명으로 이번은 firstName
입니다.type
는 Amazon 측에서 정의된 인수 유형과 같습니다.형에는 그 밖에도 많은 것이 존재하고 있어 수시로 추가되고 있는 것 같습니다.
슬롯 유형 참조 - Amazon Apps & Services Developer Portal
Slot type의 무엇이 편리한가 하면, 예를 들면
AMAZON.DATE
의 형태로 정의하면 「today」라고 하는 음성 입력에 대해 2017-09-09
와 같이 오늘의 일자로 Alexa가 리퀘스트를 던져 줍니다.다양한 음성 입력의 패턴을 Alexa가 흡수해 통일한 형식으로 변환해 주기 때문에, 수많은 음성 입력의 패턴을 심플하게 할 수 있을 것 같습니다.
이번은
AMAZON.US_FIRST_NAME
라고 하는 형태로 하고 있습니다. 이것은 US에서 자주 사용되는 이름을 망라하고 있어 "steve"라든지 "john"라든지를 받을 수 있습니다.물론 이 슬롯 타입은 스스로 자신의 타입을 정의할 수도 있습니다.
Alexa 설정
위의 Utterances와 Intent Schema의 설정을 한 Alexa의 설정은 아래와 같습니다.
이것으로 Alexa 설정이 완료됩니다.
그런 다음 Lambda 프로그램을 수정합니다.
Lambda에서 first name을 받고 말합니다.
이 프로그램은 이전 Hello world를 유용합니다.
Amazon Alexa와 Fire TV에서 Hello World를 사용해보십시오 - Qiita
index.js
'use strict';
var Alexa = require("alexa-sdk");
exports.handler = function(event, context, callback) {
var alexa = Alexa.handler(event, context);
alexa.registerHandlers(handlers);
alexa.execute();
};
var handlers = {
'LaunchRequest': function () {
this.emit('SayHello');
},
'HelloWorldIntent': function () {
this.emit('SayHello')
},
'SayHello': function () {
this.emit(':tell', 'Hello World!' + this.event.request.intent.slots.firstName.value);
}
};
이번 변경한 것은 마지막 쪽에 있는
this.emit(':tell', 'Hello World!' + this.event.request.intent.slots.firstName.value);
뿐입니다.this.event.request.intent.slots.firstName.value
에서 Alexa에서 건너온 firstName
의 텍스트를 받고, 「Hello world!」에 연결해 이름을 말하고 있습니다.결과
나 「Tell hello world hello my name is Bob.」
Alexa 「Hello world! Bob」
Amazon Alexa에서 음성에서 인수 받기 htps // t. 코 / lg 베어 c6sR @YouTube
Let's enjoy Alexa.
참고
Reference
이 문제에 관하여(2. Amazon Alexa에서 음성에서 인수 수신), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tochi/items/f96ca5979ec2ea6387d8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)