Home > Alexa > Alexa Skills Kit

Define the Interaction Model in JSON and Text

Introduction

With the Alexa Skills Kit, you can add new capabilities to Alexa by creating custom skills. When you create a custom skill, you implement the logic for the skill, and you also define the voice interface through which users interact with the skill. To define the voice interface, you map users’ spoken input to the intents your cloud-based service can handle.

To declare this mapping, you supply the following inputs:

  1. Intents: An intent represents an action that fulfills a user’s spoken request. Intents can optionally have arguments called slots. Intents are specified in a JSON structure called the intent schema.
  2. Sample utterances: A set of likely spoken phrases mapped to the intents. This should include as many representative phrases as possible.
  3. Custom slot types: A representative list of possible values for a slot. Custom slot types are used for lists of items that are not covered by one of Amazon’s built-in slot types.
  4. Dialog model (optional): A structure that identifies the steps for a multi-turn conversation between your skill and the user to collect all the information needed to fulfill each intent. This simplifies the code you need to write to ask the user for information.

You enter this information in the developer portal on the Interaction Model page. For details, see Registering and Managing Custom Skills in the Developer Portal.

The following sections explain how to use each of these resources to define an effective voice interface. If your skill also has a screen interface, then your voice interface must also be designed to also work with a screen. See: Voice Design Guide

Intent Schema

An intent represents an action that fulfills a user’s spoken request. Intents can optionally have arguments called slots. For example, the intent schema for “Daily Horoscopes” might define an intent named GetHoroscope that has slots named Sign and Date. A user can then say:

User: Alexa, ask Daily Horoscopes for the horoscope for Pisces today.

The Alexa service sends the Daily Horoscopes service a GetHoroscope intent with the value “pisces” in the Sign slot and the current date in the Date slot. The service can then look up today’s horoscope for Pisces and send back text to convert to speech.

You define the set of valid intents in a JSON structure called an intent schema. For example, the following intent schema defines two intents: GetHoroscope and GetLuckyNumbers:

{
  "intents": [
    {
      "intent": "GetHoroscope",
      "slots": [
        {
          "name": "Sign",
          "type": "LIST_OF_SIGNS"
        },
        {
          "name": "Date",
          "type": "AMAZON.DATE"
        }
      ]
    },
    {
      "intent": "GetLuckyNumbers"
    }
  ]
}

Each intent has two properties:

  • The intent property gives the name of the intent.
  • The slots property lists the slots associated with that intent.

In the above example, the GetHoroscope intent defines two slots, one named Sign, the other named Date.

Slots are defined with different types. For instance, the Sign slot in the above example is defined as a custom type LIST_OF_SIGNS to reference a list of horoscope sign values provided for the slot (Aries, Capricorn, etc.). The Date slot uses Amazon’s built-in AMAZON.DATE type to convert words that indicate dates (such as “today”) a date format.

Note that the Alexa Skills Kit provides a library of built-in intents for common actions. If you want to implement these, you include them in your intent schema just like your own custom intents. For details, see Implementing the Built-in Intents.

Slot Types

Each slot you include in an intent must have a slot type. This can be either a built-in slot type or a custom slot type.

Built-in Slot Types

Amazon provides built-in support for a large library of slot types. This includes:

All built-in types have the prefix AMAZON.

You don’t need to provide sample values for the built-in slot types. Include the slot name in the sample utterances file as necessary. For other data types, a custom slot type is recommended.

An additional built-in slot type is supported just for English (US) skills: AMAZON.LITERAL. This type is primarily provided for compatibility with earlier versions of the Alexa Skills Kit.

Note that slot type behavior has changed since earlier versions of the Alexa Skills Kit. For information about the differences, backward compatibility, and migrating a skill from the previous version, see Migrating to the Improved Built-in and Custom Slot Types.

Custom Slot Types

A custom slot type defines a list of representative values for the slot. Custom slot types are used for lists of items that are not covered by Amazon’s built-in set of types and are recommended for most use cases. When using a custom type, you define the type and its values, and specify the name of the type as part of the intent definition.

For example, the custom slot type for a horoscope skill might be named LIST_OF_SIGNS and have these values:

Aries
Taurus
Gemini
Cancer
Leo
Pisces
Virgo
Libra
Scorpio
Sagittarius
Capricorn
Aquarius

