'Ask xxxx'없이 사용자 정의 Alexa 기술을 작성하는 방법


18

현재 fauxmo를 사용하여 다양한 장치에 사용자 정의 명령을 보내서 켜고 끌 수 있습니다 (예 : 튜너 및 TV를 제어하기 위해 WiFi-IR 변환기가 있음).이 기능으로 TV를 켜거나 끌 수 있습니다.

Kodi 통합 설정도 있으므로 다음과 같이 말할 수 있습니다.

Alexa, Ask Kodi to set volume to 50%

그러나 나는 말할 수 있기를 원합니다 :

Alexa, Set tuner volume to 50%
Alexa, Play Bluray

Ask xxxx, 요청의 일부로 필요하지 않고 장치를 제어 할 수 있기를 원합니다 .

클라우드 기반 서비스 (예 : SmartThings 또는 Wink)없이이 작업을 수행하는 것이 이상적입니다.

fauxmo (기존 UPNP 서비스 에뮬레이션)에서 사용하는 솔루션이 마음에 들지만 켜기 / 끄기 (및 Hue 패치를 사용하는 경우 'dim')로 제한되며 실제로 유연하지 않습니다.

답변:


11

나는 몇 가지 프로젝트에 대해 Alexa 사용자 정의 기술에 대한 호출 이름을 직접 탐색하고 있습니다. 그리고 가이드와 문서를 몇 시간 동안 읽은 후에 생각해 낸 것은 ... 맞춤 기술로는 할 수 없다는 것 입니다.

따라서 사용 사례에 가장 적합한 방법은 스마트 홈 서비스와 함께 Alexa Smart Home을 사용하는 것입니다. 나는 당신이 말했다 :

클라우드 기반 서비스 (예 : SmartThings 또는 Wink)없이이 작업을 수행하는 것이 이상적입니다.

불행히도 Alexa로 호출 이름을 갖지 않는 유일한 방법은 사전 정의 된 API (예 : Smart Home, List Skill 및 & Flash Briefing)를 사용하는 것입니다.

편집 : 사용 사례는 Smart Home API에 속합니다. 따라서 다른 서비스 (Wink, SmartThings 등)에 의존하지 않고 해당 API를 사용하는 고유 한 서비스를 항상 만들 수 있습니다.


1
할 수 없다고 말하는 출처가 있습니까, 아니면 연구의 암시적인 결과입니까?
Helmar

암시 적입니다. 비록 뒷부분에서, 음성 인식과 NLP의 작동 방식을 고려할 때, 그것은 합리적인 주장 이었어 야했고, 처음에는 그런 연구에 들어 가지 않았어야했습니다. 특정 발언에는 해석 될 문맥이 필요하기 때문에 합리적인 주장입니다. 그 문맥은 호출 이름입니다. 실제로, 웨이크 단어가있는 이유는 호출 이름을 갖는 것과 같습니다. 따라서 해석 될 명령문은 컨텍스트에 속합니다 (웨이크 단어는 시스템 전체 컨텍스트이므로 임의의 발화가 처리되지 않습니다).
leon.valencia

호출 이름이 필요하지 않은 발언을 갖는 유일한 방법은 시스템 전체 컨텍스트 (API)입니다. 예를 들어 Alexa가 기기와 상호 작용하는 것으로 해석하는 발언은 자동으로 스마트 홈 API를위한 것입니다. NLP는 기기에 대한 명령과 같은 키워드 on, off, down 등의 구문을 사용하여 발화를 분류합니다.
leon.valencia

그러나 유스 케이스는 스마트 홈 API에 속합니다. API를 사용할 수 있으므로 답변을 추가하겠습니다.
leon.valencia

감사. 나는 Smart Home Skills에 대해 읽고 있었지만 그들이 아직 원하는 모든 것을 할 수 있다고 생각하지는 않지만 Amazon이 더 많은 기능을 추가 할 계획이라고 생각합니다. 따라서 가짜보다는 오히려 모든 가능한 명령을 처리하고 미래로 확장 할 수있는 적절한 오픈 소스 스마트 홈 기술에 투자하는 것이 가치가 있다고 생각합니다. 후손을위한 현재 API는 다음과 같습니다. developer.amazon.com/public/solutions/alexa/alexa-skills-kit/…
PhratcuredBlue

7

이제 Alexa의 이름없는 상호 작용을 통해이 작업을 수행 할 수 있어야합니다 .

