Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Der Microsoft-Agent ist ab Windows 7 veraltet und kann in nachfolgenden Versionen von Windows nicht verfügbar sein.]
HRESULT SetVoice(
BSTR bszVoice // the Voice setting for Command collection
);
Legt die Voice Texteigenschaft für eine Commandfest.
- Gibt S_OK zurück, um anzugeben, dass der Vorgang erfolgreich war.
Für eine Commands--Auflistung muss die Voice Texteigenschaft auf Sprachzugriff festgelegt sein. Außerdem muss die VoiceCaption oder Caption-Eigenschaft festgelegt sein, damit sie im Sprachbefehlsfenster angezeigt wird, und die Visible-Eigenschaft auf True festgelegt ist, die im Popupmenü des Zeichens angezeigt werden sollen.
Der von Ihnen angegebene BSTR-Ausdruck kann eckige Klammerzeichen ([ ]) enthalten, um optionale Wörter und vertikale Balkenzeichen (|) anzugeben, um alternative Zeichenfolgen anzugeben. Alternative müssen in Klammern eingeschlossen werden. Beispiel: "(hallo [there] | hi)" weist das Sprachmodul an, "hello", "hello there" oder "hi" für den Befehl zu akzeptieren. Denken Sie daran, geeignete Leerzeichen zwischen Wörtern einzuschließen, die Sie in Klammern oder Klammern sowie in anderen Text einfügen. Denken Sie daran, geeignete Leerzeichen zwischen dem Text in eckigen Klammern oder Klammern und dem Text einzuschließen, der sich nicht in Klammern oder Klammern befindet.
Mit dem Stern (*) -Operator können Sie null oder mehr Instanzen der Wörter angeben, die in der Gruppe enthalten sind, oder den Plus-Operator (+), um eine oder mehrere Instanzen anzugeben. Die folgenden Ergebnisse ergeben z. B. eine Grammatik, die "try this" unterstützt, "bitte versuchen Sie es", und "Bitte versuchen Sie es mit", mit unbegrenzten Iterationen von "bitte":
"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 folgen den normalen Regeln der Rangfolge und gelten für das unmittelbar vorangehende Textelement. Die folgende Grammatik ergibt z. B. "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 enthält z. B. 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 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 eckigen Klammern (ein optionales Gruppierungszeichen) verwendet werden können, kann dies die Effizienz der Verarbeitung der Grammatik des Agents verringern.
Sie können auch ein Auslassungszeichen (...) verwenden, um Worterkennungzu unterstützen. Das heißt, das Spracherkennungsmodul angibt, wörter, die an dieser Position in dieser Position in der Phrase gesprochen werden (manchmal auch als Garbage Wörter bezeichnet). Wenn Sie Ellipsen verwenden, erkennt das Sprachmodul nur bestimmte Wörter in der Zeichenfolge, unabhängig davon, wann mit benachbarten Wörtern oder Ausdrücken gesprochen wird. Wenn Sie diese Eigenschaft beispielsweise auf "[...] check mail [...]" das Spracherkennungsmodul entspricht Ausdrücken wie "Bitte überprüfen Sie E-Mail" oder "E-Mail bitte überprüfen" an diesen Befehl. Ellipsen können an einer beliebigen Stelle in einer Zeichenfolge verwendet werden. Achten Sie jedoch darauf, diese Technik zu verwenden, da Spracheinstellungen mit Auslassungspunkten das Potenzial unerwünschter Übereinstimmungen erhöhen können.
Wenn Sie die Wörter und Grammatik für Ihren Befehl definieren, schließen Sie mindestens ein Wort ein, das erforderlich ist. d. h. vermeiden Sie, nur optionale Wörter zu liefern. Stellen Sie außerdem sicher, dass das Wort nur wörter und Buchstaben enthält. Bei Zahlen ist es besser, das Wort zu formulieren, anstatt eine mehrdeutige Darstellung zu verwenden. Beispielsweise ist "345" kein gutes Grammatikformular. Verwenden Sie in ähnlicher Weise anstelle von "IEEE" "I triple E". Lassen Sie außerdem alle Interpunktionszeichen oder Symbole weg. Verwenden Sie z. B. anstelle von "#1 $ 10 Pizza!" "die Nummer ein zehn Dollar Pizza". Das Einschließen nicht pronomischer Zeichen oder Symbole für einen Befehl kann dazu führen, dass das Sprachmodul die Grammatik für alle Befehle nicht kompilieren kann. Machen Sie schließlich Ihren Sprachparameter so unterschiedlich wie möglich von anderen Sprachbefehlen, die Sie definieren. Je größer die Ähnlichkeit zwischen der Sprachgrammatik für Befehle ist, desto wahrscheinlicher ist die Wahrscheinlichkeit, dass das Sprachmodul einen Erkennungsfehler verursacht. Sie können auch die Konfidenzbewertungen verwenden, um zwischen zwei Befehlen besser zu unterscheiden, die möglicherweise eine ähnliche oder ähnliche Sprachgrammatik aufweisen.
Sie können ihre Grammatikwörter in Form von "Text\Aussprache", wobei "Text" der angezeigte Text ist und "Aussprache" Text ist, der die Aussprache klarstellt. 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 Nummernzeichen ("#") beginnen und dann den Text, der die IPA-Aussprache darstellt.
Bei japanischen Spracherkennungsmodulen können Sie die Grammatik in form "kana\kanji" definieren, wodurch die alternativen Aussprachen reduziert und die Genauigkeit erhöht wird. (Die Sortierung 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 einfach "kanji" ohne den Kana passieren, in diesem Fall sollte die Engine auf alle akzeptablen Aussprachen für den Kanji lauschen. Sie können auch nur Kana passieren.
Mit Ausnahme von Fehlern, die die Gruppierungs- oder Wiederholungsformatierungszeichen verwenden, meldet der Microsoft-Agent keine Fehler in Ihrer Grammatik, es sei denn, das Modul selbst meldet den Fehler. Wenn Sie Text in Der Grammatik übergeben, dass das Modul nicht kompiliert werden kann, aber das Modul nicht behandelt und als Fehler zurückgegeben wird, kann der Agent den Fehler nicht melden. Daher muss die Clientanwendung sorgfältig die Grammatik für die eigenschaft Voice definieren.
Anmerkung
Die verfügbaren Grammatikfeatures hängen möglicherweise vom Spracherkennungsmodul ab. Möglicherweise sollten Sie sich mit dem Hersteller des Moduls erkundigen, welche Grammatikoptionen unterstützt werden. Verwenden Sie die SRModeID-, um ein bestimmtes Modul zu verwenden.
Der Vorgang dieser Eigenschaft hängt vom Status des Spracherkennungsstatus des Microsoft Agent-Servers ab. Wenn die Spracherkennung beispielsweise deaktiviert oder nicht installiert ist, hat diese Funktion keine sofortige Wirkung. Wenn die Spracherkennung während einer Sitzung aktiviert ist, kann der Befehl jedoch zugegriffen werden, wenn die Clientanwendung eingabeaktiv ist.
Siehe auch
IAgentCommands::GetVoice, IAgentCommands::SetCaption, IAgentCommands::SetVisible