Sdílet prostřednictvím


Grammar Konstruktory

Definice

Inicializuje novou instanci Grammar třídy.

Přetížení

Grammar()

Inicializuje novou instanci Grammar třídy.

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

Inicializuje novou instanci Grammar třídy z instance SrgsDocument, a určuje název pravidla, který má být vstupním bodem gramatiky a základní identifikátor URI pro překlad relativních odkazů.

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

Inicializuje novou instanci Grammar třídy a Stream určuje kořenové pravidlo a základní identifikátor URI pro překlad relativních odkazů.

Grammar(SrgsDocument, String, Uri)

Inicializuje novou instanci Grammar třídy z objektu SrgsDocument , určuje kořenové pravidlo a definuje základní identifikátor URI (Uniform Resource Identifier) pro překlad relativních odkazů na pravidlo.

Grammar(SrgsDocument, String, Object[])

Inicializuje novou instanci Grammar třídy z instance a SrgsDocumenturčuje název pravidla, které má být vstupním bodem gramatiky.

Grammar(Stream, String, Uri)

Inicializuje novou instanci Grammar třídy ze streamu, určuje kořenové pravidlo a definuje základní identifikátor URI (Uniform Resource Identifier) pro překlad odkazů na relativní pravidlo.

Grammar(Stream, String, Object[])

Inicializuje novou instanci Grammar třídy z a Stream určuje kořenové pravidlo.

Grammar(String, String, Object[])

Inicializuje novou instanci Grammar třídy ze souboru, který obsahuje definici gramatiky, a určuje název pravidla, které má být vstupním bodem gramatiky.

Grammar(SrgsDocument, String)

Inicializuje novou instanci Grammar třídy z objektu SrgsDocument a určuje kořenové pravidlo.

Grammar(Stream, String)

Inicializuje novou instanci Grammar třídy z a Stream určuje kořenové pravidlo.

Grammar(String)

Inicializuje novou instanci Grammar třídy ze souboru.

Grammar(SrgsDocument)

Inicializuje novou instanci Grammar třídy z objektu SrgsDocument .

Grammar(String, String)

Inicializuje novou instanci Grammar třídy ze souboru a určuje kořenové pravidlo.

Grammar(GrammarBuilder)

Inicializuje novou instanci Grammar třídy z objektu GrammarBuilder .

Grammar(Stream)

Inicializuje novou instanci Grammar třídy z objektu Stream.

Poznámky

Konstruktor Grammar můžete použít k vytvoření Grammar instance z objektu GrammarBuilder nebo SrgsDocument ze souboru nebo ze souboru nebo z objektu, Stream který obsahuje popis gramatiky v podporovaném formátu. Mezi podporované formáty patří:

Konstruktory gramatiky, které přijímají gramatické soubory formátu XML v argumentech, kompilují gramatiky XML do binárního formátu, aby je optimalizovaly pro načítání a spotřebu strojem pro rozpoznávání řeči. Množství času potřebného k vytvoření Grammar objektu z gramatiky ve formátu XML můžete zkrátit tak, že předem kompilujete gramatiku pomocí jedné z Compile metod.

Gramatika rozpoznávání řeči může definovat kořenové pravidlo. Chcete-li vytvořit Grammar objekt, který určuje pravidlo, které se má použít jako kořenové pravidlo, použijte konstruktor, který přijímá ruleName parametr.

Chcete-li vytvořit Grammar objekt, který určuje základní identifikátor URI pro překlad odkazů na relativní pravidlo, použijte konstruktor, který přebírá baseUri parametr.

Grammar()

Inicializuje novou instanci Grammar třídy.

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

Platí pro

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

Inicializuje novou instanci Grammar třídy z instance SrgsDocument, a určuje název pravidla, který má být vstupním bodem gramatiky a základní identifikátor URI pro překlad relativních odkazů.

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())

Parametry

srgsDocument
SrgsDocument

Instance SrgsDocument , která obsahuje omezení gramatiky rozpoznávání řeči.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

baseUri
Uri

Základní identifikátor URI, který se má použít k vyřešení odkazu na relativní pravidlo v popisu gramatiky nebo null.

parameters
Object[]

Parametry, které se mají předat obslužné rutině inicializace určené OnInit vlastností pro vstupní bod nebo kořenové pravidlo, které Grammar se má vytvořit. Tento parametr může být null.

Výjimky