The set of custom values can be anything supported by your skill’s handling of the slot as long as it can be spoken by a user, although words not found in a typical dictionary for the skill’s language may not be recognized.

Slot values are sent to your skill in written format. For example, both “fire h.d. 7” and “fire h.d. seven” would be sent to your skill as “Fire HD7”. For better recognition, acronyms and other phrases involving spoken letters should either be all caps (“HD”) or separated by periods (“h.d.”). Using lowercase for initialisms may lead to unreliable recognition since the spoken form may not correctly be detected. See examples.

Note that a custom slot type is not the equivalent of an enumeration. Values outside the list are still returned if recognized by the spoken language understanding system. Although input to a custom slot type is weighted towards the values in the list, it is not constrained to just the items on the list. Your code still needs to include validation and error checking when using slot values. See the “Handling Possible Input Errors” section of Handling Requests Sent by Alexa.

For recommendations for custom slot type values, see Custom Slot Type Values.

A custom slot type can be used for multiple slots. For example, suppose the horoscope skill had an additional intent, MatchSign, that compared two Zodiac signs. This intent defines two slots, FirstSign and SecondSign. These slots can both use the same custom LIST_OF_SIGNS slot type:

{
  "intents": [
    {
      "intent": "GetHoroscope",
      "slots": [
        {
          "name": "Sign",
          "type": "LIST_OF_SIGNS"
        },
        {
          "name": "Date",
          "type": "AMAZON.DATE"
        }
      ]
    },
    {
      "intent": "MatchSign",
      "slots": [
        {
          "name": "FirstSign",
          "type": "LIST_OF_SIGNS"
        },
        {
          "name": "SecondSign",
          "type": "LIST_OF_SIGNS"
        }
      ]
    },
    {
      "intent": "GetLuckyNumbers"
    }
  ]
}

Sample Utterances

Each possible sample utterance is assigned to one of the defined intents. For example, the following snippet from a sample utterances file maps four possible phrases to the GetHoroscope intent, two phrases to the GetLuckyNumbers intent, and two phrases to the MatchSign intent (in practice, many more utterances are required than shown in this example):

GetHoroscope what is the horoscope for {Sign}
GetHoroscope what will the horoscope for {Sign} be on {Date}
GetHoroscope get me my horoscope
GetHoroscope {Sign}
...
GetLuckyNumbers what are my lucky numbers
GetLuckyNumbers tell me my lucky numbers
...
MatchSign do {FirstSign} and {SecondSign} get along
MatchSign what is the relationship between {FirstSign} and {SecondSign}

Note that you do not need to provide sample utterances for any of the built-in intents, such as AMAZON.HelpIntent.

Sample Utterance Syntax

Each line of a sample utterances file consists of two fields separated by tabs or spaces:

  • The name of the intent on the left.
  • The phrase a user might speak to signal that intent on the right.

Slots are arguments to intents. In each sample utterance, for all slot types except AMAZON.LITERAL, represent a slot value as the slot name in curly braces: {SlotName}. The AMAZON.LITERAL slot type also requires word values for the slot inline: {slot value|SlotName}.

For example, consider this sample in the file:

"what will the horoscope for {Sign} be on {Date}" 

In this utterance, the slots {Sign} and {Date} serve as arguments to the GetHoroscope intent, and are placed as variables in this utterance pattern. Possible values for {Sign} are taken from the custom list LIST_OF_SIGNS and possible values for {Date} are taken from the Alexa Skill Kit’s built-in support for dates. This allows the user to give input such as:

"what will the horoscope for Leo be on Tuesday" 

The Alexa Skills Kit automatically generalizes input based on the custom and built-in slot types so just the specification of one pattern allows all forms of input against that pattern. However, it’s still important to consider variations in the utterance patterns. For example, to cover the following utterance:

"what will the horoscope for libra be tomorrow" 

the following pattern should be added to the sample utterances file (where “on” is no longer necessary):

"what will the horoscope for {Sign} be {Date}". 

For more guidance on specifying utterance patterns, see Best Practices for Sample Utterances and Custom Slot Type Values.

