Home > Alexa > Alexa Skills Kit

Defining the Voice Interface

Introduction

Introduction

With the Alexa Skills Kit, you can add new capabilities to Alexa by creating custom skills. In addition to implementing the logic for a new custom skill, you also define the voice interface your users will have with the skill, and through which they experience the new capability.

You define this voice interface by specifying a mapping between users’ spoken input and the intents your cloud-based service can handle.

To declare this mapping, you supply two main inputs:

  1. An Intent Schema: A JSON structure which declares the set of intents your service can accept and process.
  2. The Spoken Input Data:
    • Sample Utterances: A structured text file that connects the intents to likely spoken phrases and containing as many representative phrases as possible.
    • Custom Values (required for use with custom slots): A representative list of values for specific items used by your skill and referenced in the intents when using a custom slot type.

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.

The Intent Schema

In the context of Alexa, 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 contains a slot named Sign. When a user says “Alexa, ask Daily Horoscopes for the horoscope for Pisces”, the Alexa service sends the Daily Horoscopes service a GetHoroscope intent with the value “pisces” in the Sign slot. On receiving the GetHoroscope intent, the service can then look up the 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 shown 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.), and the Date slot would convert a month name spoken by the user into a date format using Amazon’s built-in AMAZON.DATE type.

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.

The Speech Input Data

You provide the mappings between the intents and the typical utterances that invoke those intents by adding sets of values for any custom slots supported by your skill and a list of sample utterances.

Built-in Slot Types

Amazon provides built-in support for a large library of slot types. This includes types for converting data such as dates, and types that provide recognition for commonly-used lists of values, such as cities in different countries, regions and states, and first names.

For example, the AMAZON.DATE type converts words that indicate dates (“today”, “tomorrow”, or “july”) into a date format (such as “2015-07-00T9”).

If your skill uses a built-in type, you don’t need to provide sample values. Include the slot name in the sample utterances file as necessary. For other data types, a custom slot type is recommended. Note that all built-in types are prefixed with the AMAZON namespace.

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 is used for items that are not covered by Amazon’s built-in set of types and is recommended for most use cases where a slot value is one of a set of possible values. For the LIST_OF_SIGNS slot type in the horoscope sample above, the list of custom values would be:

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 English dictionary 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. For examples, see the “Custom Slot Type Syntax” section of the Custom Interaction Model Reference.

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

A custom slot type is not the equivalent of an enumeration. Values outside the list may still be 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.

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"
    }
  ]
}

The Sample Utterances File

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 the section Sample Utterances Contents below.

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.

Sample Utterance Contents

Given the flexibility and variation of spoken language in the real world, there will often be many different ways to express the same request. For example, to ask for a horoscope a user might say:

  • what is the horoscope
  • get me my horoscope
  • tell me the horoscope
  • how’s my horoscope today

Or any other variations on the above forms:

  • “what’s” and “what is”
  • “get”, “tell”, and “give”
  • “my” and “the”

If you have requests that are full sentences, think about shortened ways that users might say them, especially when combined with the Ask/Tell starting phrases, with patterns like Ask…to… and Ask…about…. For instance, if you have “what’s the weather,” consider also just “weather”. This works well with patterns such as “Ask <invocation name> for weather.” or “Ask <invocation name> about weather”.

Providing these different phrases in your sample utterances will help improve voice recognition for the abilities you add to Alexa. It is important to include as wide a range of representative samples as you can -– all the phrases that you can think of that are possible in use (though do not include samples that users will never speak). Alexa also attempts to generalize based on the samples you provide to interpret spoken phrases that differ in minor ways from the samples specified.

Recommendations for Defining the Speech Input Data

The usability of the skill directly depends on how well the custom slot data and sample utterances represent real-world language use. Building a representative set of custom values and sample utterances is an important process and one that requires iteration. During development and testing, try using many different phrases to invoke each intent. If you can observe other users during testing, note the phrases that they speak to invoke each intent. Continually update the custom values and sample utterances file to ensure that it includes instances of your users’ most common phrasings.

