0
Answered

Яндекс Алиса

Дмитрий Марков 11 months ago in Tips and Tricks • updated by Никита Пелипенко 1 week ago 71

Добрый день!


Есть ли поддержка Яндекс Станции?

+1

Нет ответа или проверятся возможность?

Answered

Добрый день.

Станция сейчас не поддерживается, т. к. навык должен пройти дополнительную проверку в Яндексе и быть полностью управляем голосом. Сейчас пока ни первое, ни второе не сделано.

Когда планируется?

Основная ценность голосового управления заключается в том, что зайдя в дом, ты говоришь "ему" сделай "что-то". А не в том, чтобы достать очередной гаджет (разблокировать его, запустить на нем приложение), и уже потом продиктовать что нужно включить. 

+3

Добрый день!

Навык прошел проверку на совместимость с Яндекс.Станция и доступен для применения

Отличная новость! Теперь можно заказывать Яндекс.Станцию.

Подключать по такой-же схеме, как и в телефоне?

А нельзя Алисе отдать текстовый ответ, чтобы она его произнесла вместо "выполнено" в варианте с фиктивным тегом?

Это в планах на разработку, пока не отдать ответ.

Да, было бы здорово получать ответы от Алисы по состоянию домашней системы! 

+1

В ближайшем релизе для Алисы появится функционал с произвольным ответом

Протестировал Яндекс-Алису. Для запуска навыка нужно сказать ей "Запусти навык Иридиум", после чего система по фразе "Слушай, Алиса" ожидает и выполняет известные ей команды. При этом перестает работать другой стандартный функионал Алисы, например, нельзя узнать погоду, т.к. Алиса в навыке Иридиум ответит, что "tag какая сегодня погода not found in project". Фразы "прекрати" и "хватит" не останавливают работу навыка Иридий как заявлено в описании. То есть, если управлять, например, через Яндекс- браузер или приложение на телефоне, то выходить из навыка приходится вручную нажимая на кнопку. Как это будет работать в Яндекс.Станции вообще не понятно. Видимо, Алиса будет постоянно сидеть в навыке Иридиум и остальные ее возможности будут заблокированы. Подскажите, это ошибка работы навыка или действительно есть такая особенность в Алисе.


  

Я изначально тоже думал, что говорить Алисе команды можно сразу (в том окне, где узнать про погоду и т.д.). Но есть маленькое неудобство (может конечно, я чего-то не понял), чтобы "общаться" с Иридиумом через Алису, надо постоянно заходить в навык Иридий, а чтобы узнать погоду, надо стрелочкой "назад" попасть в главное "слуховое" окно Алисы и там уже задавать другие вопросы. Может есть какая то команда, которая сама этот навык запускает, а не вручную?

в навыке Иридиум, можно вообще не говорить фразу "Слушай Алиса"

Можно не запуская навык (но уже авторизовавшись в нем), сказать "Алиса, скажи Иридиум, включить свет в ...." - это не переключит контекст навыка, но выполнит команду.

Для Станции работает команда "Алиса, хватит".

Для чата на телефоне надо выйти "стрелочкой" - это реализация от Яндекс.

Когда говоришь: " Алиса, скажи иридиум включить свет...", Алиса сначала запускает навык Иридиум, затем выполняет команду, а обратно из навыка не выходит)

В станции это работает нормально, а в "диалогах".... Стоит Вам обратиться в службу техподдержки Яндекса

но уже удобней пользоваться

Добрый день! При заливке проекта через трансфер, сервер не коннектится с сервисом Алиса, теги Yandex Alice.Status и Yandex Alice.Online стоят 0. При загрузке с облака, все нормально

Добрый день!

Это корректное поведение сервера, т.к. для работы драйвера Яндекс.Алиса необходима связь с нашим облаком по уникальному идентификатору проекта, а при передаче через трансфер облако ничего не знает о таком проекте и идентификатор не определен. Любой подобный облачный сервис может тестироваться только через загрузку из облака - это ограничение не обойти.

Тогда эта особенность должна отражаться в документации)

Или, как вариант, ключ облака от Иридиум прописывается изначально в сервере и потом при заливке через трансфер, сервер сам коннектиться к облаку Иридиум и все остальные облачные сервисы.

Допуская "ручное" формирование ключа Вы открываете дорогу ошибкам и злоупотреблениям... Давайте управлять чужой Алисой с неопознанного аккаунта и проекта ;))

Здравствуйте! 