An individual utterance does not need to use every slot defined for an intent. The schema for the GetHoroscope intent shown in the above example defines both a Sign slot and a Date slot. The utterance “what is the horoscope for {Sign}” only uses the Sign slot, while the utterance “get me my horoscope” doesn’t use any slots at all. When users speak these phrases, the same intent is sent, but with null slot values.

As a general practice, look out for typos and spelling errors. Don’t forget the apostrophe (‘) in “what’s” and “who’s”, and watch out for mistakes introduced by directly copying and pasting from written language sources.

Next Steps

Definieren der Sprachschnittstelle

Einleitung

Mit dem Alexa Skills Kit können Sie die Fähigkeiten von Alexa erweitern, indem Sie benutzerdefinierte Skills hinzufügen. Sie implementieren nicht nur die Logik für einen neuen benutzerdefinierten Skill, sondern auch die Sprachschnittstelle, die Ihre Benutzer mit dem Skill verwenden, um die neuen Funktionen zu nutzen.

Sie definieren diese Sprachschnittstelle, indem Sie die gesprochenen Eingaben des Benutzers den Absichten zuordnen, die Ihr cloudbasierter Service umsetzen kann.

Zur Deklaration dieser Zuordnung übergeben Sie zwei Eingaben:

  1. Ein Absichtsschema: Eine JSON-Struktur, in der eine Gruppe von Absichten deklariert wird, die Ihr Service akzeptiert und verarbeitet.
  2. Die gesprochenen Eingabedaten:
    • Musteräußerungen: Eine strukturierte Textdatei, die die Absichten den wahrscheinlich gesprochenen Phrasen zuordnet und so viele repräsentative Phrasen wie möglich enthält.
    • Benutzerdefinierte Werte (erforderlich für die Verwendung mit benutzerdefinierten Slots): Eine repräsentative Liste von Werten für bestimmte Elemente, die von Ihrem Skill benutzt werden und auf die bei der Verwendung eines benutzerdefinierten Slot-Typs in den Äußerungen verwiesen wird.

Sie geben diese Informationen im Entwicklerportal auf der Seite Interaktionsmodell ein. Weitere Informationen erhalten Sie unter dem Thema Benutzerdefinierte Skills registrieren und verwalten im Entwicklerportal.

In den folgenden Abschnitten wird erklärt, wie Sie diese Ressourcen einsetzen, um eine wirksame Sprachschnittstelle zu definieren.

Das Absichtsschema

Im Alexa-Kontext bezeichnet eine Absicht eine Aktion, die eine gesprochene Anforderung eines Benutzers umsetzt.Absichten können mit Argumenten versehen werden, den sogenannten Slots. Beispiel: Das Absichtsschema für „Tageshoroskop" kann eine Absicht mit der Bezeichnung GetHoroscope definieren, die einen Slot namens GetLuckyNumbers enthält. Wenn ein Benutzer sagt „Alexa, rufe beim Astro Dienst das heutige Horoskop für Fische ab“, sendet der Alexa Service eine Absicht GetHoroscope mit dem Wert „Fische“ im Slot Sign an den Tageshoroskop-Service. Wenn der Service die Absicht GetHoroscope erhält, kann er das Horoskop für Fische suchen und den Text zurücksenden, damit dieser in Sprache umgewandelt wird.

Sie definieren die Gruppe gültiger Absichten in einer JSON-Struktur mit der Bezeichnung Absichtsschema. Das folgende Absichtsschema definiert beispielsweise zwei Absichten: GetHoroscope und GetLuckyNumbers:

{
  "intents": [
    {
      "intent": "GetHoroscope",
      "slots": [
        {
          "name": "Sign",
          "type": "LIST_OF_SIGNS"
        },
        {
          "name": "Date",
          "type": "AMAZON.DATE"
        }
      ]
    },
    {
      "intent": "GetLuckyNumbers"
    }
  ]
}

Jede Absicht hat zwei Eigenschaften:

  • Die Eigenschaft intent gibt den Namen der Absicht an.
  • Die Eigenschaft slots listet die mit dieser Absicht verknüpften Slots auf.

Im obigen Beispiel definiert die Absicht GetHoroscope zwei Slots. Der eine heißt Sign, der andere Date.

