Voice-Eigenschaft (Commands-Objekt)

[Microsoft Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]

Beschreibung

Gibt den Text zurück, der an die Grammatik des Sprachmoduls (zur Erkennung) übergeben wird, oder legt diesen fest.

Syntax

agent**. Zeichen ("CharacterID"). Commands.Voice** [ = string]

Teil BESCHREIBUNG
string Ein Zeichenfolgenausdruck, der den Wörtern oder Ausdrücken entspricht, die von der Sprach-Engine zum Erkennen dieses Befehls verwendet werden sollen.

 

Bemerkungen

Wenn Sie diesen Parameter nicht angeben, wird das VoiceCaption-Objekt für Ihr Commands-Objekt nicht im Fenster Sprachbefehle angezeigt.

Der von Ihnen angegebene Zeichenfolgenausdruck kann eckige Klammerzeichen ([ ]) enthalten, um optionale Wörter und vertikale Balkenzeichen (|) anzugeben, um alternative Zeichenfolgen anzugeben. Alternative Müssen in Klammern eingeschlossen werden. Beispiel: "(hello [there] | hi)" weist die Sprach-Engine an, "hello", "hello there" oder "hi" für den Befehl zu akzeptieren. Denken Sie daran, zwischen dem Text, der sich in Klammern oder Klammern befindet, und dem Text, der sich nicht in Klammern oder Klammern befindet, geeignete Leerzeichen einzufügen. Sie können den Operator star (*) verwenden, um null oder mehr Instanzen der wörter anzugeben, die in der Gruppe enthalten sind, oder den Plusoperator (+), um eine oder mehrere Instanzen anzugeben. Die folgenden Ergebnisse ergeben z. B. eine Grammatik, die "try this", "please try this", "please please try this", "please please try this" unterstützt, mit unbegrenzten Iterationen von "please":

   "please* try this"

Das folgende Grammatikformat schließt "Versuchen Sie dies" aus, da der +-Operator mindestens eine instance von "bitte" definiert:

   "please+ try this"

Die Wiederholungsoperatoren folgen den normalen Rangfolgeregeln und gelten für das unmittelbar vorangehende Textelement. Die folgende Grammatik ergibt beispielsweise "New York" und "New York York", aber nicht "New York New York":

   "New York+"

Daher möchten Sie diese Operatoren in der Regel mit den Gruppierungszeichen verwenden. Die folgende Grammatik umfasst 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 mit eckigen Klammern verwendet werden können, kann dies die Effizienz der Verarbeitung der Grammatik durch den Agent verringern.

Sie können auch eine Auslassungspunkte (...) verwenden, um die Worterkennung zu unterstützen, d. h. das Spracherkennungsmodul anzuweisen, Wörter zu ignorieren, die in 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, wenn sie mit benachbarten Wörtern oder Ausdrücken gesprochen werden. Wenn Sie diese Eigenschaft beispielsweise auf "[...] check mail [...]", die Spracherkennungs-Engine entspricht Ausdrücken wie "bitte mail überprüfen" oder "E-Mail überprüfen" mit diesem Befehl. Ellipsen können überall innerhalb einer Zeichenfolge verwendet werden. Seien Sie jedoch vorsichtig, wenn Sie diese Technik verwenden, da dies das Potenzial unerwünschter Übereinstimmungen erhöhen kann.

Wenn Sie die Wortgrammatik für Ihren Befehl definieren, fügen Sie mindestens ein Wort ein, das erforderlich ist. Das heißt, vermeiden Sie, nur optionale Wörter anzugeben. Stellen Sie außerdem sicher, dass das Wort nur aussprechbare Wörter und Buchstaben enthält. Für Zahlen ist es besser, das Wort zu schreiben, anstatt eine mehrdeutige Darstellung zu verwenden. Beispielsweise ist "345" keine gute Grammatikform. Verwenden Sie auf ähnliche Weise anstelle von "IEEE" "I triple E". Verzichten Sie außerdem auf Interpunktion oder Symbole. Verwenden Sie beispielsweise anstelle von "die #1$10 Pizza!" die Zehn-Dollar-Pizza nummer 1. Das Einschließen nicht aussprechbarer Zeichen oder Symbole für einen Befehl kann dazu führen, dass die Sprach-Engine die Grammatik für alle Ihre Befehle nicht kompiliert. Zum Schluss müssen Sie Ihren Sprachparameter so gut wie möglich von anderen sprachgesteuerten Befehlen unterscheiden. Je größer die Ähnlichkeit zwischen der Sprachgrammatik für Befehle ist, desto wahrscheinlicher ist es, dass die Sprach-Engine einen Erkennungsfehler verursacht. Sie können auch die Konfidenzbewertungen verwenden, um zwei Befehle besser zu unterscheiden, die möglicherweise eine ähnliche oder ähnlich klingende Sprachgrammatik aufweisen.

Sie können Wörter in Ihre Grammatik in Form von "text\Aussprache" einschließen, wobei Text der angezeigte Text ist und die Aussprache Text ist, der die Aussprache verdeutlicht. Beispielsweise wird 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 einschließen, der die IPA-Aussprache darstellt.

Für japanische Spracherkennungs-Engines können Sie Grammatik in der Form "kana\kanji" definieren, um die alternativen Aussprachen 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 von Eigennamen in Kanji. Allerdings können Sie in Kanji einfach ohne kana passieren, in diesem Fall sollte der Motor auf alle akzeptablen Aussprachen für den Kanji lauschen. Sie können auch nur Kana passieren.

Beachten Sie außerdem, dass für Sprachen wie Japanisch, Chinesisch und Thailändisch, die keine Leerzeichen zum Festlegen von Wortumbrüchen verwenden, ein Unicode-Leerzeichen (0x200B) einfügen, um logische Wortumbrüche anzugeben.

Mit Ausnahme von Fehlern, die die Gruppierungs- oder Wiederholungsformatierungszeichen verwenden, meldet der Agent keine Fehler in Ihrer Grammatik, es sei denn, das Modul selbst meldet den Fehler. Wenn Sie Text in Ihrer Grammatik übergeben, den das Modul nicht kompilieren kann, aber das Modul nicht verarbeitet und als Fehler zurückgibt, 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. Wenden Sie sich an den Anbieter der Engine, um zu ermitteln, welche Grammatikoptionen unterstützt werden. Verwenden Sie srModeID , um ein bestimmtes Modul zu verwenden.

 

Der Betrieb dieser Eigenschaft hängt vom Zustand der Spracherkennungseigenschaft des Servers ab. Wenn beispielsweise die Spracherkennung deaktiviert oder nicht installiert ist, hat diese Eigenschaft keine Auswirkung.