Направление Alexa к ответу на конкретное значение слота

Я определил пользовательские типы слотов в консоли разработчика Amazon, слот содержит список имен, как показано ниже.

homer simpson
ned flanders
principal skinner
comic book guy

Затем я определил образцы высказываний, как показано ниже.

PlayAudio to play {Name}

В конце концов, я хочу, чтобы пользователь мог сказать что-то похожее на следующее:

Алекса, попроси симпсонов сыграть гомера симпсона

Алекса, попроси симпсонов сыграть Неда Фландерса

Алекса, попроси симпсонов сыграть главного скиннера

Алекса, попроси симпсонов сыграть парня из комиксов

Конечно, очень высока вероятность того, что Alexa услышит имя неправильно, поэтому мне нужно иметь возможность сопоставить слышимое имя как можно ближе к одному из значений слота.

Как я могу это сделать, нужно ли мне закодировать это в функции или есть лучший способ?


person beninabox_uk    schedule 17.06.2017    source источник


Ответы (2)


Вы правы в том, что высока вероятность, что «Алекса неправильно услышит имя». Мое решение состоит в том, чтобы провести кучу проб и ошибок с людьми-тестировщиками, чтобы выяснить, каковы наиболее распространенные неправильные интерпретации, а затем исправить их жестким кодом.

Итак, я беру тестера, чтобы он произнес разные имена и записал, что они сказали. Затем я смотрю, что Alexa дает мне в качестве значения слота, и там, где есть расхождения, я добавляю жестко запрограммированную замену к своему навыку.

person Tom    schedule 17.06.2017
comment
Спасибо, Том за ваш ответ, я начал использовать тот же метод, поскольку я изо всех сил пытался найти какой-либо другой возможный способ. Большое спасибо! ???? - person beninabox_uk; 17.06.2017
comment
Ага, без проблем. Если вы не ждете других ответов, отметьте его как принятый. Спасибо. - person Tom; 18.06.2017

При использовании настраиваемых слотов есть вероятность, что Alexa предоставит значение, которого нет в списке. Это становится особенно проблематичным по мере увеличения размера списка. Использование функции бета-тестирования, как предложил Том, может помочь, но вы не сможете выявить все проблемы, и в конечном итоге это не будет масштабироваться.

Я обнаружил, что единственный способ полностью убедиться, что вы получаете значение из своего списка, - это иметь полный список в навыке и каждый раз сверяться с ним. Чтобы проверить, точное соответствие не всегда лучший вариант, и я пробовал два подхода:

  • Функции String Edit Distance: хорошо работают, когда пользователь может произносить неполные высказывания или добавлять слова к высказываниям в вашем списке. Проверьте: https://en.wikipedia.org/wiki/Edit_distance
  • Акустический / фонетический: относительно простой в реализации, может лучше работать для определения иностранных слов или имен собственных. Вы можете предварительно обработать свой список для быстрого сравнения. Проверьте: https://en.wikipedia.org/wiki/Soundex
person Josep Valls    schedule 19.06.2017