Slots werden mit verschiedenen Typen definiert. Beispiel: Der Slot Sign, der im obigen Beispiel gezeigt wird, ist als benutzerdefinierter Typ LIST_OF_SIGNS definiert, der auf eine Liste von Sternzeichen verweist, die für den Slot bereitgestellt wird (Schütze, Steinbock usw.). Der Slot Date wandelt einen vom Benutzer gesprochenen Monatsnamen mithilfe des integrierten Datentyps AMAZON.DATE in ein Datum um.

Beachten Sie, dass das Alexa Skills Kit eine Sammlung von integrierten Absichten für besonders häufige Aktionen enthält. Wenn Sie diese Absichten implementieren möchten, müssen Sie sie ebenso wie Ihre eigenen benutzerdefinierten Absichten in Ihr Absichtsschema einbeziehen. Weitere Hinweise finden Sie unter Implementieren der integrierten Absichten.

Die gesprochenen Eingabedaten

Die Zuordnung der Absichten und der typischen Äußerungen, mit denen diese Absichten formuliert werden, erfolgt durch das Hinzufügen von Wertgruppen für alle benutzerdefinierten Slots, die von Ihrem Skill unterstützt werden, und einer Liste mit Musteräußerungen.

Integrierte Slot-Typen

Amazon bietet integrierte Unterstützung für die folgenden Slot-Typen:

  • AMAZON.DATE wandelt Wörter, die einen Datumsbezug („heute“, „morgen“ oder „Juli“) haben, in ein Datumsformat um (beispielsweise „2015-07-00T9“).
  • AMAZON.DURATION wandelt Wörter, die eine Dauer angeben („5 Minuten“) in eine numerische Dauer um („PT5M“).
  • AMAZON.FOUR_DIGIT_NUMBER bietet die Erkennung von vierstelligen Zahlen, beispielsweise Jahreszahlen.
  • AMAZON.NUMBER wandelt ausgeschriebene Zahlen („fünf“) in Ziffern um (beispielsweise „5“) um.
  • AMAZON.TIME wandelt Wörter, die eine Zeitangabe enthalten („vier Uhr morgens“, „zwei Uhr nachmittags“) in einen Zeitwert („04:00“, „14:00“) um.
  • AMAZON.US_CITY bietet die Erkennung großer Städte in den USA. Alle Städte mit mehr als 100.000 Einwohnern sind enthalten. Sie können den Typ erweitern, um gegebenenfalls weitere Städte einzubeziehen.
  • AMAZON.US_FIRST_NAME bietet die Erkennung Tausender Vornamen basierend auf Zensus- und Sozialversicherungsdaten. Sie können den Typ erweitern, um gegebenenfalls weitere Namen einzubeziehen.
  • AMAZON.US_STATE bietet die Erkennung von US-Bundesstaaten, Territorien sowie des District of Columbia. Sie können den Typ erweitern, um gegebenenfalls weitere Bundesstaaten einzubeziehen.

Weitere Details und Beispiele finden Sie im Abschnitt „Slot-Typen“ unter Referenz für das benutzerdefinierte Interaktionsmodell.

Wenn Ihr Skill einen dieser Typen verwendet, müssen Sie keine Beispielwerte bereitstellen. Referenzieren Sie gegebenenfalls Ihre Slots dieses Typs in der Datei der Musteräußerungen. Für andere Datentypen wird ein benutzerdefinierter Slot-Typ empfohlen. Beachten Sie, dass alle integrierten Typen mit dem vorangestellten AMAZON-Namespace bezeichnet sind.

Beachten Sie, dass sich das Verhalten von Slot-Typen gegenüber früheren Versionen des Alexa Skills Kit geändert hat. Informationen über Unterschiede, Rückwärtskompatibilität und Migration eines Skills aus früheren Versionen finden Sie unter dem Thema Migration zu den verbesserten integrierten und benutzerdefinierten Slot-Typen.

Benutzerdefinierte Slot-Typen

Ein benutzerdefinierter Slot-Typ wird für Elemente verwendet, die von den integrierten Slot-Typen von Amazon nicht erfasst werden. Er wird in den meisten Fällen empfohlen, in denen ein Slot-Wert eine Gruppe möglicher Werte darstellt. Für den Slot-Typ LIST_OF_SIGNS im Horoskopbeispiel oben wäre die Liste der benutzerdefinierten Werte:

