Version v1.2 der VCD-Elemente und -Attribute (Voice Command Definition, Sprachbefehlsdefinition)

Hinweis

Die Cortana Skills Kit für Verbraucher und Unternehmen sowie die auf diesen Plattformen aufgebauten Fähigkeiten sind veraltet.

Referenzdokumentation für die XML-Markupelemente und -Attribute, die in VCD-Dateien (Voice Command Definition) verwendet werden, um Erkennungseinschränkungen anzugeben.

Verwenden Sie Sprachbefehle, um eine App zu starten und eine Auszuführende Aktion oder einen Befehl anzugeben. Beispielsweise könnte ein Benutzer auf die Schaltfläche Start tippen und "Contoso Widgets, Best Seller anzeigen" sagen, um sowohl die Contoso Widgets-App zu starten als auch zur Seite "Bestseller" zu navigieren.

Elemente und Attribute

Wie bei jeder XML-Datei sollte eine VCD-Datei mit einer XML-Deklaration beginnen, die sowohl die XML-Version als auch die Zeichencodierung angibt.

<?xml version="1.0" encoding="utf-8"?>

Das Stammelement ist das VoiceCommands-Element , und sein xmlns-Attribut muss auf http://schemas.microsoft.com/voicecommands/1.2 (keine Großbuchstaben) festgelegt werden. Ein Beispiel, das diesem Schema entspricht, finden Sie im Beispiel Cortana Voice Command.

Element BESCHREIBUNG
VoiceCommands Erforderlich. Das Stammelement einer VCD-Datei. Enthält zwischen 1 und 15 CommandSet-Elemente , von denen jedes die Sprachbefehle für eine einzelne Sprache darstellt.
CommandSet Erforderliches untergeordnetes Element des VoiceCommands-Elements . Ein Container für alle Sprachbefehle, die eine App in der sprache akzeptiert, die durch das erforderliche xml:lang-Attribut angegeben wird.

Der Wert des xml:lang-Attributs muss im VoiceCommand-Dokument eindeutig sein, und es handelt sich um eine einzelne, spezifische Sprache, die im Sprachnamenformular angegeben ist und einer Sprache entspricht, die in der Sprachsteuerung verfügbar ist.

Hinweis Sprachen, die in der VCD-Datei angegeben sind, aber auf dem System nicht unterstützt werden, werden ignoriert.

Das Name-Attribut ist optional und kann eine beliebige Zeichenfolge sein. Das Name-Attribut ist jedoch erforderlich, um programmgesteuert auf die PhraseList eines CommandSet-Elements zu verweisen und diese zu aktualisieren. Das CommandSet-Element enthält die folgenden untergeordneten Elemente: CommandPrefix (0 oder 1) oder AppName (0 oder 1), Example (genau 1), Command (1 bis 100), PhraseList-Elemente (0 bis 10) und PhraseTopic-Elemente (0 bis 10). Diese untergeordneten Elemente müssen in der aufgeführten Reihenfolge auftreten.

Sich gegenseitig ausschließend CommandPrefix

Optionales untergeordnetes Element des CommandSet-Elements . Falls vorhanden, muss es das erste untergeordnete Element des CommandSet-Elements sein.

Gibt einen benutzerfreundlichen Namen für eine App an, die ein Benutzer sprechen kann, wenn er einen Sprachbefehl gibt. Dies ist nützlich für Apps mit langen oder schwer auszusprechenden Namen.

Vermeiden Sie die Verwendung von Präfixen, die mit anderen sprachfähigen Umgebungen in Konflikt geraten.

AppName

Optionales untergeordnetes Element des CommandSet-Elements . Falls vorhanden, muss es das erste untergeordnete Element des CommandSet-Elements sein.

Ersetzt CommandPrefix und unterstützt das RequireAppName-Attribut und {builtin:AppName} den Ausdruck des ListenFor-Elements .