– Některý z parametrů obsahuje neplatnou hodnotu.

  • Zadaná SrgsDocument srgsDocument uživatelem neobsahuje pravidlo zadané v ruleName.

  • Obsah parametrů pole neodpovídá argumentům žádných obslužných rutin inicializace pravidla.

  • Gramatika má relativní odkaz na pravidlo, které nelze vyřešit výchozím základním Uri pravidlem pro gramatiky nebo identifikátor URI zadaný .baseUri

Poznámky

Parametry pro inicializační obslužnou rutinu mohou být také zadány.

Platí pro

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

Inicializuje novou instanci Grammar třídy a Stream určuje kořenové pravidlo a základní identifikátor URI pro překlad relativních odkazů.

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())

Parametry

stream
Stream

Připojený Stream k vstupnímu/výstupnímu objektu (včetně souborů, prostředků VisualStudio a knihoven DLL), který obsahuje specifikaci gramatiky.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

baseUri
Uri

Základní identifikátor URI, který se má použít k překladu jakéhokoli relativního odkazu na pravidlo v popisu gramatiky nebo null.

parameters
Object[]

Parametry, které se mají předat obslužné rutině inicializace určené OnInit vlastností vstupního bodu nebo kořenovému pravidlu Grammar vytvoření. Tento parametr může být null.

Výjimky

– Některý z parametrů obsahuje neplatnou hodnotu.

  • Je stream připojen k gramatikě, která neobsahuje pravidlo určené ruleName.

– Obsah parametrů pole neodpovídá argumentům žádných obslužných rutin inicializace pravidla.

  • Gramatika obsahuje relativní odkaz na pravidlo, které nelze vyřešit výchozím základním Uri pravidlem pro gramatiky nebo identifikátor URI zadaný .baseUri

Poznámky

Parametry obslužné rutiny inicializace mohou být také zadány.

Platí pro

Grammar(SrgsDocument, String, Uri)

Inicializuje novou instanci Grammar třídy z objektu SrgsDocument , určuje kořenové pravidlo a definuje základní identifikátor URI (Uniform Resource Identifier) pro překlad relativních odkazů na pravidlo.

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)

Parametry

srgsDocument
SrgsDocument

Omezení gramatiky rozpoznávání řeči.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo .SrgsDocument

baseUri
Uri

Základní identifikátor URI, který se má použít k vyřešení jakéhokoli relativního odkazu na pravidlo v souboru SrgsDocumentnebo null.

Výjimky

ruleNamenelze vyřešit nebo není veřejné nebo není null srgsDocument veřejné nebo ruleName neobsahuje kořenové pravidlo.

srgsDocument je null.

srgsDocument obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči v SrgsDocument jazyce, který obsahuje relativní pravidlo odkaz na soubor cities.xml a určuje identifikátor URI, který se má použít k překladu odkazu na pravidlo. Obsah souboru cities.xml se zobrazí v příkladu XML, který následuje po příkladu jazyka C#.

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>  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a SrgsDocument neměla by obsahovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Tento konstruktor neověřuje baseUri. Metoda SpeechRecognitionEngine nebo SpeechRecognizer objekt však vyvolá výjimku, LoadGrammar pokud nemůže přeložit všechny odkazy na pravidlo v popisu gramatiky. Pokud baseUri není null, LoadGrammar metoda pomocí identifikátoru URI přeloží všechny odkazy na pravidlo, které nemůže jinak vyřešit. Pokud baseUri představuje soubor, použije metoda při pokusu o překlad odkazů na relativní pravidlo jak určený soubor, LoadGrammar tak adresář souboru.

Viz také

Platí pro

Grammar(SrgsDocument, String, Object[])

Inicializuje novou instanci Grammar třídy z instance a SrgsDocumenturčuje název pravidla, které má být vstupním bodem gramatiky.

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())

Parametry

srgsDocument
SrgsDocument

Instance SrgsDocument , která obsahuje omezení gramatiky rozpoznávání řeči.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

parameters
Object[]

Parametry, které se mají předat obslužné rutině inicializace určené OnInit vlastností vstupního bodu nebo kořenovému pravidlu Grammar vytvoření. Tento parametr může být null.

Výjimky

– Některý z parametrů obsahuje neplatnou hodnotu.

  • Zadané SrgsDocument uživatelem srgsDocument neobsahuje pravidlo určené ruleName.

– Obsah parametrů pole neodpovídá argumentům žádných obslužných rutin inicializace pravidla.

Poznámky

