Как мне тренировать таймера с голосом? - PullRequest
1 голос
/ 09 января 2020

[bixby] Моя капсула Bixby работает нормально, если пользователь выбирает время на экране, а не если он пытается выбрать его голосом. Я следовал обучению, предлагаемому для «продолжительности» в этом примере, но, кажется, оно не применимо введите здесь описание ссылки для «временной»

структуры (BedTime) {description (*) 1005 * ОПИСАНИЕ ) role-of (time.Time)}

action (PrepareUserData) {description ("Подготовить данные пользователя") type (Search) collect {// Сохраните это на месте, чтобы получить любой ранее сохраненные данные UserData Computed-Input (previousUserData) {тип (UserData) мин. (обязательный) max (один) вычислить {intent {goal: GetUserData}}}}

    input (username) {
        type (UserName)
        min (Required) max (One)
    }

    input (wakeuptime) {
        type (WakeupTime)
        min (Required) max (One)
    }

    input (bedtime) {
        type (BedTime)
        min (Required) max (One)
    }

    input (message) {
        type (Message)
        min (Required) max (One)
    }
}
output (UserData)

}

enter image description here

Этот тренинг "не изучен", и когда я вызываю высказывание, он продолжает спрашивать меня снова

Modified training

[! [Обучение пробуждению [][4]] 4 ] [5]

[5]: https://i.stack.imgur.com/YQvlg.jpgenter код здесь

1 Ответ

5 голосов
/ 10 января 2020

Без действительного кода капсулы я могу только строить догадки.

Во-первых, концепция должна быть выражением viv.time.DateTimeExpression для лучшей работы с естественным языком, таким как «9 вечера сегодня вечером». Вы можете прочитать больше о viv.time.DateTimeExpression здесь .

Во-вторых, высказывание "время сна" не является ожидаемым входным значением NL для времени. Он должен быть более конкретным c, например, «9 вечера» или «8 утра в среду» или «8 вечера завтра».

Третий топи c больше похож на хедз-ап. Если для viv.time.DateTimeExpression использовать такое высказывание, как «среда 9 вечера», вы можете получить более 1 возвращаемого значения. Это сбивает с толку, но понятно, поскольку это может быть уже прошедшая среда или грядущая среда. Поэтому разработчик должен принять это во внимание и обработать такой случай при моделировании или JS.

Я потратил некоторое время, чтобы сделать капсулу для образца. Это не сложно сделать, за исключением следующих двух уловов:

  1. Цель должна определяться пользователем, поэтому не может быть viv.time.Time. Должно быть, MyTime - это ролл viv.time.Time.
  2. NL "9 вечера" должен рассматриваться как выражение viv.time.DateTimeExpression, поэтому для MyTime (role-of viv.time.Time) требуется дополнительный шаг

Пожалуйста смотрите прикрепленный скриншот. Для полной капсулы, которую вы можете проверить, вы можете скачать ее . training example

...