Voice-Eigenschaft (Commands-Objekt)
[Microsoft Agent ist ab Version Windows 7 veraltet und möglicherweise in nachfolgenden Versionen von Windows.]
-
Beschreibung
-
Gibt den Text zurück, der an die Sprach-Engine-Grammatik (zur Erkennung) übergeben wird, oder legt diesen fest.
-
Syntax
-
agent**. Zeichen ("**CharacterID*"). Commands.Voice-Zeichenfolge * [ = ]
Teil BESCHREIBUNG string Ein Zeichenfolgenausdruck, der den Wörtern oder Ausdrücken entspricht, die von der Sprach-Engine für die Erkennung dieses Befehls verwendet werden sollen.
Bemerkungen
Wenn Sie diesen Parameter nicht angeben, wird die VoiceCaption für Ihr Commands-Objekt nicht im Fenster Sprachbefehle angezeigt.
Der von Ihnen angegebenen Zeichenfolgenausdruck kann eckige Klammern () enthalten, um optionale Wörter und vertikale Balkenzeichen ( ) anzugeben, [ ] um alternative | Zeichenfolgen anzugeben. Alternative müssen in Klammern eingeschlossen werden. Beispielsweise weist "(hello there hi)" die Sprach-Engine [ ] | an, "hello", "hello there" oder "hi" für den Befehl zu akzeptieren. Denken Sie daran, geeignete Leerzeichen zwischen dem Text in Klammern oder Klammern und dem Text, der nicht in Klammern oder Klammern enthalten ist, ein- und aus. Sie können den Sternoperator ( ) verwenden, um null oder mehr Instanzen der in der Gruppe enthaltenen Wörter anzugeben, oder den Plusoperator (+), um eine oder * mehrere -Instanzen anzugeben. Das folgende Beispiel führt zu einer Grammatik, die "try this", "please try this", "please try this" und "please try this" mit unbegrenzten Iterationen von "please" unterstützt:
"please* try this"
Das folgende Grammatikformat schließt "try this" aus, da der +-Operator mindestens eine Instanz von "please" definiert:
"please+ try this"
Die Wiederholungsoperatoren befolgen normale Rangfolgeregeln und gelten für das unmittelbar vorangehende Textelement. Die folgende Grammatik führt beispielsweise zu "New York" und "New York York", aber nicht zu "New York New York":
"New York+"
Daher sollten Sie diese Operatoren in der Regel mit den Gruppierungszeichen verwenden. Die folgende Grammatik enthält beispielsweise sowohl "New York" als auch "New York New York":
"(New York)+"
Wiederholungsoperatoren sind nützlich, wenn Sie eine Grammatik erstellen möchten, die eine wiederholte Sequenz enthält, z. B. eine Telefonnummer oder eine Spezifikation einer Liste von Elementen.
"call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
"I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"
Obwohl die Operatoren auch mit dem optionalen Gruppierungszeichen in eckigen Klammern verwendet werden können, kann dies die Effizienz der Grammatikverarbeitung durch den -Agent verringern.
Sie können auch eine Auslassungszeichen (...) verwenden, um die Worterkennung zu unterstützen, d. h., die Spracherkennungs-Engine soll Wörter ignorieren, die an dieser Position im Ausdruck gesprochen werden (manchmal auch als Garbage Words bezeichnet). Daher erkennt die Sprach-Engine nur bestimmte Wörter in der Zeichenfolge, unabhängig davon, ob sie mit angrenzenden Wörtern oder Ausdrücken gesprochen wird. Wenn Sie diese Eigenschaft z. B. auf " [ ... ] check mail [ ... ", die Spracherkennungs-Engine gleicht Ausdrücke wie ] "Please check mail" oder "check mail please" mit diesem Befehl ab. Ellipsen können überall innerhalb einer Zeichenfolge verwendet werden. Seien Sie jedoch vorsichtig, wenn Sie dieses Verfahren verwenden, da dies das Potenzial unerwünschter Übereinstimmungen erhöhen kann.
Wenn Sie die Wortgrammatik für Ihren Befehl definieren, schließen Sie mindestens ein Wort ein, das erforderlich ist. das heißt, geben Sie keine optionalen Wörter an. Stellen Sie außerdem sicher, dass das Wort nur aussetzbare Wörter und Buchstaben enthält. Bei Zahlen ist es besser, das Wort zu sagen, anstatt eine mehrdeutige Darstellung zu verwenden. Beispielsweise ist "345" keine gute Grammatikform. Verwenden Sie auf ähnliche Weise anstelle von "IEEE" "I triple E". Sie sollten auch keine Interpunktion oder Symbole weglassen. Verwenden Sie z. B. anstelle von # "1 $10 Pizza!" "the number one ten dollar pizza". Das Verwenden nicht aussprechbarer Zeichen oder Symbole für einen Befehl kann dazu führen, dass die Sprach-Engine die Grammatik für alle Befehle nicht kompiliert. Machen Sie schließlich Ihren Voice-Parameter so eindeutig wie möglich von anderen Sprachbefehlen, die Sie definieren. Je größer die Ähnlichkeit zwischen der Sprachgrammatik für Befehle ist, desto wahrscheinlicher wird die Sprach-Engine einen Erkennungsfehler machen. Sie können auch die Konfidenzergebnisse verwenden, um besser zwischen zwei Befehlen zu unterscheiden, die eine ähnliche oder ähnlich klingende Sprachgrammatik haben können.
Sie können ihre Grammatikwörter in Form von " Text aussprache " enthalten, wobei Text der angezeigte Text und Aussprache Text ist, der die Aussprache verdeutlicht.\ Beispielsweise würde die Grammatik "1st first" erkannt, wenn der Benutzer "first" sagt, aber das Command-Ereignis gibt den Text \ "1st \ first" zurück. Sie können auch IPA (International Phonetic Alphabet) verwenden, um eine Aussprache anzugeben, indem Sie die Aussprache mit einem Pfundzeichen ("") beginnen und dann den Text enthalten, der die # IPA-Aussprache darstellt.
Für japanische Spracherkennungs-Engines können Sie grammatikalisch in der Form "kana \ kanji" definieren, um die alternative Aussprache zu reduzieren und die Genauigkeit zu erhöhen. (Die Reihenfolge wird aus Gründen der Abwärtskompatibilität umgekehrt.) Dies ist besonders wichtig für die Aussprache der richtigen Namen in Kanji. Sie können jedoch nur Kanji ohne Kana übergeben. In diesem Fall sollte die Engine auf alle akzeptablen Aussprachen für das Kanji lauschen. Sie können auch nur Kana übergeben.
Beachten Sie außerdem, dass Sie für Sprachen wie Japanisch, Chinesisch und Thailändisch, die keine Leerzeichen verwenden, um Wortumbrüche anzugeben, ein Unicode-Leerzeichen mit einer Breite von null (0x200B) einfügen, um logische Wortumbrüche anzugeben.
Mit Ausnahme von Fehlern, die die Gruppierungs- oder Wiederholungsformatierungszeichen verwenden, meldet der -Agent keine Fehler in der Grammatik, es sei denn, die Engine selbst meldet den Fehler. Wenn Sie Text in der Grammatik übergeben, dass die Engine nicht kompiliert werden kann, die Engine jedoch nicht behandelt und als Fehler zurücksaget, kann der -Agent den Fehler nicht melden. Daher muss die Clientanwendung die Grammatik für die Voice-Eigenschaft sorgfältig definieren.
Hinweis
Die verfügbaren Grammatikfeatures hängen möglicherweise von der Spracherkennungs-Engine ab. Sie sollten sich an den Hersteller der Engine wenden, um zu ermitteln, welche Grammatikoptionen unterstützt werden. Verwenden Sie die SRModeID, um eine bestimmte Engine zu verwenden.
Der Vorgang dieser Eigenschaft hängt vom Zustand der Spracherkennungseigenschaft des Servers ab. Wenn die Spracherkennung beispielsweise deaktiviert oder nicht installiert ist, hat diese Eigenschaft keine Auswirkungen.