Для захвата речевого ввода произвольной формы (а не определенного списка возможных значений) вам необходимо использовать тип слота AMAZON.LITERAL
. Документация Amazon для типа слота Literal описывает вариант использования, аналогичный вашему, когда создается навык, позволяющий взять любую фразу и опубликовать ее на сайте социальных сетей. Это делается путем создания намерения StatusUpdate:
{
"intents": [
{
"intent": "StatusUpdate",
"slots": [
{
"name": "UpdateText",
"type": "AMAZON.LITERAL"
}
]
}
]
}
Поскольку он использует тип слота AMAZON.LITERAL
, это намерение сможет захватить любую произвольную фразу. Однако, чтобы гарантировать, что речевой движок будет выполнять достойную работу по улавливанию реальных фраз, вам необходимо предоставить множество примеров высказываний, которые напоминают те вещи, которые вы ожидаете от пользователя.
Учитывая, что в описанном вами сценарии вы пытаетесь захватить очень динамические фразы, в документации есть пара вещей, которым вы захотите уделить особое внимание:
Если вы используете тип AMAZON.LITERAL для сбора текста произвольной формы с большими вариациями количества слов, которые могут быть в слоте, обратите внимание на следующее:
- Чтобы охватить весь этот диапазон (минимум, максимум и все между ними), потребуется очень большой набор образцов. Постарайтесь предоставить несколько сотен или более образцов для учета всех вариаций слов значения слота, как указано выше.
- Держите фразы внутри слотов достаточно короткими, чтобы пользователи могли произнести фразу целиком, не делая паузы.
Длительный голосовой ввод может привести к снижению точности, поэтому избегайте разработки интерфейса разговорной речи, который требует для значения слота более нескольких слов. Фраза, которую пользователь не может произнести без паузы, слишком длинна для значения слота.
Тем не менее, вот снова пример Образца высказываний из документации:
StatusUpdate опубликует обновление {прибыло | UpdateText}
StatusUpdate опубликовать обновление {время ужина | UpdateText}
StatusUpdate опубликует обновление {выходит в обед | UpdateText}
... (еще образцы, показывающие фразы из 4-10 слов)
StatusUpdate опубликует обновление {собираюсь зайти в продуктовый магазин сегодня вечером | UpdateText}
Если вы предоставите достаточно примеров разной длины, чтобы дать точную картину диапазона ожидаемых пользовательских высказываний, тогда ваше намерение сможет точно фиксировать динамические фразы в реальных случаях использования, к которым вы можете получить доступ в слоте UpdateText
. Исходя из этого, вы сможете реализовать намерение, соответствующее вашим потребностям.
person
Sam Hanley
schedule
16.05.2016