The following sections provide recommendations for developing your set of sample utterances.

Sample Utterances for Starting a Conversation

The preferred phrases for beginning an interaction with an Alexa ability are ask and tell. These can be used to ask questions or state commands in a very natural way. Your sample utterances should flow naturally when combined with these phrases.

For example, users might say one of the following to request a horoscope:

  • “Alexa, ask Daily Horoscopes for the horoscope for Gemini
  • “Alexa, ask Daily Horoscopes about Gemini
  • “Alexa, ask Daily Horoscopes what is the horoscope for Gemini
  • “Alexa, ask Daily Horoscopes what’s the horoscope for Gemini
  • “Alexa, ask Daily Horoscopes to give me the horoscope for Gemini
  • “Alexa, ask Daily Horoscopes to tell me the horoscope for Gemini

Note the different forms of the sample utterances that work effectively with different variations of “ask”:

  • Noun utterances:
    • “the horoscope for…”
    • “Gemini”
  • Question utterances:
    • “what is the horoscope for…”
    • “what’s the horoscope for…”
  • Verb utterances:
    • “give me the horoscope for”
    • “tell me the horoscope for…”

In the syntax of the sample utterances, these would be specified as follows:

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}
...

Utterances that begin with specific question words (“what”, “how”, “where”, and so on) are especially important, as these work with the “ask <invocation name> question” variation. The following words are considered question words that work with ask:

  • who, what, why, when, where, which, how
  • do, did, does
  • can, could, should, would, may, must, shall
  • is, was, will, am, are, were
  • have, has, had
  • Some variants of the above, such as: what’s, whose, didn’t, ain’t

When writing utterances as questions, also consider multiple forms of the question. For example:

  • “what is my horoscope”. (“Alexa, ask Daily Horoscopes what is my horoscope”)
  • “what my horoscope is” (“Alexa, ask Daily Horoscopes what my horoscope is”)

Not all of these question words may work well for all Alexa capabilities, but you should include utterances for these words when they represent real-world language use. For the full list of phrases users can say to begin interacting with your Alexa skill, see Understanding How Users Invoke Custom Skills. Include utterances that work naturally with as many of these phrases as possible.

Number of Sample Utterances

For each intent, include as many variations of the phrases as you expect users to speak. For example, for the utterance “what is my horoscope”, include variations such as:

  • “what is…”
  • “what’s…”
  • “tell me…”
  • “give…”
  • “give me…”
  • “get…”
  • “get me…”
  • “find…”
  • “find me…”

It is better to provide too many samples than to provide too few, so test different phrases and add additional phrases as needed.

Custom Slot Values

When using custom slot types, make sure the list of values provided for the slot comprehensively covers the expected input from your users. While this is relatively straightforward in the horoscopes example –- in this case the set of twelve signs is small, finite and has few or no variations in terms of how people are likely to speak each sign –- it can be more difficult as the complexity of input to a given slot increases. Tips to build representative coverage for more complex slot types include:

  • Start with data sources that reflect real usage. For instance, if you have a web version of your application that can use items you’ve logged from users via forms or search queries, use those. Otherwise look for other data sources representing likelihood of input.

    If you’re building a list of ingredients for a recipe skill for instance, generate a list of all ingredients used in all recipes, and validate that against other lists you may be able to find online of common ingredients.

  • Your skill can have a total of 50,000 custom slot values. This is totaled across all custom slots used in the interaction model. If you need to scale back the number of values to fit within this limit, be sure to keep the values most likely to be used.
  • If your list of custom values does not contain all the values your skill expects, provide a representative set of custom values with representative word counts. For instance, if values of one to four words are possible, use values of one to four words in your value list. But also be sure to distribute them proportionally. If a four-word value occurs in an estimated 10% of inputs, then include four-word values only in 10% of the values in your list.

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