Widder
Stier 
Zwillinge
Krebs
Löwe
Fische
Jungfrau
Waage
Skorpion
Schütze
Steinbock
Wassermann

Die Gruppe benutzerdefinierter Werte kann alles sein, was in der Verarbeitung des Slots durch Ihren Skill unterstützt wird. Voraussetzung ist nur, dass der Wert von einem Benutzer ausgesprochen werden kann. Wörter, die in einem herkömmlichen Wörterbuch nicht enthalten sind, werden aber möglicherweise nicht erkannt.

Slot-Werte werden in Textform an Ihren Skill geschickt.Beispielsweise werden „Fire HD 7“, „Fire HD sieben“ und „Fire HD7“ an Ihren Skill übermittelt. Eine bessere Erkennung erreichen Sie, wenn Abkürzungen und andere Phrasen mit ausgesprochenen Buchstaben („HD“) in Großbuchstaben geschrieben oder durch Punkte getrennt werden („h.d.“). Wenn Sie für Abkürzungen Kleinbuchstaben verwenden, könnte die Erkennung unzuverlässig werden, da die gesprochene Form möglicherweise nicht richtig erkannt wird. Beispiele finden Sie im Abschnitt „Syntax für den benutzerdefinierten Slot-Typ“ unter dem Thema Referenz für das benutzerdefinierte Interaktionsmodell.

Empfehlungen für die Werte eines benutzerdefinierten Slot-Typs finden Sie nachstehend unter Benutzerdefinierte Slot-Werte.

Ein benutzerdefinierter Slot-Typ ist keine Aufzählung. Werte, die nicht in der Liste stehen, können trotzdem zurückgegeben werden, wenn das Spracherkennungssystem sie erkennt. Obwohl die Eingabe in einem benutzerdefinierten Slot-Typ anhand der Werte in der Liste bewertet wird, besteht keine Einschränkung auf die in der Liste enthaltenen Werte. Ihr Programmcode muss Validierungs- und Fehlerprüfungsroutinen enthalten, wenn Sie Slot-Werte verwenden.Weitere Informationen finden Sie im Abschnitt „Verarbeitung möglicher Eingabefehler“ unter dem Thema Verarbeitung der von Alexa gesendeten Anforderungen.

Ein benutzerdefinierter Slot-Typ kann für mehrere Slots verwendet werden.Angenommen, der Horoskop-Skill hat eine zusätzliche Absicht MatchSign, die zwei Sternzeichen vergleicht. Diese Absicht definiert zwei Slots, FirstSign und SecondSign. Diese Slots können beide denselben Slot-Typ LIST_OF_SIGNS verwenden:

{
  "intents": [
    {
      "intent": "GetHoroscope",
      "slots": [
        {
          "name": "Sign",
          "type": "LIST_OF_SIGNS"
        },
        {
          "name": "Date",
          "type": "AMAZON.DATE"
        }
      ]
    },
    {
      "intent": "MatchSign",
      "slots": [
        {
          "name": "FirstSign",
          "type": "LIST_OF_SIGNS"
        },
        {
          "name": "SecondSign",
          "type": "LIST_OF_SIGNS"
        }
      ]
    },
    {
      "intent": "GetLuckyNumbers"
    }
  ]
}

Die Datei mit den Musteräußerungen

Jede mögliche Musteräußerung wird einer gewünschten Absicht zugeordnet. Der folgende Auszug aus einer Datei mit Musteräußerungen ordnet vier mögliche Phrasen der Absicht GetHoroscope zu, zwei Phrasen der Absicht GetLuckyNumbers und zwei Phrasen der Absicht MatchSign. In der Praxis sind aber viel mehr Äußerungen erforderlich als in diesem Beispiel gezeigt wird:

GetHoroscope what is the horoscope for {Sign}
GetHoroscope what will the horoscope for {Sign} be on {Date}
GetHoroscope get me my horoscope
GetHoroscope {Sign}
...
GetLuckyNumbers what are my lucky numbers
GetLuckyNumbers tell me my lucky numbers
...
MatchSign do {FirstSign} and {SecondSign} get along
MatchSign what is the relationship between {FirstSign} and {SecondSign}

