Freigeben über


GrammarBuilder Klasse

Definition

Stellt einen Mechanismus für das programmgesteuerte Erstellen von 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 GrammarBuilder werden-und-Objekte verwendet, Choices um eine Grammatik zu erstellen, die einen der beiden Ausdrücke, "Make background colorchoice" oder "Set Background on colorchoice", erkennen kann.

Im Beispiel wird ein- Choices Objekt verwendet, um eine Liste zulässiger Werte für colorchoice aus einem Array von-Objekten zu erstellen String . Ein Choices -Objekt ist analog zum one-of -Element in der SRGS-Spezifikation und enthält eine Reihe alternativer Ausdrücke, von denen jedes beim sprechen erkannt werden kann. Im Beispiel wird auch ein- Choices Objekt verwendet, um ein Array von zwei- GrammarBuilder Objekten in ein paar alternativer Ausdrücke zu gruppieren, die die resultierende Grammatik erkennen kann. 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 erstellt wurden GrammarBuilder .

Im Beispiel wird schließlich ein- Grammar Objekt aus einem erstellt, das GrammarBuilder aus einem-Objekt erstellt wurde Choices .

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

Sprach Erkennungs Grammatiken werden häufig in dem XML-Format erstellt, das in der sprach Erkennungs Grammatik-Spezifikation (SRGS), Version 1,0, definiert ist. Wenn Sie mit SRGS vertraut sind, die Grammatiken aber Programm gesteuert generieren möchten, können Sie den- System.Speech.Recognition.SrgsGrammar Namespace verwenden, dessen Member genau den Elementen und Attributen entsprechen, die von SRGS definiert werden. Wenn Sie mit SRGS nicht vertraut sind oder einen einfachen, programmgesteuerten Ansatz zur Erstellung von Grammatiken wünschen, mit denen Sie viele gängige Szenarien effizient erledigen können. Sie können die GrammarBuilder -Klasse und die- Choices Klasse verwenden.

Verwenden GrammarBuilder Sie-Objekte, um eine hierarchische Struktur zu erstellen, Choices die aus Objekten besteht, die Alternative Ausdrücke enthalten, die mit Präambel und Post-sprechenden Ausdrücken an jedem Knoten kombiniert werden, und mit semantischen Werten, die die Bedeutung zurück an die Anwendung vermitteln.

GrammarBuilder Grammar Verwenden Sie die folgenden Schritte, um ein-Objekt zum Erstellen eines-Objekts zu verwenden.

  1. Erstellen eines GrammarBuilder-Objekts

  2. Fügen Sie Einschränkungen an GrammarBuilder , z. b. String Objekte, Choices , SemanticResultKey , SemanticResultValue , DictationGrammar und andere Objekte, die GrammarBuilder die Einschränkungen für die Grammatik definieren.

  3. Verwenden Sie einen der- Grammar Konstruktoren, um ein- Grammar Objekt aus der abgeschlossenen Grammatik zu erstellen GrammarBuilder .

Die Erstellung mit GrammarBuilder eignet sich am besten für Grammatiken, die eine einzelne Regel mit Listen oder vielleicht Listen von Listen aufweisen. Wenn Sie Grammatiken Programm gesteuert erstellen möchten, die über mehrere Regeln verfügen oder interne Regel Verweise erstellen müssen, verwenden Sie die Klassen des- System.Speech.Recognition.SrgsGrammar Namespace.

Instanzen von GrammarBuilder können auch durch implizite Konvertierungen von 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 Addition Operatoren und und den- Add Methoden.

Um einer vorhandenen Regeln hinzuzufügen GrammarBuilder , verwenden Sie Add die Append Methoden,, AppendDictation , AppendRuleReference und AppendWildcard .

Wichtig

Die Spracherkennung kann eine Ausnahme auslösen, wenn eine sprach Erkennungs Grammatik verwendet wird, die doppelte Semantik Elemente mit demselben Schlüsselnamen oder mehreren semantischen Elementen enthält, die den Wert desselben semantischen Elements wiederholt ändern können.

Um das Debuggen zu unterstützen, gibt die- DebugShowPhrases Eigenschaft den aktuellen Status von GrammarBuilder als Zeichenfolge zurück.

Konstruktoren

GrammarBuilder()

Initialisiert eine neue leere Instanz der GrammarBuilder-Klasse.

GrammarBuilder(Choices)

Initialisiert eine neue Instanz der GrammarBuilder-Klasse aus einer Gruppe 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)

Initialisiert eine neue Instanz der GrammarBuilder-Klasse aus einer Sequenz von Wörtern.

GrammarBuilder(String, Int32, Int32)

Initialisiert eine neue Instanz der GrammarBuilder-Klasse aus der Sequenz von Wörtern in einem String und gibt an, wie oft der String wiederholt werden kann.