Parametry obslužné rutiny inicializace mohou být také zadány.

Platí pro

Grammar(Stream, String, Uri)

Inicializuje novou instanci Grammar třídy ze streamu, určuje kořenové pravidlo a definuje základní identifikátor URI (Uniform Resource Identifier) pro překlad odkazů na relativní pravidlo.

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)

Parametry

stream
Stream

Stream, který popisuje gramatiku rozpoznávání řeči v podporovaném formátu.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

baseUri
Uri

Základní identifikátor URI, který se má použít k překladu jakéhokoli relativního odkazu na pravidlo v popisu gramatiky nebo null.

Výjimky

ruleName nelze vyřešit nebo není veřejný nebo není veřejný nebo ruleName je null a popis gramatiky nedefinuje kořenové pravidlo.

stream je null.

Stream neobsahuje platný popis nebo popisuje gramatiku, která obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad načte místní soubor SRGS (shuttle.xml) ze streamu souborů. Soubor obsahuje relativní odkaz na pravidlo v souboru cities.xml a určuje základní identifikátor URI, který se má použít k překladu odkazu na pravidlo. Obsah souborů shuttle.xml a cities.xml se zobrazí v příkladech XML, které následují v příkladu jazyka C#.

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>  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a popis by neměl definovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Tento konstruktor může vytvořit Grammar instanci z následujících formátů:

Tento konstruktor kompiluje gramatické soubory formátu XML do binárního formátu, aby je optimalizoval pro načítání a spotřebu modulem pro rozpoznávání řeči. Množství času potřebného k vytvoření Grammar objektu z gramatiky ve formátu XML můžete zkrátit tak, že předem kompilujete gramatiku pomocí jedné z Compile metod.

Tento konstruktor neověřuje baseUri. Metoda SpeechRecognitionEngine nebo SpeechRecognizer objekt však vyvolá výjimku, LoadGrammar pokud nemůže přeložit všechny odkazy na pravidlo v popisu gramatiky. Pokud baseUri není null, LoadGrammar metoda pomocí identifikátoru URI přeloží všechny odkazy na pravidlo, které nemůže jinak vyřešit. Pokud baseUri představuje soubor, použije se LoadGrammar při pokusu o překlad odkazů na relativní pravidlo jak určený soubor, tak adresář souboru.

Viz také

Platí pro

Grammar(Stream, String, Object[])

Inicializuje novou instanci Grammar třídy z a Stream určuje kořenové pravidlo.

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())

Parametry

stream
Stream

Připojený Stream k vstupnímu/výstupnímu objektu (včetně souborů, prostředků VisualStudio a knihoven DLL), který obsahuje specifikaci gramatiky.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

parameters
Object[]

Parametry, které se mají předat obslužné rutině inicializace určené OnInit vlastností vstupního bodu nebo kořenovému pravidlu Grammar vytvoření. Tento parametr může být null.

Výjimky

stream je připojen k gramatikě, která:

  • Neobsahuje pravidlo zadané v ruleName

– Vyžaduje inicializační parametry odlišné od parametrů zadaných v parameters

– Obsahuje relativní odkaz na pravidlo, které nelze vyřešit výchozím základním Uri pravidlem pro gramatiky.

Poznámky

Parametry obslužné rutiny inicializace mohou být také zadány.

Platí pro

Grammar(String, String, Object[])

Inicializuje novou instanci Grammar třídy ze souboru, který obsahuje definici gramatiky, a určuje název pravidla, které má být vstupním bodem gramatiky.

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())

Parametry

path
String

Cesta k souboru, včetně knihoven DLL, která obsahuje specifikaci gramatiky.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

parameters
Object[]

Parametry, které se mají předat obslužné rutině inicializace určené OnInit vlastností vstupního bodu nebo kořenovému pravidlu Grammar vytvoření. Tento parametr může být null.

Výjimky

– Některý z parametrů obsahuje neplatnou hodnotu.

  • Soubor zadaný pomocí path neobsahuje platnou gramatiku nebo pravidlo zadané v ruleName.

– Obsah parametrů pole neodpovídá argumentům žádných obslužných rutin inicializace pravidla.

– Gramatika má relativní odkaz na pravidlo, které nelze vyřešit výchozím základním Uri pravidlem pro gramatiky.

Poznámky

Parametry obslužné rutiny inicializace mohou být také zadány.

Platí pro

Grammar(SrgsDocument, String)