Gibt einen benutzerfreundlichen Namen für eine App an, die ein Benutzer sprechen kann, wenn er einen Sprachbefehl gibt. Dies ist nützlich für Apps mit langen oder schwer auszusprechenden Namen.

Vermeiden Sie die Verwendung von Präfixen, die mit anderen sprachfähigen Umgebungen in Konflikt geraten.

Der AppName wird standardmäßig als Suffix im Sprachbefehl unterstützt.

Get-Help

Erforderliches untergeordnetes Element des CommandSet-Elements .

Verwendet das Name-Attribut . Definiert eine App-Aktion, die Benutzer durch Sprechen initiieren können, und was Benutzer sagen können, um die Aktion zu initiieren. Jedes Command-Element kann einer bestimmten Seite in Ihrer App zugeordnet werden. Enthält die folgenden erforderlichen untergeordneten Elemente: Example (genau 1), ListenFor (1 bis 20), Feedback (genau 1) und Navigate (genau 1). Diese untergeordneten Elemente müssen in der aufgeführten Reihenfolge auftreten.

Beispiel Erforderliche untergeordnete Elemente des CommandSet-Elements (genau 1) und des Command-Elements (1 bis 20). Gibt ein repräsentatives Beispiel dafür, was ein Benutzer für ein CommandSet als Ganzes und für einen einzelnen Befehl sagen kann. Diese Beispiele sind für einen Benutzer auf dem Bildschirm Was kann ich sagen anzeigen sichtbar. Dieser Bildschirm wird angezeigt, wenn ein Benutzer die Schaltfläche Suchen (auf Windows-Smartphones) gedrückt hält oder Cortana aufruft und "Hilfe" oder "Was kann ich sagen?" sagt oder auf Weitere Anzeigen tippt.

Hinweis Beispiele hierfür sollten AppName oder CommandPrefix sein.

ListenFor

Erforderlich (1 bis 20) untergeordnetes Element des Command-Elements .

Enthält ein Wort oder einen Ausdruck, den Ihre App für diesen Befehl erkennt. Dies kann ein Verweis auf das Label-Attribut eines PhraseList- (oder PhraseTopic-Elements) sein, das im ListenFor-Element angezeigt wird, das in geschweiften Klammern eingeschlossen ist, z. B. {myList}, oder {myTopic}.

Der Inhalt aller ListenFor-Elemente kann erkannt werden, um den Befehl zu aktivieren.

Ein optionales RequireAppName-Attribut kann angegeben werden, um anzugeben, ob der Wert des AppName-Elements inline mit dem ListenFor-Element vorangestellt, angefügt oder verwendet werden kann.

Dieses Attribut unterstützt vier Werte:

  • BeforePhrase

    Der Benutzer muss den AppName vor dem ListenFor-Ausdruck angeben.

  • AfterPhrase

    Der Benutzer muss "In|Ein|Verwenden|Mit" AppName nach dem ListenFor-Ausdruck .

  • BeforeOrAfterPhrase

    Der Benutzer muss den AppName vor oder nach dem ListenFor-Ausdruck angeben.

  • ExplicitlySpecified

    In ListenFor wird explizit auf den AppName verwiesen, wobei verwendet {builtin:AppName}wird. Der Benutzer muss den AppName nicht vor oder nach dem ListenFor-Ausdruck angeben.

Verwenden Sie Klammern um ein Wort oder Wörter, die optional sind. Das heißt, das Wort oder die Wörter können gesprochen werden, sind aber für eine Übereinstimmung nicht erforderlich. Beispiel: <ListenFor>[Show] {options}</ListenFor>.

Sie können Platzhalterfunktionen einrichten, indem Sie ein Sternchen in ein Paar geschweifte Klammern einfügen, z. B <ListenFor> Find {*} </ListenFor>. . In diesem Beispiel entspricht der Sprachbefehl, solange der Benutzer "Suchen" spricht, optional gefolgt von einem anderen Wort oder Ausdruck. Wenn der Sprachbefehl für ein ListenFor-Element mit Wildcard-Aktivierung übereinstimmt, enthält die SpeechRecognitionResult.Text-Eigenschaft die Zeichenfolge "..." an derselben Position wie der Platzhalter.

