Как захватить распознанный текст из Echo?


13

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

Итак, как они это делают? Есть ли вызов API, который захватывает распознанный текст и сохраняет его где-нибудь?

Ответы:


8

Пользовательские навыки могут захватывать текст и отправлять их в API вашего навыка.

Если вы не совсем знакомы с тем, как работает Alexa Skills, вот краткое резюме:

  • Сначала вы регистрируете свой навык в Amazon , предоставляя схему намерений и примеры высказываний . Схема намерений определяет, какие действия могут быть выполнены, и слоты для пользовательских данных, которые будут отправлены в ваш API. Примеры высказываний предоставляют примеры того, как пользователь может инициировать каждое намерение.

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

  • Ваш сервер ответит (если все пойдет хорошо), а затем Alexa даст отзыв пользователю, который активировал ваш навык.

AMAZON.LITERALСлот позволяет принимать практически любой вход. Обратите внимание, что в настоящее время он поддерживается только в английском (США) регионе - английский (Великобритания) и немецкий язык не могут использоваться AMAZON.LITERAL.

Ваша схема намерений может выглядеть так:

{
  "intents": [
    {
      "intent": "SaveTodo",
      "slots": [
        {
          "name": "Todo",
          "type": "AMAZON.LITERAL"
        }
      ]
    }
  ]
}

И ваши примерные высказывания могут быть такими:

SaveTodo remind me to {fetch the shopping|Todo}
SaveTodo remind me to {write my English essay|Todo}
SaveTodo remind me to {buy some dog food tomorrow|Todo}

При использовании AMAZON.LITERALвам необходимо предоставить множество образцов высказываний - по крайней мере один образец для каждой возможной длины ввода, но в идеале - больше. Документация Amazon предполагает, что вы должны стремиться к сотням образцов для слотов, где вы могли бы принимать различные типы входных данных.

Это кажется немного утомительным, но если вы этого не сделаете, вряд ли ваш навык будет хорошо распознавать текст. Возможно, вы могли бы сгенерировать выборочные высказывания из данных клиентов (при условии, что личная информация была удалена заранее!), Чтобы наиболее распространенные высказывания были в ваших выборках - я подозреваю, что Alexa будет слегка склонна к распознаванию высказываний, подобных образцам.

Однако Amazon не одобряет использование AMAZON.LITERALслотов и предпочитает использовать пользовательские типы слотов , которые требуют перечисления возможных входных данных. Важно помнить, что:

Пользовательский тип слота не является эквивалентом перечисления. Значения за пределами списка все еще могут быть возвращены, если они распознаются системой понимания устной речи. Хотя входные данные для пользовательского типа слота взвешиваются по отношению к значениям в списке, они не ограничиваются только элементами в списке. Ваш код по-прежнему должен включать проверку и проверку ошибок при использовании значений слотов.


1
Я считаю, что Amazon сохраняет буквальные слоты, так как многие разработчики протестовали против их потери. Но использование буквального слота предотвратит публикацию ваших навыков, поскольку Amazon не хочет, чтобы разработчики могли «прислушиваться» к пользователям. Но вы все равно можете использовать его в личном умении.
Грэм Чиу

1
@GrahamChiu: у меня сложилось впечатление, что буквальные слоты по-прежнему разрешены даже в опубликованных навыках (см. Это сообщение в блоге : «На основе отзывов разработчиков мы не будем удалять тип слота LITERAL, и вы можете продолжать передавать навыки, включающие его функциональность».) , Я сам не пробовал, поэтому, если вы можете подтвердить в любом случае, это может быть полезно для будущих посетителей.
Аврора0001
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.