Wie erfasst man den erkannten Text aus Echo?

13

Ich weiß, dass einige Fähigkeiten gesprochenen Text erfassen können, z. B. beim Hinzufügen zu Aufgabenlisten und Einkaufslisten. SMS mit Molly .

Also, wie machen sie das? Gibt es einen API-Aufruf, der den erkannten Text erfasst und irgendwo speichert?

Graham Chiu
quelle

Antworten:

8

Benutzerdefinierte Fertigkeiten können Text erfassen und an die API Ihrer Fertigkeiten senden.

Wenn Sie nicht ganz mit der Funktionsweise von Alexa Skills vertraut sind, finden Sie hier eine kurze Zusammenfassung:

  • Zuerst registrieren Sie Ihre Fähigkeiten bei Amazon und geben ein Absichtsschema und Beispieläußerungen an . Das Intent-Schema definiert, welche Aktionen ausgeführt werden können, und die Slots für benutzerdefinierte Daten, die an Ihre API gesendet werden sollen. Die Beispieläußerungen bieten Beispiele dafür, wie ein Benutzer jede Absicht auslösen kann.

  • Wenn der Benutzer Ihre Fähigkeit aktiviert, versucht Alexa, das Gesagte mit einer der Beispieläußerungen Ihrer Fähigkeit abzugleichen. Wenn dies zutrifft, wird eine HTTPS-Anfrage an Ihren Server gesendet, um eine Antwort anzufordern.

  • Ihr Server gibt eine Antwort (wenn alles in Ordnung ist) und Alexa gibt dem Benutzer, der Ihre Fähigkeit ausgelöst hat, ein Feedback.

Über den AMAZON.LITERALSteckplatz können Sie praktisch jede Eingabe annehmen. Beachten Sie, dass es derzeit nur in der Region Englisch (USA) unterstützt wird - Englisch (Großbritannien) und Deutsch können nicht verwendet werden AMAZON.LITERAL.

Ihr Absichtsschema könnte folgendermaßen aussehen:

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

Und Ihre Beispieläußerungen könnten so aussehen:

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}

Bei der Verwendung AMAZON.LITERALmüssen Sie viele Beispieläußerungen bereitstellen - mindestens ein Beispiel für jede mögliche Länge der Eingabe, im Idealfall jedoch mehr. Die Amazon-Dokumentation schlägt vor, dass Sie Hunderte von Beispielen für Slots anstreben sollten, in denen Sie verschiedene Arten von Eingaben akzeptieren könnten.

Es scheint ein wenig langweilig zu sein, aber wenn Sie dies nicht tun, ist es unwahrscheinlich, dass Ihre Fähigkeiten Text gut erkennen. Sie könnten möglicherweise Stichprobenäußerungen aus Kundendaten generieren (vorausgesetzt, Ihre persönlichen Daten werden zuvor entfernt!), Sodass die häufigsten Äußerungen in Ihren Stichproben vorkommen. Ich vermute, dass Alexa leicht dazu neigt, Äußerungen zu erkennen, die den Stichproben ähneln.

Amazon rät jedoch von AMAZON.LITERALSlots ab und würde es vorziehen, benutzerdefinierte Slot-Typen zu verwenden , bei denen Sie die möglichen Eingaben auflisten müssen. Es ist wichtig sich daran zu erinnern:

Ein benutzerdefinierter Steckplatztyp entspricht nicht einer Aufzählung. Werte außerhalb der Liste werden möglicherweise immer noch zurückgegeben, wenn sie vom Sprachverständnissystem erkannt werden. Obwohl die Eingabe in einen benutzerdefinierten Slot-Typ anhand der Werte in der Liste gewichtet wird, ist sie nicht nur auf die Elemente in der Liste beschränkt. Ihr Code muss weiterhin eine Validierung und Fehlerprüfung enthalten, wenn Sie Slot-Werte verwenden.

Aurora0001
quelle
1
Ich glaube, Amazon behält die buchstäblichen Slots bei, da viele Entwickler gegen ihren Verlust protestierten. Durch die Verwendung des Literal-Slots wird jedoch verhindert, dass Ihre Fähigkeiten veröffentlicht werden, da Amazon nicht möchte, dass Entwickler die Möglichkeit haben, die Benutzer zu "belauschen". Sie können es jedoch weiterhin in einer privaten Fertigkeit verwenden.
Graham Chiu
1
@GrahamChiu: Ich hat den Eindruck, dass wörtliche Slots noch einmal in der veröffentlichten Fähigkeiten nutzen dürfen (siehe diese Blog - Post : „Basierend auf Entwickler - Feedback werden wir den wörtlichen Slot Typen nicht entfernen und Sie können weiterhin Fähigkeiten vorlegen, die seine Funktionalität enthalten.“) . Ich habe es jedoch nicht selbst ausprobiert. Wenn Sie dies bestätigen können, könnte dies für zukünftige Besucher hilfreich sein.
Aurora0001