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