Заставь Алексу слушать цифры - PullRequest
0 голосов
/ 16 сентября 2018

Я бы хотел, чтобы Alexa слушал специальное число - слова , например, например:

  • один два три,
  • один два,
  • пять, шесть,
  • восемь, девять, десять,
  • одиннадцать

Итак, я создал это намерение с типом слотаAMAZON.NUMBER:

img


  1. Могу ли я заставить Алексу просто вызвать это намерение, если входные слова находятся наконкретный список? (Просто вызвать намерение, если вход «один два три» или «пять шесть», а не если вход, например, «девять одиннадцать»)

  2. Какя могу записать слова на моем сервере node.js, например, захватывая "один два три" вместо автоматического результата "123" = "onehundredtwentythree"?


skill.intent("numeric_input", function(request, response) {
  let inputID = request.slot("input").toLowerCase();
  response.shouldEndSession(false)
  console.log(inputID); // is "123"
})

Любая помощь будет очень признательна.

Ответы [ 3 ]

0 голосов
/ 17 сентября 2018

Как и вы, вы должны использовать AMAZON.Number тип слота.

Могу ли я заставить Alexa просто вызвать это намерение, если входные слова находятся в определенном списке?

Когда вы создаете пользовательский тип слота, необходимо понимать, что это обучающие данные для Alexa NLP (обработка на естественном языке). Предоставленные вами значения НЕ являются строгим перечислением или массивом, ограничивающим то, что может сказать пользователь. Это имеет два значения

1) слова и фразы, не входящие в значения вашего слота, будут переданы вам,

2) ваш код должен выполнить любую необходимую вам проверку, если сказанное неизвестно.

Всегда полезно проверить значения слотов на вашем бэкэнде. Если цифры не поддерживаются, ответьте соответствующим сообщением об ошибке, например

"Sorry I can proceed wiht Nine eleven, please give the correct number"

Таким образом, вы сообщите своим пользователям, что им нужно использовать другой номер. Если есть ввод числа, может войти любое число. Так что проверьте и направьте.

Как я могу перехватить слова на моем сервере node.js, например "перехватить" два три "вместо автоматического результата" 123 "= "Onehundredtwentythree"?

Если вы используете AMAZON.Number тип слота, значения будут иметь вид 123.

"numberSlot": {
    "name": "numberSlot",
    "value": "123",
    "confirmationStatus": "NONE"
}

Вы можете легко проверить 123 или преобразовать его в любую форму, как вам нужно.

автоматический результат "123" = "стосот двадцать три"?

Я действительно не понял этого. 123 не преобразуется автоматически в onehundredtwentythree. Если вы указываете на откровение, или как Алекса говорит 123, то это другой случай. Используйте <say-as interpret-as="digits">123</say-as> для вывода SSML, чтобы записать каждую цифру отдельно.

0 голосов
/ 11 октября 2018

1.Создайте свой слот2. Перейдите к массовому редактированию созданного пользовательского слота и вставьте цифры в буквы.Вы можете получить помощь по этой ссылке. Числа в письмах (Отфильтруйте числа, которые вам не нужны)3.Создайте пользовательское намерение, используя пользовательский слот

0 голосов
/ 16 сентября 2018

Если вы знаете, сколько цифр может иметь ваш ввод, я бы создал такие высказывания, как: {input}, {input}{input}, {input}{input}{input}.Конечно, это будет работать, только если вы знаете, что числовые последовательности имеют длину до трех чисел.

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

У меня есть еще одно предложение.Если вы знаете, этот пользователь может сказать только 1-9 цифр.Это не много, и вы можете создать пользовательский слот с этими значениями.В этом случае alexa вернет слова в ваш код, и вы можете заблокировать определенные номера, которые вы не хотите получать, например, одиннадцать. Custom slot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...