В новом релизе 1.3.3 мы добавили в Алису возможность задавать произвольный ответ. 

Да, уже протестировал в субботу, это на самом деле классная штука. Я правильно понял ответ от Алисы может быть не более 1024 символа? И будет ли работать символ "/n" для переноса строки в ответе от Алисы. И еще, заметил в логах сервера после каждого ответа Алисы появляется сообщение "Error in Alice Answer. Wrong use of square brackets"

  1. Все верно, ответ 1024 символа.
  2. Перенос строки не тестировали, вопрос скорее в техподдержку Яндекс.
  3. Ошибка появляется, если не задана фонетика ответа в квадратных скобках (позволяет "очеловечить" произношение)
в настройках Алисы в квадратных скобках есть текст. Или еще нужно добавить в переменную Answer квадратные скобки?
Скобки в стандартном ответе? А ошибка тоже на стандартный ответ?
Скобки стоят в стандартном ответе в настройках драйвера Алисы. А ответы у меня формируются в зависимости от вопроса, т.е. не стандартные.
Значит описание ошибки соответствует реальности: заполните произношение в ответах и ошибка исчезнет.

Что то Алиса все выходные не работала, ошибка базы данных Иридиум. А в логах сервера вываливается CCustomDevice(YANDEX ALICE(65535)): StartConnect() каждые 0,3 секунды и похоже сервак из-за этого сам перезагружается

Такое частое переподключение обычно означает отсутствие лицензии. Проверьте таковую... Само облако работает нормально.

Возможно ли на смартфоне на главный экран вынести иконку Алисы с навыком Иридиума?

Вопрос в техподдержку Яндекса. В документации мы такой возможности не нашли...

Когда будет реализовано контекстное управление для Алисы?

Но оно не работает.

Что конкретно не работает? И как оно в принципе может не работать? )))

  1. Вы создаете фидбек "Я на кухне", который устанавливает некий системный токен в проекте - это точно будет работать как и обычная команда. Не забываем при установке этого токена сбрасывать остальные, чтобы не было ситуации, что вы одновременно в двух контекстах.
  2. Вы создаете фидбек "Включи свет" на который подписываете несколько рутин, в каждой из которых установлен параметр BUT ONLY IF. Например, для кухни это будет проверка установленного токена из пункта 1.

Что здесь может не сработать???

Уже пробовали в одном проекте это реализовать. Алисе говоришь "Я в спальне", а затем "Включи свет", так включается свет во всех комнатах. Хотя создан виртуальный тег Контекст и созданы сценарии для каждой комнаты, в которых установлен параметр BUT ONLY IF.


свет в спальне.JPG
свет в кинозале.JPG
свет в кабинете.JPG

Покажите скрин, где задается значение тега "Контекст"

Это просто тег, а где обработка команды?

Выше в пункте один я вам описывал, что на поступление фидбека "Я в спальне" должна сработать рутина, которая установит значение виртуального тега Контекст (не рекомендую использовать русские буквы в названии тегов) в значение "Я в спальне", которое вы проверяете в последующих правилах.

А где это описано в документации? И правильно это сделать?

Как правильно это всё сделать?

Рутины выше в скриншотах.

+1

Документацию дополним, но это простейший алгоритм:

  1. Создайте в драйвере Яндекс.Алиса фидбеки: "Я в спальне", "Я в кухне", "Я в детской".
  2. Создайте виртуальные переменные: cont_bedroom, cont_kitchen, cont_childrens
  3. Создайте рутину 1: WHEN Алиса.Фидбек.Я в спальне == 1 THEN cont_bedroom = 1, cont_kitchen = 0, cont_childrens = 0
  4. Создайте рутину 2: WHEN Алиса.Фидбек.Я в кухне == 1 THEN cont_bedroom = 0, cont_kitchen = 1, cont_childrens = 0
  5. Создайте рутину 3: WHEN Алиса.Фидбек.Я в детской == 1 THEN cont_bedroom = 0, cont_kitchen = 0, cont_childrens = 1
  6. Создайте в драйвере Яндекс.Алиса фидбек: "Включи свет"
  7. Создайте рутину 6: WHEN Алиса.Фидбек.Включи свет == 1 THEN Команда.ВключиСветСпальня, BUT_ONLY_IF cont_bedroom = 1
  8. Создайте рутину 7: WHEN Алиса.Фидбек.Включи свет == 1 THEN Команда.ВключиСветКухня, BUT_ONLY_IF cont_kitchen = 1
  9. Создайте рутину 8: WHEN Алиса.Фидбек.Включи свет == 1 THEN Команда.ВключиСветДетская, BUT_ONLY_IF cont_childrens = 1