Feedback Erforderliches untergeordnetes Element des Command-Elements . Gibt den Text an, der dem Benutzer angezeigt und zurückgelesen wird, wenn der Befehl erkannt wird. Wenn das Feedback-Element einen Verweis auf ein Label-Attribut eines PhraseList-Elements (oder PhraseTopic)-Elements enthält, muss jedes ListenFor-Element im enthaltenen Command-Element auch auf das gleiche Label-Attribut des PhraseList-Elements (oder PhraseTopic) verweisen.
Sich gegenseitig ausschließend NavigierenErforderliches untergeordnetes Element des Command-Elements , es sei denn, das Command-Element verfügt über ein untergeordnetes VoiceCommandService-Element . Das Target-Attribut ist optional und wird in der Regel verwendet, um die Seite anzugeben, zu der die App beim Starten navigieren soll. Sie können den Wert des Target-Attributs (oder der leeren Zeichenfolge, wenn Sie das Target-Attribut weglassen) aus dem Wörterbuch SpeechRecognitionSemanticInterpretation.Properties mithilfe des Schlüssels "NavigationTarget" abrufen.
VoiceCommandService Erforderliches untergeordnetes Element des Command-Elements , es sei denn, das Command-Element verfügt über ein untergeordnetes Navigate-Element . Dieses Element gibt an, dass der Sprachbefehl über einen App-Dienst (siehe Windows.ApplicationModel.AppService) verarbeitet wird, wobei Feedback auf der Cortana-Canvas angezeigt wird. Das Target-Attribut ist obligatorisch und muss mit dem Wert des Attributs Name des AppService-Elements im App-Paketmanifest übereinstimmen.
PhraseList

Optionales untergeordnetes Element des CommandSet-Elements . Ein CommandSet-Element darf nicht mehr als 2.000 Item-Elemente enthalten, und 2.000 Item-Elemente sind die kombinierte Obergrenze für alle PhraseList-Elemente in einem CommandSet. Jedes Element gibt ein Wort oder einen Ausdruck an, der erkannt werden kann, um den Befehl zu initiieren, der auf die PhraseList verweist. Der Inhalt der Elemente kann programmgesteuert in Ihrer Anwendung aktualisiert werden. Für eine PhraseList ist das Label-Attribut erforderlich, dessen Wert in ListenFor- oder Feedback-Elementen – eingeschlossen von geschweiften Klammern – angezeigt werden kann und zum Verweisen auf die PhraseList verwendet wird.

PhraseList verfügt über ein optionales Disambiguate-Attribut (standard true), das angibt, ob diese PhraseList zu Benutzerdeutigkeit führt, wenn mehrere Elemente aus der Liste gleichzeitig erkannt werden. Bei false ist diese PhraseList auch innerhalb von Feedbackelementen nicht verwendbar und erzeugt keine Parameter für Ihre Anwendung. Dies ist nützlich für Ausdrücke, die alternative Möglichkeiten sind, dasselbe zu sagen, aber keine spezifische Aktion erfordern.

Um herauszufinden, welcher Ausdruck aus der Liste gesprochen wurde, können Sie in Ihrer App auf das Wörterbuch SpeechRecognitionSemanticInterpretation.Properties zugreifen, indem Sie einen Schlüssel mit demselben Wert wie die Bezeichnung der PhraseList verwenden.

Element Optional untergeordnetes Element des PhraseList-Elements . Eines von mehreren Wörtern oder Ausdrücken, die erkannt werden können, um einen Befehl zu initiieren. Ein CommandSet darf nicht mehr als 2.000 Item-Elemente für alle untergeordneten PhraseList-Elemente enthalten.
PhraseTopic