Inicializuje novou instanci Grammar třídy z objektu SrgsDocument a určuje kořenové pravidlo.

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)

Parametry

srgsDocument
SrgsDocument

Omezení gramatiky rozpoznávání řeči.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo .SrgsDocument

Výjimky

ruleNamenelze vyřešit nebo není veřejné nebo není null srgsDocument veřejné nebo ruleName neobsahuje kořenové pravidlo.

srgsDocument je null.

srgsDocument obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči v SrgsDocument instanci a určuje pravidlo, které se má použít jako kořenové pravidlo gramatiky. Příklad vytvoří Grammar objekt z SrgsDocument instance a načte ho do modulu pro rozpoznávání řeči.

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);  
    }  
  }  
}  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a SrgsDocument neměla by obsahovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Chcete-li vytvořit Grammar objekt z SrgsDocument a zadat základní identifikátor URI, který se má použít k překladu relativních odkazů na pravidlo, použijte Grammar konstruktor.

Viz také

Platí pro

Grammar(Stream, String)

Inicializuje novou instanci Grammar třídy z a Stream určuje kořenové pravidlo.

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)

Parametry

stream
Stream

Stream, který popisuje gramatiku rozpoznávání řeči v podporovaném formátu.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

Výjimky

ruleName nelze vyřešit nebo není veřejný nebo není veřejný nebo ruleName je null a popis gramatiky nedefinuje kořenové pravidlo.

stream je null.

Stream neobsahuje platný popis nebo popisuje gramatiku, která obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad načte místní soubor SRGS (cities.xml) ze streamu souboru a určuje pravidlo, které se má použít jako kořen gramatiky. Obsah souboru cities.xml se zobrazí v příkladu XML, který následuje po příkladu jazyka C#.

// 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>  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a popis by neměl definovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Tento konstruktor může vytvořit Grammar instanci z následujících formátů:

Tento konstruktor kompiluje gramatické soubory formátu XML do binárního formátu, aby je optimalizoval pro načítání a spotřebu modulem pro rozpoznávání řeči. Množství času potřebného k vytvoření Grammar objektu z gramatiky ve formátu XML můžete zkrátit tak, že předem kompilujete gramatiku pomocí jedné z Compile metod.

Pokud chcete vytvořit Grammar datový proud a zadat základní identifikátor URI, který se má použít k překladu relativních odkazů na pravidlo, použijte Grammar konstruktor.

Viz také

Platí pro

Grammar(String)

Inicializuje novou instanci Grammar třídy ze souboru.

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)

Parametry

path
String

Cesta k souboru, který popisuje gramatiku rozpoznávání řeči v podporovaném formátu.

Výjimky

path obsahuje prázdný řetězec ("") nebo soubor popisuje gramatiku, která neobsahuje kořenové pravidlo.

path je null.

Soubor neobsahuje platný popis nebo popisuje gramatiku, která obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad načte gramatiku rozpoznávání řeči z místního souboru SRGS k sestavení objektu Grammar . Obsah souboru cities.xml se zobrazí v příkladu XML, který následuje po příkladu jazyka C#.

// 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>  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a popis by neměl definovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Tento konstruktor může vytvořit Grammar instanci z následujících formátů:

Tento konstruktor kompiluje gramatické soubory formátu XML do binárního formátu, aby je optimalizoval pro načítání a spotřebu modulem pro rozpoznávání řeči. Množství času potřebného k vytvoření Grammar objektu z gramatiky ve formátu XML můžete zkrátit tak, že předem kompilujete gramatiku pomocí jedné z Compile metod.

Gramatika SRGS může definovat kořenové pravidlo. Pokud chcete vytvořit Grammar objekt z řetězce a zadat kořenové pravidlo, použijte Grammar konstruktor.

Chcete-li vytvořit Grammar objekt, který určuje základní identifikátor URI, který se má použít k překladu odkazů na relativní pravidlo, otevřete soubor ve streamu souboru a použijte Grammar.Grammar konstruktor.

Viz také

Platí pro

Grammar(SrgsDocument)

Inicializuje novou instanci Grammar třídy z objektu SrgsDocument .

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)

Parametry

srgsDocument
SrgsDocument

Omezení gramatiky rozpoznávání řeči.

Výjimky

srgsDocument neobsahuje kořenové pravidlo.

srgsDocument je null.

