Grammar Konstruktoren

Definition

Initialisiert eine neue Instanz der Grammar-Klasse.

Überlädt

Grammar()

Initialisiert eine neue Instanz der Grammar-Klasse.

Grammar(SrgsDocument, String, Uri, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll, und einen Basis-URI, um relative Verweise aufzulösen.

Grammar(Stream, String, Uri, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse eines Stream und gibt eine Stammregel und einen Basis-URI an, um relative Verweise aufzulösen.

Grammar(SrgsDocument, String, Uri)

Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt, gibt eine Stammregel an und definiert einen Basis-URI (Uniform Resource Identifier) zum Auflösen relativer Regelverweise.

Grammar(SrgsDocument, String, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll.

Grammar(Stream, String, Uri)

Initialisiert eine neue Instanz der Grammar-Klasse von einem Stream, gibt eine Stammregel an und definiert einen grundlegenden Uniform Resource Identifier (URI), um relative Regelverweise aufzulösen.

Grammar(Stream, String, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse aus Stream und gibt eine Stammregel an.

Grammar(String, String, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei, die eine Grammatikdefinition enthält, und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll.

Grammar(SrgsDocument, String)

Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt und gibt eine Stammregel an.

Grammar(Stream, String)

Initialisiert eine neue Instanz der Grammar-Klasse aus Stream und gibt eine Stammregel an.

Grammar(String)

Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei.

Grammar(SrgsDocument)

Initialisiert eine neue Instanz der Grammar-Klasse aus einem SrgsDocument-Objekt.

Grammar(String, String)

Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei und gibt eine Stammregel an.

Grammar(GrammarBuilder)

Initialisiert eine neue Instanz der Grammar-Klasse mit einem GrammarBuilder-Objekt.

Grammar(Stream)

Initialisiert eine neue Instanz der Grammar-Klasse mit einer Stream.

Hinweise

Sie können einen Grammar Konstruktor verwenden, um eine Instanz aus einem GrammarBuilder oder einem Objekt oder einer Datei oder SrgsDocument einer Datei Stream zu erstellen, die eine Grammar Beschreibung einer Grammatik in einem unterstützten Format enthält. Unterstützte Formate umfassen folgendes:

Grammatikkonstruktoren, die XML-Format-Grammatikdateien in ihren Argumenten akzeptieren, kompilieren die XML-Grammatiken zu einem Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.

Eine Spracherkennungs grammatik kann eine Stammregel definieren. Um ein Objekt zu erstellen, das angibt, welche Regel als Stammregel verwendet werden soll, verwenden Sie einen Grammar Konstruktor, der den ruleName Parameter akzeptiert.

Um ein Objekt zu erstellen, das einen Basis-URI angibt, um relative Regelbezüge zu lösen, verwenden Sie einen Grammar Konstruktor, der den baseUri Parameter verwendet.

Grammar()

Initialisiert eine neue Instanz der Grammar-Klasse.

protected:
 Grammar();
protected Grammar ();
Protected Sub New ()

Gilt für

Grammar(SrgsDocument, String, Uri, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll, und einen Basis-URI, um relative Verweise aufzulösen.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri, parameters As Object())

Parameter

srgsDocument
SrgsDocument

Eine Instanz von SrgsDocument, die die Einschränkungen für die Spracherkennungsgrammatik enthält.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

baseUri
Uri

Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der Grammatikbeschreibung zu verwenden ist, oder null.

parameters
Object[]

Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.

Ausnahmen

– Einer der Parameter enthält einen ungültigen Wert.

– Das SrgsDocument, das vom srgsDocument angegeben wird, enthält nicht die Regel, die in ruleName angegeben wird.

– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.

– Die Grammatik enthält einen relativen Regelverweis, der nicht von der standardmäßigen Uri-Basisregel für Grammatiken oder vom URI, der von baseUri bereitgestellt wird, aufgelöst werden kann.

Hinweise

Parameter für einen Initialisierungshandler können auch angegeben werden.

Gilt für

Grammar(Stream, String, Uri, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse eines Stream und gibt eine Stammregel und einen Basis-URI an, um relative Verweise aufzulösen.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar (System.IO.Stream stream, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri, parameters As Object())

Parameter

stream
Stream

Ein Stream, der an ein Eingabe/Ausgabe Objekt an geschlossen ist (einschließlich Dateien, VisualStudio-Ressourcen und DLLs), das eine Grammatikspezifikation enthält.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

baseUri
Uri

Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der Grammatikbeschreibung zu verwenden ist, oder null.

parameters
Object[]

Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.

Ausnahmen

– Einer der Parameter enthält einen ungültigen Wert.

– Der stream wird an eine Grammatik gebunden, die nicht die Regel enthält, die durch ruleName angegeben wird.

– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.

– Die Grammatik enthält einen relativen Regelverweis, der nicht von der standardmäßigen Uri-Basisregel für Grammatiken oder vom URI, der von baseUri bereitgestellt wird, aufgelöst werden kann.

Hinweise

Parameter für einen Initialisierungshandler können auch angegeben werden.

Gilt für

Grammar(SrgsDocument, String, Uri)

Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt, gibt eine Stammregel an und definiert einen Basis-URI (Uniform Resource Identifier) zum Auflösen relativer Regelverweise.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri)

Parameter

srgsDocument
SrgsDocument

Die Einschränkungen für die Spracherkennungsgrammatik.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel SrgsDocument zu verwenden.

baseUri
Uri

Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der SrgsDocument oder der null zu verwenden ist.

Ausnahmen

ruleName kann nicht aufgelöst werden oder ist nicht öffentlich oder ruleName ist null und srgsDocument enthält keine Stammregel.

srgsDocument ist null.

srgsDocument enthält einen Regelverweis, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine Spracherkennungsgrammatik in einer SrgsDocument Grammatik erstellt, die einen relativen Regelverweis auf die cities.xml-Datei enthält, und gibt einen URI an, der zum Auflösen des Regelverweis verwendet werden soll. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.

private static Grammar CreateSrgsDocumentGrammar3()  
{  
  // Create the SrgsDocument.  
  SrgsDocument document = new SrgsDocument();  

  // Create the Main rule and add it to the document.  
  SrgsRule mainRule = new SrgsRule("Main");  
  mainRule.Scope = SrgsRuleScope.Public;  

  SrgsItem item = new SrgsItem("Can I get a shuttle in");  

  // Create a relative URI for the cities rule.  
  Uri ruleUri = new Uri("cities.xml#Cities", UriKind.Relative);  

  item.Add(new SrgsRuleRef(ruleUri));  

  mainRule.Add(item);  
  document.Rules.Add(mainRule);  

  // Set the root rule.  
  document.Root = mainRule;  

  // Create the grammar.  
  Uri baseUri = new Uri(@"file://c:\temp\");  
  Grammar citiesGrammar = new Grammar(document, null, baseUri);  
  citiesGrammar.Name = "SrgsDocument Cities Grammar 3";  

  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Hinweise

Dieser Konstruktor übergibt keine Parameter an den Initialisierungshandler, und der sollte keinen Initialisierungshandler enthalten, der SrgsDocument Argumente erfordert.

Dieser Konstruktor überprüft baseUrinicht . Die LoadGrammar Methode eines SpeechRecognitionEngine Objekts SpeechRecognizer löst jedoch eine Ausnahme aus, wenn sie nicht alle Regelverweise in der Grammatikbeschreibung auflösen kann. Wenn baseUri dies nicht nullder Fall ist, verwendet die LoadGrammar Methode den URI, um Regelverweise aufzulösen, die sie sonst nicht auflösen können. Wenn baseUri eine Datei dargestellt wird, verwendet die LoadGrammar Methode sowohl die angegebene Datei als auch das Verzeichnis der Datei, wenn versucht wird, relative Regelverweise aufzulösen.

Siehe auch

Gilt für

Grammar(SrgsDocument, String, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse von einer Instanz von SrgsDocument und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, parameters As Object())

Parameter

srgsDocument
SrgsDocument

Eine Instanz von SrgsDocument, die die Einschränkungen für die Spracherkennungsgrammatik enthält.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

parameters
Object[]

Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.

Ausnahmen

– Einer der Parameter enthält einen ungültigen Wert.

– Das SrgsDocument, das vom srgsDocument angegeben wird, enthält nicht die Regel, die von ruleName angegeben wird.

– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.

Hinweise

Parameter für einen Initialisierungshandler können auch angegeben werden.

Gilt für

Grammar(Stream, String, Uri)

Initialisiert eine neue Instanz der Grammar-Klasse von einem Stream, gibt eine Stammregel an und definiert einen grundlegenden Uniform Resource Identifier (URI), um relative Regelverweise aufzulösen.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar (System.IO.Stream stream, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri)

Parameter

stream
Stream

Ein Stream, der eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

baseUri
Uri

Der Basis-URI, der zur Auflösung von jedem relativen Regelverweis in der Grammatikbeschreibung zu verwenden ist, oder null.

Ausnahmen

ruleName kann nicht aufgelöst werden oder ist nicht öffentlich, oder ruleName ist null und die Grammatikbeschreibung definiert keine Stammregel.

stream ist null.

Der Stream enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine lokale SRGS-Datei (shuttle.xml) aus einem Dateidatenstrom geladen. Die Datei enthält einen relativen Regelverweis auf eine Regel in der cities.xml-Datei und gibt einen Basis-URI an, der zum Auflösen des Regelverweis verwendet werden soll. Der Inhalt der dateien shuttle.xml und cities.xml wird in den XML-Beispielen angezeigt, die dem C#-Beispiel folgen.

private static Grammar CreateGrammarFromStream3()  
{  
  FileInfo file = new FileInfo(@".\shuttle.xml");  
  Uri baseUri = new Uri(@"file://c:\temp\");  
  Grammar citiesGrammar = new Grammar(file.OpenRead(), null, baseUri);  
  citiesGrammar.Name = "Stream Cities Grammar 3";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- shuttle.xml:   
    Defines an SRGS grammar for asking about a shuttle service. This grammar  
    references a Cities rule that is defined in the cities.xml grammar. -->  

  <rule id="Main">  
    <item>  
      Can I get a shuttle in  
      <ruleref uri="cities.xml#Cities"/>  
    </item>  
  </rule>  
</grammar>  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Hinweise

Dieser Konstruktor übergibt keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.

Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:

Dieser Konstruktor kompiliert Grammatikdateien im XML-Format in ein Binärformat, um sie zum Laden und Verbrauch durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit reduzieren, die zum Erstellen eines Grammar Objekts aus einer XML-Format-Grammatik erforderlich ist, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.

Dieser Konstruktor überprüft baseUrinicht . Die LoadGrammar Methode eines SpeechRecognitionEngine Objekts SpeechRecognizer löst jedoch eine Ausnahme aus, wenn sie nicht alle Regelverweise in der Grammatikbeschreibung auflösen kann. Wenn baseUri dies nicht nullder Fall ist, verwendet die LoadGrammar Methode den URI, um Regelverweise aufzulösen, die sie sonst nicht auflösen können. Wenn baseUri eine Datei dargestellt wird, wird sowohl die LoadGrammar angegebene Datei als auch das Verzeichnis der Datei verwendet, wenn versucht wird, relative Regelverweise aufzulösen.

Siehe auch

Gilt für

Grammar(Stream, String, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse aus Stream und gibt eine Stammregel an.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.IO.Stream stream, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, parameters As Object())

Parameter

stream
Stream

Ein Stream, der an ein Eingabe/Ausgabe Objekt an geschlossen ist (einschließlich Dateien, VisualStudio-Ressourcen und DLLs), das eine Grammatikspezifikation enthält.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

parameters
Object[]

Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.

Ausnahmen

Die stream ist mit einer Grammatik verbunden, die – Enthält keine in ruleName angegebene Regel

– Erfordert die Initialisierungsparameter, die sich von denen unterscheiden, die in parameters angegeben werden

  • Enthält einen relativen Regelverweis, der nicht durch die Standardbasisregel Uri für Grammatiken aufgelöst werden kann.

Hinweise

Parameter für einen Initialisierungshandler können auch angegeben werden.

Gilt für

Grammar(String, String, Object[])

Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei, die eine Grammatikdefinition enthält, und gibt den Namen einer Regel an, die der Einstiegspunkt der Grammatik sein soll.

public:
 Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (string path, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : string * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String, parameters As Object())

Parameter

path
String

Der Pfad zu einer Datei (einschließlich DLL), die eine Grammatikspezifikation enthält.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

parameters
Object[]

Parameter, die an den Initialisierungshandler zu übergeben sind, angegeben durch die OnInit-Eigenschaft für den Einstiegspunkt oder die Stammregel der zu erstellenden Grammar. Dieser Parameter kann NULL sein.

Ausnahmen

– Einer der Parameter enthält einen ungültigen Wert.

– Die Datei, die von path angegeben wird, enthält keine gültige Grammatik oder Regel, die in ruleName angegeben wurde.

– Der Inhalt der Arrayparameter stimmt nicht mit den Argumenten von einem der Initialisierungshandler der Regel überein.

– Die Grammatik enthält einen relativen Regelverweis, der nicht von der standardmäßigen Uri-Basisregel für Grammatiken aufgelöst werden kann.

Hinweise

Parameter für einen Initialisierungshandler können auch angegeben werden.

Gilt für

Grammar(SrgsDocument, String)

Initialisiert eine neue Instanz der Grammar Klasse aus einem SrgsDocument Objekt und gibt eine Stammregel an.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String)

Parameter

srgsDocument
SrgsDocument

Die Einschränkungen für die Spracherkennungsgrammatik.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel SrgsDocument zu verwenden.

Ausnahmen

ruleName kann nicht aufgelöst werden oder ist nicht öffentlich oder ruleName ist null und srgsDocument enthält keine Stammregel.

srgsDocument ist null.

srgsDocument enthält einen Regelverweis, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine Grammatik zur Spracherkennung in einer SrgsDocument Instanz erstellt und eine Regel angegeben, die als Stammregel der Grammatik verwendet werden soll. Im Beispiel wird ein Grammar Objekt aus der SrgsDocument Instanz erstellt und in das Spracherkennungsmodul geladen.

using System;  
using System.Speech.Recognition;  
using System.Speech.Recognition.SrgsGrammar;  

namespace SampleRecognition  
{  
  class Program  
  {  
    static void Main(string[] args)  

    // Initialize an in-process speech recognition engine.  
    {  
      using (SpeechRecognitionEngine recognizer =  
         new SpeechRecognitionEngine())  
      {  

        // Create the SrgsDocument.  
        SrgsDocument document = new SrgsDocument();  

        // Create the Cities rule and add it to the document.  
        SrgsRule citiesRule = new SrgsRule("Cities");  
        citiesRule.Scope = SrgsRuleScope.Public;  

        SrgsOneOf cityChoice = new SrgsOneOf();  
        cityChoice.Add(new SrgsItem("Seattle"));  
        cityChoice.Add(new SrgsItem("Los Angeles"));  
        cityChoice.Add(new SrgsItem("New York"));  
        cityChoice.Add(new SrgsItem("Miami"));  

        citiesRule.Add(cityChoice);  
        document.Rules.Add(citiesRule);  

        // Create the Main rule and add it to the document.  
        SrgsRule mainRule = new SrgsRule("Main");  
        mainRule.Scope = SrgsRuleScope.Public;  

        mainRule.Add(new SrgsItem("I would like to fly from"));  
        mainRule.Add(new SrgsRuleRef(citiesRule));  
        mainRule.Add(new SrgsItem("to"));  
        mainRule.Add(new SrgsRuleRef(citiesRule));  

        document.Rules.Add(mainRule);  

        // Create the Grammar object and specify which rule to use as the root.  
        Grammar citiesGrammar = new Grammar(document,"Main");  

        // Load the grammar object to the recognizer.  
        recognizer.LoadGrammarAsync(citiesGrammar);  

        // Attach a handler for the SpeechRecognized event.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  

        // Set the input to the recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

        // Start recognition.  
        recognizer.RecognizeAsync();  
        Console.WriteLine("Starting asynchronous recognition...");  

        // Keep the console window open.  
        Console.ReadLine();  
      }  
    }  

    // Handle the SpeechRecognized event.  
    static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)  
    {  
      Console.WriteLine("  Speech recognized: " + e.Result.Text);  
    }  
  }  
}  

Hinweise

Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler und sollte keinen Initialisierungshandler enthalten, der SrgsDocument Argumente erfordert.

Um ein Grammar Objekt aus einem SrgsDocument Objekt zu erstellen und einen Basis-URI anzugeben, der zum Auflösen relativer Regelverweise verwendet werden soll, verwenden Sie den Grammar Konstruktor.

Siehe auch

Gilt für

Grammar(Stream, String)

Initialisiert eine neue Instanz der Grammar-Klasse aus Stream und gibt eine Stammregel an.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar (System.IO.Stream stream, string ruleName);
new System.Speech.Recognition.Grammar : System.IO.Stream * string -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String)

Parameter

stream
Stream

Ein Stream, der eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

Ausnahmen

ruleName kann nicht aufgelöst werden oder ist nicht öffentlich, oder ruleName ist null und die Grammatikbeschreibung definiert keine Stammregel.

stream ist null.

Der Stream enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine lokale SRGS-Datei (cities.xml) aus einem Dateidatenstrom geladen und eine Regel angegeben, die als Stamm der Grammatik verwendet werden soll. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.

// Load a cities grammar from an I/O stream, use a specific  
// rule as the root of the grammar, and return the new grammar.   
private static Grammar CreateGrammarFromStream2()  
{  
  FileInfo file = new FileInfo(@"c:\temp\cities.xml");  
  Grammar citiesGrammar = new Grammar(file.OpenRead(), "Main");  
  citiesGrammar.Name = "Stream Cities Grammar 2";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Hinweise

Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.

Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:

Dieser Konstruktor kompiliert XML-Format-Grammatikdateien in ein Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.

Um einen Grammar Datenstrom zu erstellen und einen Basis-URI anzugeben, mit dem relative Regelbezüge aufgelöst werden sollen, verwenden Sie den Grammar Konstruktor.

Siehe auch

Gilt für

Grammar(String)

Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei.

public:
 Grammar(System::String ^ path);
public Grammar (string path);
new System.Speech.Recognition.Grammar : string -> System.Speech.Recognition.Grammar
Public Sub New (path As String)

Parameter

path
String

Der Pfad der Datei, die eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.

Ausnahmen

path enthält die leere Zeichenfolge (""), oder die Datei beschreibt eine Grammatik, die keine Stammregel enthält.

path ist null.

Die Datei enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine Spracherkennungs grammatik aus einer lokalen SRGS-Datei geladen, um ein Grammar Objekt zu erstellen. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.

// Load a cities grammar from a local file and  
// return the new grammar.   
private static Grammar CreateGrammarFromFile()  
{  
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");  
  citiesGrammar.Name = "SRGS File Cities Grammar";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Hinweise

Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.

Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:

Dieser Konstruktor kompiliert XML-Format-Grammatikdateien in ein Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.

Eine SRGS-Grammatik kann eine Stammregel definieren. Um ein Objekt aus einer Zeichenfolge zu erstellen und eine Grammar Stammregel anzugeben, verwenden Sie den Grammar Konstruktor.

Um ein Objekt zu erstellen, das einen Grammar Basis-URI angibt, mit dem relative Regelbezüge aufgelöst werden sollen, öffnen Sie die Datei in einem Dateidatenstrom, und verwenden Sie den Grammar.Grammar Konstruktor.

Siehe auch

Gilt für

Grammar(SrgsDocument)

Initialisiert eine neue Instanz der Grammar-Klasse aus einem SrgsDocument-Objekt.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument)

Parameter

srgsDocument
SrgsDocument

Die Einschränkungen für die Spracherkennungsgrammatik.

Ausnahmen

srgsDocument enthält keine Stammregel.

srgsDocument ist null.

srgsDocument enthält einen Regelverweis, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine Spracherkennungs grammatik in einer SrgsDocument Instanz erstellt, die dann zum Erstellen eines Grammar Objekts verwendet wird.

private static Grammar CreateSrgsDocumentGrammar()  
{  
  // Create the SrgsDocument.  
  SrgsDocument document = new SrgsDocument();  

  // Create the Cities rule and add it to the document.  
  SrgsRule citiesRule = new SrgsRule("Cities");  

  SrgsOneOf cityChoice = new SrgsOneOf();  
  cityChoice.Add(new SrgsItem("Seattle"));  
  cityChoice.Add(new SrgsItem("Los Angeles"));  
  cityChoice.Add(new SrgsItem("New York"));  
  cityChoice.Add(new SrgsItem("Miami"));  

  citiesRule.Add(cityChoice);  
  document.Rules.Add(citiesRule);  

  // Create the Main rule and add it to the document.  
  SrgsRule mainRule = new SrgsRule("Main");  
  mainRule.Scope = SrgsRuleScope.Public;  

  SrgsItem item = new SrgsItem("I would like to fly from");  
  item.Add(new SrgsRuleRef(citiesRule));  
  item.Add(new SrgsText("to"));  
  item.Add(new SrgsRuleRef(citiesRule));  

  mainRule.Add(item);  
  document.Rules.Add(mainRule);  

  // Set the root rule.  
  document.Root = mainRule;  

  // Create the Grammar object.  
  Grammar citiesGrammar = new Grammar(document);  
  citiesGrammar.Name = "SrgsDocument Cities Grammar";  

  return citiesGrammar;  
}  

Hinweise

Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler und sollte keinen Initialisierungshandler enthalten, der SrgsDocument Argumente erfordert.

Eine SrgsDocument Stammregel kann über eine Stammregel verfügen. Um ein Objekt zu erstellen, das eine Grammar Stammregel angibt, verwenden Sie den oder Grammar den Grammar Konstruktor.

Verwenden Sie den Konstruktor, um eine Spracherkennung von einer SrgsDocument Spracherkennung Grammar zu erstellen und einen Basis-URI anzugeben, mit dem Grammar relative Regelbezüge aufgelöst werden.

Siehe auch

Gilt für

Grammar(String, String)

Initialisiert eine neue Instanz der Grammar-Klasse aus einer Datei und gibt eine Stammregel an.

public:
 Grammar(System::String ^ path, System::String ^ ruleName);
public Grammar (string path, string ruleName);
new System.Speech.Recognition.Grammar : string * string -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String)

Parameter

path
String

Der Pfad der Datei, die eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.

ruleName
String

Der Bezeichner der Regel, die als Einstiegspunkt der Spracherkennungsgrammatik zu verwenden ist, oder null, um die standardmäßige Stammregel der Grammatikbeschreibung zu verwenden.

Ausnahmen

ruleName kann nicht aufgelöst werden oder ist nicht öffentlich, ist path die leere Zeichenfolge ("") oder ruleName ist null, und die Grammatikbeschreibung definiert keine Stammregel.

path ist null.

Die Datei enthält keine gültige Beschreibung oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine lokale SRGS-Datei (cities.xml) aus einer Datei geladen und eine Regel angegeben, die als Stamm der Grammatik verwendet werden soll. Der Inhalt der cities.xml-Datei wird im XML-Beispiel angezeigt, das dem C#-Beispiel folgt.

// Load a cities grammar from a local file, use a specific  
// rule as the root of the grammar, and return the new grammar.  
private static Grammar CreateGrammarFromFile2()  
{  
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml", "Main");  
  citiesGrammar.Name = "SRGS File Cities Grammar 2";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Hinweise

Dieser Konstruktor übergibt keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.

Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:

Dieser Konstruktor kompiliert Grammatikdateien im XML-Format in ein Binärformat, um sie zum Laden und Verbrauch durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit reduzieren, die zum Erstellen eines Grammar Objekts aus einer XML-Format-Grammatik erforderlich ist, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.

Um einen Grammar Basis-URI zu erstellen, der zum Auflösen relativer Regelverweise verwendet werden soll, öffnen Sie einen Dateidatenstrom für die Datei, und verwenden Sie den Grammar Konstruktor.

Siehe auch

Gilt für

Grammar(GrammarBuilder)

Initialisiert eine neue Instanz der Grammar-Klasse mit einem GrammarBuilder-Objekt.

public:
 Grammar(System::Speech::Recognition::GrammarBuilder ^ builder);
public Grammar (System.Speech.Recognition.GrammarBuilder builder);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.GrammarBuilder -> System.Speech.Recognition.Grammar
Public Sub New (builder As GrammarBuilder)

Parameter

builder
GrammarBuilder

Eine Instanz von GrammarBuilder, die die Einschränkungen für die Spracherkennungsgrammatik enthält.

Beispiele

Im folgenden Beispiel wird eine Spracherkennungs grammatik mit Choices und GrammarBuilder Objekten erstellt. Der Grammar Konstruktor erstellt ein Grammar Objekt aus dem GrammarBuilder Objekt.

// Create a grammar using a GrammarBuilder and return the new grammar.   
private static Grammar CreateGrammarBuilderGrammar()  
{  
  GrammarBuilder builder = new GrammarBuilder();  

  Choices cityChoice = new Choices (new string[]   
  {"Seattle", "New York", "Miami", "Los Angeles"});  

  builder.Append("I would like to fly from");  
  builder.Append(cityChoice);  
  builder.Append("to");  
  builder.Append(cityChoice);  

  Grammar citiesGrammar = new Grammar(builder);  
  citiesGrammar.Name = "GrammarBuilder Cities Grammar";  

  return citiesGrammar;  
}  

Siehe auch

Gilt für

Grammar(Stream)

Initialisiert eine neue Instanz der Grammar-Klasse mit einer Stream.

public:
 Grammar(System::IO::Stream ^ stream);
public Grammar (System.IO.Stream stream);
new System.Speech.Recognition.Grammar : System.IO.Stream -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream)

Parameter

stream
Stream

Ein Stream, der eine Spracherkennungsgrammatik in einem unterstützten Format beschreibt.

Ausnahmen

stream beschreibt eine Grammatik, die keine Stammregel enthält.

stream ist null.

Der Stream enthält keine gültige Beschreibung einer Grammatik oder beschreibt eine Grammatik, die einen Regelverweis enthält, der nicht aufgelöst werden kann.

Beispiele

Im folgenden Beispiel wird eine Spracherkennungs grammatik aus einer lokalen SRGS-Datei (cities.xml) mithilfe eines Dateidatenstroms erstellt. Der Inhalt der cities.xml Datei wird im folgenden C#-Beispiel angezeigt.

// Load a cities grammar from an I/O stream and    
// return the new grammar.   
private static Grammar CreateGrammarFromStream()  
{  
  string fileName = @"c:\temp\cities.xml";  
  Grammar citiesGrammar =  
    new Grammar(new FileStream(fileName, FileMode.Open));  
  citiesGrammar.Name = "Stream Cities Grammar";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Hinweise

Dieser Konstruktor übergeben keine Parameter an den Initialisierungshandler, und die Beschreibung sollte keinen Initialisierungshandler definieren, der Argumente erfordert.

Dieser Konstruktor kann eine Grammar Instanz aus den folgenden Formaten erstellen:

Dieser Konstruktor kompiliert XML-Format-Grammatikdateien in ein Binärformat, um sie für das Laden und Verwenden durch ein Spracherkennungsmodul zu optimieren. Sie können die Zeit verringern, die erforderlich ist, um ein Grammar Objekt aus einer XML-Format-Grammatik zu erstellen, indem Sie die Grammatik im Voraus mithilfe einer der Compile Methoden kompilieren.

Eine SRGS-Grammatik kann eine Stammregel definieren. Um ein Objekt aus einem Datenstrom zu erstellen und eine Grammar Stammregel anzugeben, verwenden Sie den oder Grammar den Grammar Konstruktor.

Verwenden Sie Grammar den Konstruktor, um ein Objekt aus einem Datenstrom zu erstellen und einen Grammar Basis-URI anzugeben, mit dem relative Regelbezüge aufgelöst werden.

Siehe auch

Gilt für