Як писати власні вміння Alexa без "Ask xxxx"


18

В даний час я використовую fauxmo для надсилання користувальницьких команд на різні пристрої для їх включення / вимкнення (наприклад, у мене є WiFi в ІК-конвертер для управління моїм тюнером і телевізором), і я можу вмикати / вимикати телевізор за допомогою цього.

У мене також є налаштування інтеграції 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) і не дуже гнучким.

Відповіді:


11

Я досліджував, щоб відкинути ім'я виклику для власних навичок Alexa для пари проектів. І те, що я придумав після години читання посібників і документацій, це те, що ... Це не можна зробити для спеціальних навичок .

Таким чином, найкращим варіантом для вашого випадку є використання Alexa Smart Home разом із деякими послугами розумного дому. Я знаю, ти сказав:

В ідеалі я хочу це зробити без хмарної послуги (тобто SmartThings або Wink)

На жаль, єдиний спосіб не мати імені виклику у Alexa - це використовувати їх заздалегідь визначені API (наприклад, Smart Home, Skill List та Flash Briefing).

РЕДАКТУВАННЯ: Однак ваш випадок використання належить до API Smart Home. Таким чином, ви завжди можете створити власну службу, яка споживає цей API, а не покладатися на інші сервіси (Wink, SmartThings тощо).


1
Чи є джерело, яке говорить, що цього не можна зробити, або це неявний результат ваших досліджень?
Гельмар

Це просто неявно. Хоча на задніх поглядах, враховуючи, як працюють розпізнавання голосу та НЛП, це повинно було бути обґрунтованим твердженням, і я не повинен був займатися таким дослідженням в першу чергу. Це обгрунтоване твердження, оскільки конкретному висловлюванню потрібен контекст, для якого він би був інтерпретований - і цей контекст є назвою виклику. Насправді сама причина виникнення слова пробудження така ж, як і назва виклику - так, що висловлювання, які інтерпретуються, належать до контексту (слово "будка" - це загальносистемний контекст, щоб випадкові висловлювання не оброблялися).
leon.valencia

Єдиний спосіб висловлювань, яким не потрібні імена викликів, - це ті, у кого загальносистемний контекст (це API). Наприклад, висловлювання, які Alexa інтерпретує як взаємодіючі з пристроями, автоматично стосуються API інтерфейсу для дому - NLP класифікує висловлювання як таке, використовуючи ключові слова, такі як синтаксис "вмикання", "вимкнення", "вимкнення" та ін.
leon.valencia

Але ви знаєте, що ... ваш випадок використання підпадає під API розумного дому. Тому я додаю свою відповідь, тому що ви можете просто використовувати цей API.
leon.valencia

Спасибі. Я читав про навички Smart Home, і, хоча не думаю, що вони зможуть зробити все, що я ще хочу, схоже, Amazon планує додавати до нього більше можливостей. Тому, замість fauxmo, я думаю, що варто інвестувати у належну майстерність Smart Home з відкритим кодом, яка може обробляти всі доступні команди та розширюватись у майбутньому. Ось поточний API для нащадків: developer.amazon.com/public/solutions/alexa/alexa-skills-kit/…
PhraturedBlue

7

Ви маєте змогу зробити це вже зараз, коли вільна взаємодія з Alexa не має імені .

Щоб зробити вашу майстерність більш доступною для взаємодії без імен, ви можете реалізувати інтерфейс CanFulfillIntentRequest у своїй майстерності


6

Оскільки рись уже детально описується у своїй відповіді, не можна повністю пройти без назви виклику, якщо ви не звертаєтесь до попередньо визначених API. Однак запитати мою майстерність - це не єдиний спосіб використання імені виклику.

Сторінки розробника пропонують три різні способи використання імен викликів із запитом.

"Алекса, щодня запитуйте гороскопи для Близнюків"

"Алекса, поговори з щоденними гороскопами та подай мені гороскоп для Тельця"

"Алекса, дай мені мій Гороскоп Тельця за допомогою щоденних гороскопів "

Документація з ім'ям виклику Alexa

Крім того, на цій сторінці показано, які інші слова ви можете використовувати для з'єднання запиту, імені виклику та обов'язкових слів зв'язку. Таким чином, якщо ви створюєте свій власний навик Alexa, то все полягає у використанні хорошого імені виклику та хорошого запиту, щоб це звучало природно.

Ще краще, що ваше відлуння повинно вже реагувати на це, запускаючи Blu-ray із інтеграцією Kodi.

Алекса , грай у Blu-ray з Коді .

Отже, хоча ви не можете позбутися імені виклику поза попередньо визначеними API, ви можете зробити голосову команду більш природною і пропустити незручне запитання ... використання.


2

Якщо ви використовуєте спеціальні слова, які за замовчуванням не використовуються Alexa, це фактично можливо. Метод все одно досить складний.

Вам просто потрібно уникати проходження AWS для вашого запиту! Неможливо сказати? Так - можливо.

У вашому додатку Amazon Alexa або у веб- додатку Amazon Alexa ви входите у свій обліковий запис Amazon Alexa, а також в -> налаштуваннях -> історія, у вас є активна сторінка всіх запитів і слів, які ви повідомляєте Alexa.

На даний момент ви можете скористатися веб-аналізатором, щоб сказати слово та запустити сценарій, якщо це слово є таким, яке ви хочете, або ви можете використовувати дивовижне невелике програмне забезпечення лише для Windows, яке може викликати дії та сценарії.

Ось посилання програмного забезпечення. На YouTube ознайомтеся з навчальними посібниками щодо використання додатка.

Якщо ви хочете запустити сценарії, просто запустіть слухача на порт і спеціальний запит, надісланий після слова в програмному забезпеченні. Я використовую його вдома, і мені дуже подобається той факт, що не потрібно вимовляти жодного імені виклику.

Після, як я вже сказав, ви можете використовувати будь-які слова, навіть слова, як відкриті. Це запустить ваш сценарій, але ви почуєте "вибачте, я цього не знаю" від Alexa.

Я його використовую, і він працює чудово!


Це цікавий підхід.
Гельмар

Чи варто довіряти цьому програмному забезпеченню? Робить мене посмішним ...
Шон Хуліхане

-2

Тож ця документація Amazon не відповідає дійсності? https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#invoking-a-skill-with-no-specific-request-no-intent

Здається, це прямо говорить про те, що ви можете сказати "Alexa" плюс ім'я виклику. Такі як "Алекса, щоденні гороскопи".

Він також показує цей метод як варіант № 3 для користувацьких навичок: https://developer.amazon.com/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html#invoking- власні навички


3
Документація правдива, але я не думаю, що саме цього шукає автор. Наприклад, "Play Bluray" не буде ім'ям виклику, а скоріше це наміром, без вказаного імені виклику. Якщо ви насправді не назвали свою майстерність "Play Bluray" (що, мабуть, не було б дозволено за вказівками щодо імені Amazon), на жаль, це не працюватиме.
Aurora0001
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.