Beachten Sie: Für die integrierten Absichten, beispielsweise AMAZON.HelpIntent, müssen Sie keine Musteräußerungen verfassen.

Syntax für Musteräußerungen

Jede Zeile einer Datei mit Musteräußerungen besteht aus zwei Feldern, die durch Tabulatoren oder Leerzeichen getrennt sind:

  • Links steht der Name der Absicht.
  • Auf der rechten Seite steht die Phrase, die ein Benutzer äußert, um die Absicht zu formulieren.

Slots sind Argumente für Absichten. Bei jeder Musteräußerung stellen Sie einen Slot-Wert als Slot-Namen in geschweiften Klammern dar: {SlotName}.

Sehen Sie sich beispielsweise diesen Ausschnitt der Datei an:

"what will the horoscope for {Sign} be on {Date}" 

In dieser Äußerung dienen die Slots {Sign} und {Date} als Argumente für die Absicht GetHoroscope und werden in diesem Äußerungsmuster als Variable gesetzt. Mögliche Werte für {Sign} werden der benutzerdefinierten Liste LIST_OF_SIGNS entnommen und mögliche Werte für {Date} der integrierten Unterstützung des Alexa Skill Kit für Datumswerte. Damit kann der Benutzer Eingaben der folgenden Art vornehmen:

"what will the horoscope for Leo be on Tuesday" 

Das Alexa Skills Kit generalisiert automatisch Eingaben basierend auf den benutzerdefinierten und integrierten Slot-Typen, sodass die Spezifikation eines einzigen Musters alle Formen von Eingaben anhand dieses Musters ermöglicht. Dennoch ist es wichtig, Variationen in den Äußerungsmustern zu berücksichtigen. Nehmen wir an, Sie möchten die folgende Äußerung erfassen:

"what will the horoscope for libra be tomorrow" 

In diesem Fall muss der Datei mit den Musteräußerungen das folgende Muster hinzugefügt werden (wobei „on“ nicht mehr nötig ist).

"what will the horoscope for {Sign} be {Date}". 

Weitere Hinweise zur Festlegung von Äußerungsmustern finden Sie im Abschnitt Inhalt der Musteräußerungen weiter unten.

Eine einzelne Äußerung muss nicht jeden Slot verwenden, der für eine Absicht definiert wurde. Das Schema für die Absicht GetHoroscope, das im obigen Beispiel genannt wurde, definiert sowohl ein Slot Sign als auch ein Slot Date. Die Äußerung „what is the horoscope for {Sign}“ nutzt nur den Slot Sign, während die Äußerung „get me my horoscope“ keine Slots nutzt.Wenn Benutzer diese Phrasen sagen, wird dieselbe Absicht gesendet, mit null Slot-Werten.