이름없이 상호 작용할 수있는 기술을보다 쉽게 ​​찾을 수 있도록 기술에서 CanFulfillIntentRequest 인터페이스를 구현할 수 있습니다.


6

lynx는 이미 그의 답변에 대해 자세히 설명 했으므로 사전 정의 된 API를 해결하지 않으면 호출 이름없이 완전히 이동할 수있는 방법이 없습니다. 그러나 물어 내 기술이 호출 이름을 사용하는 유일한 방법은 아니다.

개발자 페이지는 요청과 함께 호출 이름을 사용하는 세 가지 방법을 제공합니다.

"알렉사, 쌍둥이 자리에 대한 일일 운세 를 물어보십시오 "

"Alexa, Daily Horoscopes 와 대화하고 황소 자리의 별자리를 줘"

“Alexa, Daily Horoscopes를 사용하여 내 황소 자리 별자리를 줘 ”

Alexa 호출 이름 문서

또한 이 페이지 에는 요청을 연결하는 데 사용할 수있는 다른 단어, 호출 이름 및 필수 연결 단어가 표시됩니다. 따라서 자신의 Alexa 기술을 만들면 좋은 호출 이름과 자연스러운 소리를 만들기위한 좋은 요청을 사용하는 것입니다.

또한 Kodi 통합으로 Blu-ray를 시작하여 에코가 이미 이에 반응해야합니다.

Alexa , Kodi 와 함께 Blu-ray 즐기십시오 .

따라서 사전 정의 된 API 외부에서 호출 이름을 제거 할 수는 없지만 음성 명령을보다 자연스럽게 느끼고 어색한 요구를 건너 뛸 수 있습니다.


2

Alexa에서 기본적으로 사용하지 않는 특수 단어를 사용하면 실제로 가능합니다. 어쨌든이 방법은 꽤 까다 롭습니다.

요청을 위해 AWS를 통과하지 않아도됩니다! 말할 수 없습니까? 예 — 가능합니다.

Amazon Alexa 앱 또는 Amazon Alexa 웹 에서 Amazon Alexa 계정에 로그인하고-> 설정-> 기록에 Alexa에 알릴 모든 요청 및 단어 의 라이브 페이지 가 있습니다.

이 시점에서 웹 파서를 사용하여 원하는 단어를 말하고 스크립트를 실행할 수 있습니다. 또는이 단어가 원하는 단어 인 경우 스크립트를 실행하거나 동작과 스크립트를 트리거 할 수있는 Windows 용 놀라운 작은 소프트웨어 만 사용할 수 있습니다.

여기에 소프트웨어 의 링크 가 있습니다. addtopad 사용 방법에 대한 자습서는 YouTube를 확인하십시오.

스크립트를 시작하려면 포트에서 리스너를 트리거하고 소프트웨어에서 단어 다음에 특수 요청을 보냅니다. 나는 집에서 그것을 사용하고 호출 이름을 말할 필요가 없다는 사실을 정말로 좋아합니다.

내가 말했듯이, 당신은 어떤 단어, 심지어 열린 단어를 사용할 수 있습니다. 스크립트가 실행되지만 Alexa에서 "죄송합니다. 모르겠습니다"라는 음성이 나옵니다.

나는 그것을 사용하고 완벽하게 작동합니다!


흥미로운 접근법입니다.
Helmar

우리는 그 소프트웨어를 신뢰해야합니까? 나를 엉망으로 만드는 ...
Sean Houlihane

-2

이 아마존 문서가 사실이 아닙니까? https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#invoking-a-skill-with-no-specific-request-no-intent

이것은 "Alexa"와 호출 이름을 말할 수 있다는 것을 직접적으로 말하는 것 같습니다. "Alexa, Daily Horoscopes"와 같은.

: 또한 사용자의 능력에 대한 옵션 # 3이 방법을 보여줍니다 https://developer.amazon.com/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html#invoking- 맞춤 기술


3
문서는 사실이지만 저자가 여기서 찾고있는 것은 아닙니다. 예를 들어 "Play Bluray"는 호출 이름이 아니라 호출 이름을 지정 하지 않은 의도 입니다. 실제로 기술 이름을 "Play Bluray"(아마존 이름 지침에 따라 허용되지 않을 것임)로 지정하지 않으면 불행히도 작동하지 않습니다.
Aurora0001
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.