Как и вы, вы должны использовать 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, чтобы записать каждую цифру отдельно.