GrammarBuilder(String, SubsetMatchingMode)

Initialisiert eine neue Instanz der GrammarBuilder-Klasse für eine Teilmenge einer Sequenz von Wörtern.

Eigenschaften

Culture

Ruft die Kultur der Spracherkennungsgrammatik auf oder legt diese fest.

DebugShowPhrases

Ruft eine Zeichenfolge ab, die den Inhalt und die Struktur der Grammatik angezeigt, die in GrammarBuilder enthalten ist.

Methoden

Add(Choices, GrammarBuilder)

Erstellt einen neuen GrammarBuilder, der ein Choices-Objekt gefolgt von einem GrammarBuilder-Objekt enthält.

Add(GrammarBuilder, Choices)

Erstellt einen neuen GrammarBuilder, der ein GrammarBuilder-Objekt gefolgt von einem Choices-Objekt enthält.

Add(GrammarBuilder, GrammarBuilder)

Erstellt einen neuen GrammarBuilder, der eine Sequenz aus zwei GrammarBuilder-Objekten enthält.

Add(GrammarBuilder, String)

Erstellt ein neues GrammarBuilder, das ein GrammarBuilder-Objekt gefolgt von einem Begriff enthält.

Add(String, GrammarBuilder)

Erstellt ein neues GrammarBuilder, das einen Begriff gefolgt von einem GrammarBuilder-Objekt enthält.

Append(Choices)

Fügt einen Satz von Alternativen zur aktuellen Sequenz von Grammatikelementen an.

Append(GrammarBuilder)

Fügt der aktuellen Sequenz von Grammatikelementen eine Diktatgrammatik an.

Append(GrammarBuilder, Int32, Int32)

Fügt der aktuellen Sequenz von Grammatikelementen eine wiederholte Grammatik an.

Append(SemanticResultKey)

Fügt der aktuellen Sequenz von Grammatikelementen einen semantischen Schlüssel an.

Append(SemanticResultValue)

Fügt der aktuellen Sequenz von Grammatikelementen einen semantischen Schlüssel an.

Append(String)

Fügt der aktuellen Sequenz von Grammatikelementen einen Ausdruck an.

Append(String, Int32, Int32)

Fügt der aktuellen Sequenz von Grammatikelementen einen wiederholten Ausdruck an.

Append(String, SubsetMatchingMode)

Fügt der aktuellen Sequenz von Grammatikelementen ein Element für eine Teilmenge eines Ausdrucks an.

AppendDictation()

Fügt der aktuellen Sequenz von Grammatikelementen eine Standarddiktatgrammatik an.

AppendDictation(String)

Fügt eine angegebene Diktatgrammatik der aktuellen Sequenz von Grammatikelementen an.

AppendRuleReference(String)

Fügt der aktuellen Sequenz von Grammatikelementen eine Grammatikdefinitionsdatei an.

AppendRuleReference(String, String)

Fügt die angegebene Regel einer Grammatikdefinitionsdatei der aktuellen Sequenz von Grammatikelementen an.

AppendWildcard()

Fügt ein Anerkennungsgrammatikelement an, das jeder Eingabe in die aktuelle Sequenz von Grammatikelementen entspricht.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Operatoren

Addition(Choices, GrammarBuilder)

Erstellt einen neuen GrammarBuilder, der ein Choices-Objekt gefolgt von einem GrammarBuilder-Objekt enthält.

Addition(GrammarBuilder, Choices)

Erstellt ein neues GrammarBuilder, das einen GrammarBuilder gefolgt von einem Choices enthält.

Addition(GrammarBuilder, GrammarBuilder)

Erstellt einen neuen GrammarBuilder, der eine Sequenz aus zwei GrammarBuilder-Objekten enthält.

Addition(GrammarBuilder, String)

Erstellt ein neues GrammarBuilder, das einen GrammarBuilder gefolgt von einem Bergriff enthält.

Addition(String, GrammarBuilder)

Erstellt ein neues GrammarBuilder, das einen Begriff gefolgt von einem GrammarBuilder enthält.

Implicit(Choices to GrammarBuilder)

Konvertiert ein Choices-Objekt in ein GrammarBuilder-Objekt.

Implicit(SemanticResultKey to GrammarBuilder)

Konvertiert ein SemanticResultKey-Objekt in ein GrammarBuilder-Objekt.

Implicit(SemanticResultValue to GrammarBuilder)

Konvertiert ein SemanticResultValue-Objekt in ein GrammarBuilder-Objekt.

Implicit(String to GrammarBuilder)

Konvertiert eine Zeichenfolge in ein GrammarBuilder-Objekt.

Gilt für

Siehe auch