Achten Sie auf Schreibfehler und falsche Schreibweisen. Vergessen Sie den Apostroph (') nicht, wenn Sie Ausdrücke verkürzen (beispielsweise „gibt's“ oder „du's") und achten Sie auf Fehler, wenn Sie Textteile aus anderen Quellen kopieren und einfügen.

Inhalt der Musteräußerungen

Angesichts der Flexibilität und der Vielfalt der gesprochenen Sprache kann dieselbe Anforderung oft auf sehr unterschiedliche Weise ausgedrückt werden. Ein Benutzer kann beispielsweise wie folgt nach dem Abruf eines Horoskops fragen:

  • Was ist das Horoskop
  • Sage mir das Horoskop
  • Rufe mein Horoskop ab
  • Wie ist mein Horoskop heute

Es können auch andere Variationen der oben genannten Formen verwendet werden:

  • „Was“ und „Wie“
  • „Hole“, „Bitte…um“ und „Gib“
  • „Mein“ und „das“

Wenn Anforderungen in vollständigen Sätzen vorhanden sind, denken Sie an eine abgekürzte Form, die Benutzer eventuell verwenden, insbesondere wenn die Formulierungen mit einer Frage oder einer Aufforderung beginnen wie Frage nach… und Rufe…ab. Wenn beispielsweise die Frage „Wie wird das Wetter?“ lautet, sollten Sie auch einfach nur die Kurzform „Das Wetter?“ in Betracht ziehen. Dies funktioniert gut bei Mustern wie „Frage <Aufrufname> nach dem Wetter“ oder „Rufe von <Aufrufname> das Wetter ab“.

Wenn Sie diese verschiedenen Phrasen in Ihren Musteräußerungen auflisten, verbessern Sie die Erkennung durch Alexa. Listen Sie eine möglichst große Anzahl von repräsentativen Sprachmustern auf. Denken Sie an alle Phrasen, die dabei möglich sind (und schließen Sie alle Äußerungen aus, die von einem Benutzer niemals verwendet würden). Alexa versucht auch, eine Generalisierung aufgrund der von Ihnen gelieferten Muster vorzunehmen, um gesprochene Phrasen zu interpretieren, die geringfügig von den angegebenen Mustern abweichen.

Empfehlungen für die Definition der Spracheingabedaten

Die Verwendbarkeit des Skills hängt direkt davon ab, wie gut die Daten und die Musteräußerungen des benutzerdefinierten Slots die tatsächliche Nutzung im realen Leben darstellen. Die Zusammenstellung einer repräsentativen Gruppe von benutzerdefinierten Werten und Musteräußerungen ist ein wichtiger Vorgang, der in mehreren Durchgängen erfolgen muss.Während der Entwicklung und des Testens probieren Sie viele verschiedene Phrasen, um die jeweiligen Absichten aufzurufen. Wenn Sie andere Benutzer während des Testens beobachten können, notieren Sie sich die Phrasen, die sie verwenden, um die jeweiligen Absichten auszudrücken. Aktualisieren Sie laufend die benutzerdefinierten Werte und die Datei der Musteräußerungen, um sicherzustellen, dass die am häufigsten verwendeten Phrasen Ihrer Benutzer erfasst werden.

Die folgenden Abschnitte enthalten Empfehlungen für die Entwicklung Ihrer Musteräußerungen.

Musteräußerungen für den Beginn eines Gesprächs

Die bevorzugten Phrasen für den Beginn einer Interaktion mit einer Alexa-Funktion sind Frage und Bitte (im Sinne von „fordere…auf“). Sie können verwendet werden, um eine Frage zu stellen oder einen Befehl zu erteilen. Ihre Musteräußerungen sollten natürlich und fließend mit diesen Phrasen kombiniert werden.

Beispielsweise könnten die Benutzer eine der folgenden Phrasen verwenden, um ein Horoskop abzurufen:

  • „Alexa, frage bei Astro Dienst nach dem Tageshoroskop für Zwilling.“
  • „Alexa, frage Astro Dienst nach dem Horoskop für Zwilling.“
  • „Alexa, bitte Astro Dienst um das Horoskop für Zwilling.“
  • „Alexa, bitte Astro Dienst für das Horoskop für Zwilling.“
  • „Alexa, bitte Astro Dienst um das Horoskop für Zwilling.“
  • „Alexa, frage den Astro Dienst für das Horoskop für Zwilling.“

Beachten Sie die verschiedenen Musteräußerungen, die mit „frage“ und „bitte“ funktionieren:

  • Nominale Äußerungen:
    • „das Horoskop für…“
    • „Zwilling“
  • Fragende Äußerungen:
    • „wie lautet das Horoskop für…“
    • „was ist das Horoskop für…“
  • Verbale Äußerungen:
    • „gib mir das Horoskop für“
    • „nenn mir das Horoskop von…“

In der Syntax der Musteräußerungen würden sie wie folgt angegeben werden:

GetHoroscope the horoscope for {Sign} 
GetHoroscope {Sign}
GetHoroscope what's the horoscope for {Sign}
GetHoroscope what is the horoscope for {Sign}
GetHoroscope give me the horoscope for {Sign}
GetHoroscope tell me the horoscope for {Sign}
...

Äußerungen, die mit Fragewörtern („was“, „wie“, „wo“ usw.) beginnen, sind besonders wichtig, weil sie mit der Einleitungsfloskel „Frage <Aufrufname> nach“ gut funktionieren. Die folgenden Wörter sind Fragewörter, die mit Frage gut kombiniert werden können:

  • wer, was, warum, wann, wo, welche/r/s, wie
  • macht, tat, tut
  • kann, könnte, soll, würde, dürfte, muss, wird
  • ist, war, wird, bin, bist, waren
  • habe, hat, hatte
  • Einige Varianten der obigen Wörter: wofür, wieso, woran

Wenn Sie Äußerungen als Fragen formulieren, denken Sie auch an verschiedene Formen der Frage. Zum Beispiel:

  • „Wie ist mein Horoskop“. („Alexa, frage bei Astro Dienst, wie mein Horoskop ist”)
  • „wie mein Horoskop ist“ („Alexa, frage Astro Dienst, wie mein Horoskop ist.“)

Nicht alle diese Fragewörter können bei allen Alexa-Funktionen eingesetzt werden, aber Sie sollten Äußerungen für diese Wörter aufnehmen, wenn sie in der gesprochenen Sprache vorkommen. Eine vollständige Liste der Phrasen, die von Benutzern zur Einleitung Ihres Alexa-Skills verwendet werden können, finden Sie im Abschnitt Wie Benutzer benutzerdefinierte Skills aufrufen. Beziehen Sie Äußerungen ein, die auf natürliche Weise mit so vielen Phrasen wie möglich funktionieren.

Anzahl von Musteräußerungen

Für jede Absicht nehmen Sie so viele Variationen der Phrasen wie möglich auf, die von Benutzern geäußert werden können. Für die Phrase „Wie ist mein Horoskop“ sollten Sie folgende Variationen verwenden:

  • „Wie ist“
  • „Was ist“
  • „Sage mir“
  • „Gib“
  • „Gib mir“
  • „Hole“
  • „Hole mir“
  • „Hol mir“
  • „Suche“
  • „Suche mir“
  • „Such mir“

Es ist besser, zu viele Muster anzugeben als zu wenige. Testen Sie daher verschiedene Phrasen und fügen Sie gegebenenfalls zusätzliche hinzu.

Benutzerdefinierte Slot-Typen

Wenn Sie benutzerdefinierte Slot-Typen verwenden, achten Sie darauf, dass die Liste der für den Slot bereitgestellten Werte die erwarteten Eingaben Ihrer Benutzer umfassend abdeckt. Dies ist im Horoskopbeispiel relativ einfach. Es gibt nur 12 Sternzeichen, die Menge ist begrenzt und es gibt nur wenige Variationen der Aussprache der einzelnen Sternzeichen. Es wird komplizierter, wenn die Eingaben für einen bestimmten Slot komplexer werden. Tipps zur Erstellung einer repräsentativen Abdeckung bei komplexeren Slot-Typen:

  • Beginnen Sie mit Datenquellen, die dem realen Gebrauch entsprechen. Wenn die Webversion Ihrer Anwendung Elemente enthält, die über Formulareingaben oder Suchanfragen erfasst werden, verwenden Sie diese Elemente. Sonst suchen Sie nach anderen Datenquellen, die wahrscheinliche Eingaben enthalten.

    Wenn Sie beispielweile eine Liste von Zutaten für einen Rezept-Skill erstellen, generieren Sie eine Liste aller Zutaten der Rezepte und bestätigen Sie sie anhand anderer Listen, die Sie beispielsweise online finden.

  • Ihr Skill kann bis zu 50.000 benutzerdefinierte Slot-Werte aufweisen. Dies ist die Gesamtsumme aller benutzerdefinierten Slots, die im Interaktionsmodell verwendet werden. Wenn Sie die Anzahl der Werte kürzen müssen, um diesen Grenzwert einzuhalten, behalten Sie die Werte, die am wahrscheinlichsten verwendet werden.
  • Wenn Ihre Liste der benutzerdefinierten Werte nicht alle Werte enthält, die Ihr Skill erwartet, bereiten Sie eine repräsentative Gruppe von benutzerdefinierten Werten mit repräsentativen Wortanzahlen vor. Wenn beispielsweise Werte von einem bis vier Wörtern möglich sind, verwenden Sie Werte von einem bis vier Wörtern in Ihrer Wertliste. Achten Sie auch darauf, sie gleichmäßig zu verteilen. Wenn ein Wert aus vier Wörtern in rund 10 % der Eingaben vorkommt, verwenden Sie Werte mit vier Wörtern nur in 10 % der Werte in Ihrer Liste.

Nächste Schritte