Optionales untergeordnetes Element des CommandSet-Elements . Gibt ein Thema für die Große Vokabelerkennung an. Das Thema kann ein einzelnes (0 oder 1) Szenario-Attribut und mehrere (0 bis 20) untergeordnete Elemente des Subjekts für das Szenario angeben, die verwendet werden können, um die Relevanz der erzielten Anerkennung zu verbessern. Ein PhraseTopic-Element erfordert das Label-Attribut , dessen Wert in listenFor - oder Feedback-Elementen – eingeschlossen von geschweiften Klammern – angezeigt werden kann und zum Verweisen auf PhraseTopic verwendet wird.

Das Scenario-Attribut (Standard "Diktat") gibt das gewünschte Szenario für dieses PhraseTopic an, das die zugrunde liegende Spracherkennung von Sprachbefehlen mithilfe von PhraseTopic optimieren kann, um Ergebnisse zu erzielen, die für den gewünschten Kontext des Befehls besser geeignet sind. Gültige Werte sind "Natürliche Sprache", "Suche", "Kurznachricht", "Diktat", "Befehle" und "Formularausfüllen".

Die untergeordneten Subject-Elemente geben ein Subjekt an, das für das Scenario-Attribut des übergeordneten PhraseTopic-Attributs spezifisch ist, um die Relevanz von Spracherkennungsergebnissen in gesprochenen Befehlen mithilfe von PhraseTopic weiter zu verfeinern. Die Themen werden in der angegebenen Reihenfolge bewertet, und bei Bedarf beschränken später angegebene Themen die zuvor angegebenen. Gültige innere Textwerte sind "Datum/Uhrzeit", "Adressen", "Stadt/Staat", "Personennamen", "Filme", "Musik" und "Telefonnummer". Beispiel: <Subject>Phone Number</Subject>

Um den Inhalt zu ermitteln, der in der Teilmenge eines ListenFor-Elements gesprochen wird, das durch einen PhraseTopic-Verweis dargestellt wird, können Sie auf das Wörterbuch SpeechRecognitionSemanticInterpretation.Properties mithilfe eines Schlüssels mit demselben Wert wie die Bezeichnung von PhraseTopic zugreifen.

Wichtig

Es ist nicht möglich, die unten aufgeführten Sonderzeichen zu schachteln. Beispielsweise sind Anweisungen wie [[start] new game] und [{myPhraseList}] nicht möglich.

Sonderzeichen BESCHREIBUNG
{} Enthält den Wert des Label-Attributs für phraseList oder PhraseTopic , auf das verwiesen werden soll, z. B. {myList} oder {myTopic}. Wird in einem ListenFor - oder Feedback-Element verwendet. Ein PhraseList- oder PhraseTopic-Verweis in einem Feedback-Element muss mit einem entsprechenden Verweis in einem ListenFor-Element im gleichen Befehl übereinstimmen.
[]Gibt an, dass das eingeschlossene Wort oder der eingeschlossene Ausdruck optional ist. Das eingeschlossene Wort oder Der eingeschlossene Ausdruck kann gesprochen werden, muss aber nicht erkannt werden, um den Befehl zu initiieren. Wenn der Inhalt eines ListenFor-Elements beispielsweise "[start] [begin] new game" ist, kann der Benutzer "Neues Spiel starten" oder "neues Spiel" oder "neues Spiel beginnen" (oder sogar "neues Spiel starten") sprechen, um den Befehl zu initiieren. Jedes Klammerelement ist unabhängig voneinander optional, muss jedoch in der richtigen Reihenfolge gesprochen werden, um erkannt zu werden. Im Beispiel "neues Spiel" würde also "start new game" funktionieren, aber "start new game" würde aufgrund der Reihenfolge, in der sie deklariert wurden, nicht funktionieren.

Weitere Informationen

Windows.ApplicationModel.VoiceCommands

Cortana-Interaktionen

Beispiele
Cortana-Sprachbefehlbeispiel