srgsDocument obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči v SrgsDocument instanci, která se pak použije k vytvoření objektu Grammar .

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;  
}  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a SrgsDocument neměla by obsahovat obslužnou rutinu inicializace, která vyžaduje argumenty.

A SrgsDocument může mít kořenové pravidlo. K vytvoření objektu Grammar , který určuje kořenové pravidlo, použijte Grammar konstruktor Grammar .

Pokud chcete vytvořit rozpoznávání Grammar řeči z SrgsDocument a zadat základní identifikátor URI, který se má použít k překladu odkazů na relativní pravidlo, použijte Grammar konstruktor.

Viz také

Platí pro

Grammar(String, String)

Inicializuje novou instanci Grammar třídy ze souboru a určuje kořenové pravidlo.

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)

Parametry

path
String

Cesta k souboru, který popisuje gramatiku rozpoznávání řeči v podporovaném formátu.

ruleName
String

Identifikátor pravidla, které se má použít jako vstupní bod gramatiky rozpoznávání řeči, nebo null použít výchozí kořenové pravidlo popisu gramatiky.

Výjimky

ruleName nelze přeložit nebo není veřejný, path je prázdný řetězec ("") nebo ruleName je null a popis gramatiky nedefinuje kořenové pravidlo.

path je null.

Soubor neobsahuje platný popis nebo popisuje gramatiku, která obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad načte místní soubor SRGS (cities.xml) ze souboru a určuje pravidlo, které se má použít jako kořen gramatiky. Obsah souboru cities.xml se zobrazí v příkladu XML, který následuje po příkladu jazyka C#.

// 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>  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a popis by neměl definovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Tento konstruktor může vytvořit Grammar instanci z následujících formátů:

Tento konstruktor kompiluje gramatické soubory formátu XML do binárního formátu, aby je optimalizoval pro načítání a spotřebu modulem pro rozpoznávání řeči. Množství času potřebného k vytvoření Grammar objektu z gramatiky ve formátu XML můžete zkrátit tak, že předem kompilujete gramatiku pomocí jedné z Compile metod.

Chcete-li vytvořit Grammar základní identifikátor URI, který se má použít k překladu odkazů na relativní pravidlo, otevřete datový proud souboru pro soubor a použijte Grammar konstruktor.

Viz také

Platí pro

Grammar(GrammarBuilder)

Inicializuje novou instanci Grammar třídy z objektu GrammarBuilder .

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)

Parametry

builder
GrammarBuilder

Instance GrammarBuilder , která obsahuje omezení gramatiky rozpoznávání řeči.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči pomocí Choices objektů a GrammarBuilder objektů. Konstruktor Grammar vytvoří Grammar objekt z objektu GrammarBuilder .

// 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;  
}  

Viz také

Platí pro

Grammar(Stream)

Inicializuje novou instanci Grammar třídy z objektu 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)

Parametry

stream
Stream

Stream, který popisuje gramatiku rozpoznávání řeči v podporovaném formátu.

Výjimky

stream popisuje gramatiku, která neobsahuje kořenové pravidlo.

stream je null.

Stream neobsahuje platný popis gramatiky nebo popisuje gramatiku, která obsahuje odkaz na pravidlo, který nelze vyřešit.

Příklady

Následující příklad vytvoří gramatiku rozpoznávání řeči z místního souboru SRGS (cities.xml) pomocí datového proudu souborů. Obsah souboru cities.xml se zobrazí v následujícím příkladu jazyka C#.

// 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>  

Poznámky

Tento konstruktor nepředává žádné parametry obslužné rutině inicializace a popis by neměl definovat obslužnou rutinu inicializace, která vyžaduje argumenty.

Tento konstruktor může vytvořit Grammar instanci z následujících formátů:

Tento konstruktor kompiluje gramatické soubory formátu XML do binárního formátu, aby je optimalizoval pro načítání a spotřebu modulem pro rozpoznávání řeči. Množství času potřebného k vytvoření Grammar objektu z gramatiky ve formátu XML můžete zkrátit tak, že předem kompilujete gramatiku pomocí jedné z Compile metod.

Gramatika SRGS může definovat kořenové pravidlo. Pokud chcete vytvořit Grammar objekt ze streamu a zadat kořenové pravidlo, použijte objekt Grammar nebo Grammar konstruktor.

Pokud chcete vytvořit Grammar objekt ze streamu a zadat základní identifikátor URI, který se má použít k překladu relativních odkazů na pravidlo, použijte Grammar konstruktor.

Viz také

Platí pro