Так понятнее?

Имеете ввиду создать виртуальные теги cont_bedroom, cont_kitchen, cont_childrens?

Или виртуальные каналы?

Дело в том, что при создании рутины в разделе THEN возможно выбрать только виртуальные каналы. А в разделе BUT ONLY IF возможно выбрать только виртуальные теги. 


Или это лучше через скрипты реализовать?

+1

Извините, пропустил пункт про шлюзование:

2. Создайте виртуальные каналы и теги с одинаковыми названиями: cont_bedroom, cont_kitchen, cont_childrens

2А. Создайте скриптовой модификатор

(документация)

function virtual_to_virtual (in_Type, in_Name, in_Value) 
{
   var namepart = in_Name.split(".");  
   IR.SetVariable("Server.Tags." + in_Name, in_Value);
   return in_Value;
}

2В. Для каждого канала из п.2 пропишите в свойстве Script Modifier название функции из скрипта virtual_to_virtual

Теперь работает!

Но появился другой недочет. Когда Алисе говоришь "Я в спальне", а затем "Включи свет" - свет включается только в спальне. А когда говоришь "Включи весь свет", чтобы включить свет во всей квартире, то команда выполняется успешно, но Алиса говорит: "Команда неизвестна".

Как это исправить?

Обратитесь с этим вопросом в техподдержку, и к тикету приложите проект, в котором все это происходит. Не забудьте указать версию сервера и на какой платформе.

+1

Проблема решилась назначением ответа на команду "Выключи все" в рутине.

Подключил Алису со смарта
Взял скрипт из справочника, добавил команды управление
Свет включает, но говорит "команда неизвестна"
Хотя answer прописан и в переменную полученную команду записывает\

Что не так? Что забыл указать?

Разобрались, мой косяк, не до конца разобрал скрипт из примера.

+2

И вопрос, планируется ли что-то делать с обработкой команд Алисы, например запуск навыка Иридиум происходит 50 на 50
Говорю "Алиса попроси Иридий включить свет"
Алиса воспринимает "попроси ready включить свет"
"Иридий" уж больно слово неудобное

А какое слово было бы удобнее? ))

Ну назовите Ирой, "Алиса попроси Иру включить свет" :)
Может к коллективному разуму обратиться, как удобней

Я и обращаюсь к коллективному разуму ))) Только придется не менять, а дублировать. Уже есть запущенные объекты с Алисой.

Алиса, попроси мелафон включить свет :)

А "попроси" обязательное условие от Алисы или можно менять фразу "Попроси Иридий"

Вопрос скорее к техподдержке Яндекс, пока можно именно "попросить" )))

а конекст под сриптами тоже можно сделать?

Конечно, в чем здесь сомнения?

Все таки не удобно пользоваться Яндекс.Станцией при управлении Иридием. В телефоне еще можно руками запустить навык и проговорить задание на выполнение, а в Станции ей надо говорить: "Запусти навык Иридиум" и к сожалению она плохо понимает эту фразу, отвечает "что мне за это будет" или ищет что-то непонятное. В таком варианте отпадает желание пользоваться управлением именно через Станцию. 
Но в настройках самой станции есть вкладка "Умный Дом", там можно добавлять как устройства самого Яндекса, так и сторонние. Если я правильно понимаю, то можно в этом случае управлять домом не через навык, а напрямую говоря ей команды. Можно ли как нибудь туда Иридий запихать?

Добрый день!

Удобство запуска навыка стоит "просить" от Яндекса, тут мы следуем придуманной модели для Алисы.

По вкладке "Умный дом" сейчас драйвер в доработке, в ближайшее время зарелизим новый функционал, но необходимо понимать, что там тоже немало ограничений....

ок, ждем релиза. Тут видимо сам Яндекс хочет, чтобы покупали их оборудование)

А какого плана новые ограничения?

Список поддерживаемых типов очень небольшой

Добрый день! Похоже в Яндекс произошли какие то изменения...Теперь когда Алиса слышать фразу связанную со "светом" она преднастроенно отвечает: "Я бы с радостью - но здесь нужны специальные устройства для умного дома", хотя действие настроенное в скрипте выполняет и в Log записывает, то что я ей отправляю в ответ. Всё работало нормально, до недавних пор.



Кто нибудь знает что то на счёт этого?