GrammarBuilder Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Mechanismus zum programmgesteuerten Erstellen der Einschränkungen für eine Spracherkennungsgrammatik bereit.
public ref class GrammarBuilder
public class GrammarBuilder
type GrammarBuilder = class
Public Class GrammarBuilder
- Vererbung
-
GrammarBuilder
Beispiele
Im folgenden Beispiel wird GrammarBuilderChoices eine Grammatik erstellt, die einen der beiden Ausdrücke "Make background colorChoice" oder "Set background to colorChoice" erkennt.
Im Beispiel wird ein Choices Objekt verwendet, um eine Liste zulässiger Werte für colorChoice aus einem Array von String Objekten zu erstellen. Ein Choices Objekt entspricht dem one-of Element in der SRGS-Spezifikation und enthält eine Reihe alternativer Ausdrücke, von denen jedes erkannt werden kann, wenn gesprochen wird. Im Beispiel wird auch ein Choices Objekt verwendet, um ein Array von zwei GrammarBuilder Objekten in einem Paar alternativer Ausdrücke zu gruppieren, die von der resultierenden Grammatik erkannt werden können. Alternative Wörter oder Ausdrücke sind eine Komponente der meisten Grammatiken, und das Choices Objekt stellt diese Funktionalität für Grammatiken bereit, die mit GrammarBuilder.
Das Beispiel erstellt schließlich ein Grammar Objekt aus einem GrammarBuilder konstruierten Objekt aus einem Choices Objekt.
private Grammar CreateColorGrammar()
{
// Create a set of color choices.
Choices colorChoice = new Choices(new string[] {"red", "green", "blue"});
GrammarBuilder colorElement = new GrammarBuilder(colorChoice);
// Create grammar builders for the two versions of the phrase.
GrammarBuilder makePhrase = new GrammarBuilder("Make background");
makePhrase.Append(colorElement);
GrammarBuilder setPhrase = new GrammarBuilder("Set background to");
setPhrase.Append(colorElement);
// Create a Choices for the two alternative phrases, convert the Choices
// to a GrammarBuilder, and construct the grammar from the result.
Choices bothChoices = new Choices(new GrammarBuilder[] {makePhrase, setPhrase});
Grammar grammar = new Grammar((GrammarBuilder)bothChoices);
grammar.Name = "backgroundColor";
return grammar;
}
Hinweise
Spracherkennungsgrammatiken werden in der Regel im XML-Format erstellt, das von der Spracherkennungsgrammatikspezifikation (Speech Recognition Grammar Specification, SRGS) Version 1.0 definiert ist. Wenn Sie mit SRGS vertraut sind, aber die Grammatik programmgesteuert generieren möchten, können Sie den System.Speech.Recognition.SrgsGrammar Namespace verwenden, dessen Member den Elementen und Attributen entsprechen, die von SRGS definiert werden. Wenn Sie mit SRGS nicht vertraut sind oder einen einfachen, programmgesteuerten Ansatz für die Erstellung von Grammatiken benötigen, mit denen Sie viele gängige Szenarien effizient ausführen können; Sie können die Klassen und Choices die GrammarBuilder Klassen verwenden.
Verwenden Sie GrammarBuilder Objekte, um eine hierarchische Struktur zu erstellen, die Choices aus Objekten besteht, die alternative Ausdrücke enthalten, mit Präambel- und Postamble-Ausdrücken an jedem Knoten interspersiert sind, und mit semantischen Werten, die die Bedeutung zurück an die Anwendung vermitteln.
Führen Sie die folgenden Schritte aus, um ein GrammarBuilderGrammar Objekt zu erstellen.
Erstellen eines GrammarBuilder-Objekts
Fügen Sie Einschränkungen an , GrammarBuilderz String . B. Objekte, Choices, , SemanticResultKey, SemanticResultValue, DictationGrammarund andere GrammarBuilder Objekte, die die Einschränkungen für die Grammatik definieren.
Verwenden Sie einen der Grammar Konstruktoren, um ein Grammar Objekt aus der abgeschlossenen GrammarBuilder Grammatik zu erstellen.
Die Erstellung eignet GrammarBuilder sich am besten für Grammatiken mit einer einzigen Regel, die Listen enthält, oder listen mit Listen. Um Grammatiken mit mehreren Regeln programmgesteuert zu erstellen oder interne Regelverweise zu erstellen, verwenden Sie die Klassen des System.Speech.Recognition.SrgsGrammar Namespaces.
Instanzen von GrammarBuilder können auch durch implizite Konvertierungen aus bestimmten anderen Klassen oder durch Kombinieren eines GrammarBuilder mit einem zweiten Objekt abgerufen werden, das Einschränkungen für eine Grammatik enthält. Weitere Informationen finden Sie unter den Implicit Operatoren und Addition Methoden Add .
Verwenden Sie zum Hinzufügen von Regeln zu einem vorhandenen GrammarBuilder, verwenden Sie die Add, Append, , AppendDictationund AppendRuleReferenceAppendWildcard Methoden.
Von Bedeutung
Die Spracherkennung kann eine Ausnahme auslösen, wenn eine Spracherkennungsgrammatik verwendet wird, die doppelte semantische Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen enthält, die den Wert desselben semantischen Elements wiederholt ändern können.
Um beim Debuggen zu helfen, gibt die DebugShowPhrases Eigenschaft den aktuellen Status der GrammarBuilder als Zeichenfolge zurück.
Konstruktoren
| Name | Beschreibung |
|---|---|
| GrammarBuilder() |
Initialisiert eine neue, leere Instanz der GrammarBuilder Klasse. |
| GrammarBuilder(Choices) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse aus einer Reihe von Alternativen. |
| GrammarBuilder(GrammarBuilder, Int32, Int32) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse aus einem wiederholten Element. |
| GrammarBuilder(SemanticResultKey) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse aus einem semantischen Schlüssel. |
| GrammarBuilder(SemanticResultValue) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse aus einem semantischen Wert. |
| GrammarBuilder(String, Int32, Int32) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse aus der Abfolge von Wörtern in einem String und gibt an, wie oft die String Wiederholte wiederholt werden kann. |
| GrammarBuilder(String, SubsetMatchingMode) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse für eine Teilmenge einer Abfolge von Wörtern. |
| GrammarBuilder(String) |
Initialisiert eine neue Instanz der GrammarBuilder Klasse aus einer Abfolge von Wörtern. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Culture |
Ruft die Kultur der Spracherkennungsgrammatik ab oder legt sie fest. |
| DebugShowPhrases |
Ruft eine Zeichenfolge, die den Inhalt und die Struktur der Grammatik enthält, die in der GrammarBuilder. |
Methoden
| Name | Beschreibung |
|---|---|
| Add(Choices, GrammarBuilder) |
Erstellt ein neues GrammarBuilder Objekt, das ein Choices Objekt gefolgt von einem GrammarBuilder Objekt enthält. |
| Add(GrammarBuilder, Choices) |
Erstellt ein neues GrammarBuilder Objekt, das ein GrammarBuilder Objekt gefolgt von einem Choices Objekt enthält. |
| Add(GrammarBuilder, GrammarBuilder) |
Erstellt eine neue GrammarBuilder , die eine Abfolge von zwei GrammarBuilder Objekten enthält. |
| Add(GrammarBuilder, String) |
Erstellt eine neue GrammarBuilder , die ein GrammarBuilder Objekt enthält, gefolgt von einem Ausdruck. |
| Add(String, GrammarBuilder) |
Erstellt eine neue GrammarBuilder , die einen Ausdruck gefolgt von einem GrammarBuilder Objekt enthält. |
| Append(Choices) |
Fügt eine Reihe von Alternativen zur aktuellen Sequenz von Grammatikelementen an. |
| Append(GrammarBuilder, Int32, Int32) |
Fügt ein wiederholtes Grammatikelement an die aktuelle Sequenz von Grammatikelementen an. |
| Append(GrammarBuilder) |
Fügt ein Grammatikelement an die aktuelle Sequenz von Grammatikelementen an. |
| Append(SemanticResultKey) |
Fügt einen semantischen Schlüssel an die aktuelle Sequenz von Grammatikelementen an. |
| Append(SemanticResultValue) |
Fügt einen semantischen Wert an die aktuelle Sequenz von Grammatikelementen an. |
| Append(String, Int32, Int32) |
Fügt einen wiederholten Ausdruck an die aktuelle Sequenz von Grammatikelementen an. |
| Append(String, SubsetMatchingMode) |
Fügt ein Element für eine Teilmenge eines Ausdrucks an die aktuelle Sequenz von Grammatikelementen an. |
| Append(String) |
Fügt einen Ausdruck an die aktuelle Sequenz von Grammatikelementen an. |
| AppendDictation() |
Fügt die Standardmäßige Diktiergrammatik an die aktuelle Sequenz von Grammatikelementen an. |
| AppendDictation(String) |
Fügt die angegebene Diktiergrammatik an die aktuelle Sequenz von Grammatikelementen an. |
| AppendRuleReference(String, String) |
Fügt die angegebene Regel einer Grammatikdefinitionsdatei an die aktuelle Sequenz von Grammatikelementen an. |
| AppendRuleReference(String) |
Fügt eine Grammatikdefinitionsdatei an die aktuelle Sequenz von Grammatikelementen an. |
| AppendWildcard() |
Fügt ein Erkennungsgrammatikelement an, das jeder Eingabe der aktuellen Grammatikelemente entspricht. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |