Condividi tramite


Grammar Costruttori

Definizione

Inizializza una nuova istanza della classe Grammar.

Overload

Grammar()

Inizializza una nuova istanza della classe Grammar.

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

Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica e un URI di base per risolvere i relativi riferimenti.

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

Inizializza una nuova istanza delle classi Grammar e Stream e specifica una regola radice e un URI di base per risolvere i riferimenti relativi.

Grammar(SrgsDocument, String, Uri)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i riferimenti alle regole relative.

Grammar(SrgsDocument, String, Object[])

Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica.

Grammar(Stream, String, Uri)

Inizializza una nuova istanza della classe Grammar da un flusso, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i relativi riferimenti della regola.

Grammar(Stream, String, Object[])

Inizializza una nuova istanza della classe Grammar da Stream e specifica una regola radice.

Grammar(String, String, Object[])

Inizializza una nuova istanza della classe Grammar da un file contenente una definizione di grammatica e specifica il nome di una regola che sarà il punto di ingresso della grammatica.

Grammar(SrgsDocument, String)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto e specifica una regola radice.

Grammar(Stream, String)

Inizializza una nuova istanza della classe Grammar da Stream e specifica una regola radice.

Grammar(String)

Inizializza una nuova istanza della classe Grammar da un file.

Grammar(SrgsDocument)

Inizializza una nuova istanza della classe Grammar con un oggetto SrgsDocument.

Grammar(String, String)

Inizializza una nuova istanza della classe Grammar da un file e specifica una regola radice.

Grammar(GrammarBuilder)

Inizializza una nuova istanza della classe Grammar da un oggetto GrammarBuilder.

Grammar(Stream)

Inizializza una nuova istanza della classe Grammar da un oggetto Stream.

Commenti

È possibile utilizzare un Grammar costruttore per creare un'istanza Grammar da un GrammarBuilder oggetto o SrgsDocument o da un file o un Stream oggetto contenente una descrizione di una grammatica in un formato supportato. I formati supportati includono:

I costruttori grammaticali che accettano file grammaticali in formato XML nei relativi argomenti compilano le grammatiche XML in un formato binario per ottimizzarle per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .

Una grammatica di riconoscimento vocale può definire una regola radice. Per creare un Grammar oggetto che specifica la regola da usare come regola radice, usare un costruttore che accetta il ruleName parametro .

Per creare un Grammar oggetto che specifica un URI di base per risolvere i riferimenti alle regole relative, usare un costruttore che accetta il baseUri parametro .

Grammar()

Inizializza una nuova istanza della classe Grammar.

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

Si applica a

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

Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica e un URI di base per risolvere i relativi riferimenti.

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

Parametri

srgsDocument
SrgsDocument

Istanza di SrgsDocument che contiene i vincoli per la grammatica di riconoscimento vocale.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

baseUri
Uri

L'URI di base da utilizzare per risolvere un riferimento di regola relativo nella descrizione grammaticale oppure null.

parameters
Object[]

Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.

Eccezioni

  • Un parametro contiene un valore non valido.

  • L'oggetto SrgsDocument specificato da srgsDocument non contiene la regola specificata in ruleName.

  • Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.

  • La grammatica ha un riferimento relativo a una regola che non può essere risolto dalla regola Uri di base predefinita per le grammatiche o dall'URI fornito da baseUri.

Commenti

I parametri per un gestore di inizializzazione possono essere specificati anche.

Si applica a

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

Inizializza una nuova istanza delle classi Grammar e Stream e specifica una regola radice e un URI di base per risolvere i riferimenti relativi.

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

Parametri

stream
Stream

Stream connesso a un oggetto input/output (inclusi i file, le risorse VisualStudio e le DLL) che contiene una specifica della grammatica.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

baseUri
Uri

L'URI di base da utilizzare per risolvere un riferimento di regola relativo nella descrizione grammaticale oppure null.

parameters
Object[]

Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.

Eccezioni

  • Un parametro contiene un valore non valido.

  • stream è connesso a una grammatica che non contiene la regola specificata da ruleName.

  • Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.

  • La grammatica contiene un riferimento relativo a una regola che non può essere risolto dalla regola Uri di base predefinita per le grammatiche o dall'URI fornito da baseUri.

Commenti

I parametri per un gestore di inizializzazione possono essere specificati anche.

Si applica a

Grammar(SrgsDocument, String, Uri)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i riferimenti alle regole relative.

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)

Parametri

srgsDocument
SrgsDocument

Vincoli per la grammatica del riconoscimento vocale.

ruleName
String

L'identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale, o null per utilizzare la regola radice predefinita di SrgsDocument.

baseUri
Uri

L'URI di base da utilizzare per risolvere un riferimento di regola relativo nell'oggetto SrgsDocument oppure null.

Eccezioni

ruleName non può essere risolto o non è pubblico, o ruleName è null e srgsDocument non contiene una regola radice.

srgsDocument è null.

srgsDocument contiene un riferimento di regola che non può essere risolto.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale in un SrgsDocument oggetto che contiene un riferimento a una regola relativa al file cities.xml e specifica un URI da usare per risolvere il riferimento alla regola. Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>  

Commenti

Questo costruttore non passa parametri al gestore di inizializzazione e SrgsDocument non deve contenere un gestore di inizializzazione che richiede argomenti.

Questo costruttore non convalida baseUri. Tuttavia, il LoadGrammar metodo di un SpeechRecognitionEngine oggetto o SpeechRecognizer genera un'eccezione se non riesce a risolvere tutti i riferimenti alla regola nella descrizione della grammatica. Se baseUri non nullè , il LoadGrammar metodo usa l'URI per risolvere eventuali riferimenti alle regole che non possono essere risolti in caso contrario. Se baseUri rappresenta un file, il LoadGrammar metodo usa sia il file designato che la directory del file quando tenta di risolvere i riferimenti alle regole relative.

Vedi anche

Si applica a

Grammar(SrgsDocument, String, Object[])

Inizializza una nuova istanza della classe Grammar da un'istanza dell'oggetto SrgsDocument e specifica il nome di una regola affinché sia il punto di ingresso della grammatica.

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

Parametri

srgsDocument
SrgsDocument

Istanza di SrgsDocument che contiene i vincoli per la grammatica di riconoscimento vocale.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

parameters
Object[]

Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.

Eccezioni

  • Un parametro contiene un valore non valido.

  • L'oggetto SrgsDocument specificato da srgsDocument non contiene la regola specificata da ruleName.

  • Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.

Commenti

I parametri per un gestore di inizializzazione possono essere specificati anche.

Si applica a

Grammar(Stream, String, Uri)

Inizializza una nuova istanza della classe Grammar da un flusso, specifica una regola radice e definisce un URI (Uniform Resource Identifier) di base per risolvere i relativi riferimenti della regola.

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)

Parametri

stream
Stream

Un flusso che descrive una grammatica di riconoscimento vocale in un formato supportato.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

baseUri
Uri

L'URI di base da utilizzare per risolvere un riferimento di regola relativo nella descrizione grammaticale oppure null.

Eccezioni

ruleName non può essere risolto o non è pubblico, o ruleName è null e la descrizione grammaticale non definisce una regola radice.

stream è null.

Il flusso non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.

Esempio

Nell'esempio seguente viene caricato un file SRGS locale (shuttle.xml) da un flusso di file. Il file contiene un riferimento a una regola relativa nel file di cities.xml e specifica un URI di base da usare per risolvere il riferimento alla regola. Il contenuto dei file shuttle.xml e cities.xml viene visualizzato negli esempi XML che seguono l'esempio 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>  

Commenti

Questo costruttore non passa parametri al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.

Questo costruttore può creare un'istanza Grammar dai formati seguenti:

Questo costruttore compila i file di grammatica in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un Grammar oggetto da una grammatica in formato XML compilando in anticipo la grammatica usando uno dei Compile metodi.

Questo costruttore non convalida baseUri. Tuttavia, il LoadGrammar metodo di un SpeechRecognitionEngine oggetto o SpeechRecognizer genera un'eccezione se non riesce a risolvere tutti i riferimenti alla regola nella descrizione della grammatica. Se baseUri non nullè , il LoadGrammar metodo usa l'URI per risolvere eventuali riferimenti alle regole che non possono essere risolti in caso contrario. Se baseUri rappresenta un file, l'oggetto LoadGrammar usa sia il file designato che la directory del file quando tenta di risolvere i riferimenti alle regole relative.

Vedi anche

Si applica a

Grammar(Stream, String, Object[])

Inizializza una nuova istanza della classe Grammar da Stream e specifica una regola radice.

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

Parametri

stream
Stream

Stream connesso a un oggetto input/output (inclusi i file, le risorse VisualStudio e le DLL) che contiene una specifica della grammatica.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

parameters
Object[]

Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.

Eccezioni

stream è connesso a una grammatica che:

  • Non contiene la regola specificata in ruleName

  • Richiede parametri di inizializzazione diversi da quelli specificati in parameters

  • Contiene un riferimento alla regola relativa che non può essere risolto dalla regola di base Uri predefinita per le grammatica.

Commenti

I parametri per un gestore di inizializzazione possono essere specificati anche.

Si applica a

Grammar(String, String, Object[])

Inizializza una nuova istanza della classe Grammar da un file contenente una definizione di grammatica e specifica il nome di una regola che sarà il punto di ingresso della grammatica.

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

Parametri

path
String

Il percorso di un file, incluso DLL, che contiene una specifica della grammatica.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

parameters
Object[]

Parametri da passare al gestore di inizializzazione specificato dalla proprietà OnInit per il punto di ingresso o la regola radice dell'oggetto Grammar da creare. Questo parametro può essere null.

Eccezioni

  • Un parametro contiene un valore non valido.

  • Il file specificato da path non contiene una grammatica valida o la regola specificata in ruleName.

  • Il contenuto dei parametri della matrice non corrisponde agli argomenti dei gestori di inizializzazione della regola.

  • La grammatica ha un riferimento relativo a una regola che non può essere risolto dalla regola Uri di base predefinita per le grammatiche.

Commenti

I parametri per un gestore di inizializzazione possono essere specificati anche.

Si applica a

Grammar(SrgsDocument, String)

Inizializza una nuova istanza della Grammar classe da un SrgsDocument oggetto e specifica una regola radice.

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)

Parametri

srgsDocument
SrgsDocument

Vincoli per la grammatica del riconoscimento vocale.

ruleName
String

L'identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale, o null per utilizzare la regola radice predefinita di SrgsDocument.

Eccezioni

ruleName non può essere risolto o non è pubblico, o ruleName è null e srgsDocument non contiene una regola radice.

srgsDocument è null.

srgsDocument contiene un riferimento di regola che non può essere risolto.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale in un'istanza SrgsDocument e viene specificata una regola da usare come regola radice della grammatica. L'esempio costruisce un Grammar oggetto dall'istanza SrgsDocument e lo carica nel motore di riconoscimento vocale.

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

Commenti

Questo costruttore non passa parametri al gestore di inizializzazione e non SrgsDocument deve contenere un gestore di inizializzazione che richiede argomenti.

Per creare un oggetto da un SrgsDocument oggetto e specificare un Grammar URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore.

Vedi anche

Si applica a

Grammar(Stream, String)

Inizializza una nuova istanza della classe Grammar da Stream e specifica una regola radice.

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)

Parametri

stream
Stream

Un flusso che descrive una grammatica di riconoscimento vocale in un formato supportato.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

Eccezioni

ruleName non può essere risolto o non è pubblico, o ruleName è null e la descrizione grammaticale non definisce una regola radice.

stream è null.

Il flusso non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.

Esempio

Nell'esempio seguente viene caricato un file SRGS locale (cities.xml) da un flusso di file e viene specificata una regola da usare come radice della grammatica. Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>  

Commenti

Questo costruttore non passa alcun parametro al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.

Questo costruttore può creare un'istanza Grammar dai formati seguenti:

Questo costruttore compila i file grammaticali in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .

Per creare un Grammar oggetto da un flusso e specificare un URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore .

Vedi anche

Si applica a

Grammar(String)

Inizializza una nuova istanza della classe Grammar da un file.

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)

Parametri

path
String

Il percorso del file che descrive una grammatica di riconoscimento vocale in un formato supportato.

Eccezioni

Il parametro path contiene la stringa vuota ("") o il file descrive una grammatica che non contiene una regola radice.

path è null.

Il file non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.

Esempio

Nell'esempio seguente viene caricata una grammatica di riconoscimento vocale da un file SRGS locale per compilare un Grammar oggetto . Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>  

Commenti

Questo costruttore non passa alcun parametro al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.

Questo costruttore può creare un'istanza Grammar dai formati seguenti:

Questo costruttore compila i file grammaticali in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .

Una grammatica SRGS può definire una regola radice. Per creare un Grammar oggetto da una stringa e specificare una regola radice, usare il Grammar costruttore .

Per creare un Grammar oggetto che specifica un URI di base da usare per risolvere i riferimenti alle regole relative, aprire il file in un flusso di file e usare il Grammar.Grammar costruttore .

Vedi anche

Si applica a

Grammar(SrgsDocument)

Inizializza una nuova istanza della classe Grammar con un oggetto 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)

Parametri

srgsDocument
SrgsDocument

Vincoli per la grammatica del riconoscimento vocale.

Eccezioni

srgsDocument non contiene una regola radice.

srgsDocument è null.

srgsDocument contiene un riferimento di regola che non può essere risolto.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale in un'istanza SrgsDocument di , che viene quindi usata per costruire un Grammar oggetto .

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

Commenti

Questo costruttore non passa parametri al gestore di inizializzazione e non SrgsDocument deve contenere un gestore di inizializzazione che richiede argomenti.

Un SrgsDocument oggetto può avere una regola radice. Per creare un Grammar oggetto che specifica una regola radice, utilizzare il Grammar costruttore o Grammar .

Per creare un riconoscimento Grammar vocale da un SrgsDocument oggetto e specificare un URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore .

Vedi anche

Si applica a

Grammar(String, String)

Inizializza una nuova istanza della classe Grammar da un file e specifica una regola radice.

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)

Parametri

path
String

Il percorso del file che descrive una grammatica di riconoscimento vocale in un formato supportato.

ruleName
String

Identificatore della regola da utilizzare come punto di ingresso della grammatica di riconoscimento vocale o null per utilizzare la regola radice predefinita della descrizione della grammatica.

Eccezioni

ruleName non può essere risolto o non è pubblico, path è la stringa vuota ("") o ruleName è null e la descrizione grammaticale non definisce una regola radice.

path è null.

Il file non contiene una descrizione valida o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.

Esempio

Nell'esempio seguente viene caricato un file SRGS locale (cities.xml) da un file e viene specificata una regola da usare come radice della grammatica. Il contenuto del file cities.xml viene visualizzato nell'esempio XML che segue l'esempio 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>  

Commenti

Questo costruttore non passa parametri al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.

Questo costruttore può creare un'istanza Grammar dai formati seguenti:

Questo costruttore compila i file di grammatica in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un Grammar oggetto da una grammatica in formato XML compilando in anticipo la grammatica usando uno dei Compile metodi.

Per creare un Grammar oggetto che specifica un URI di base da usare per risolvere i riferimenti alle regole relative, aprire un flusso di file per il file e usare il Grammar costruttore.

Vedi anche

Si applica a

Grammar(GrammarBuilder)

Inizializza una nuova istanza della classe Grammar da un oggetto 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)

Parametri

builder
GrammarBuilder

Istanza di GrammarBuilder che contiene i vincoli per la grammatica di riconoscimento vocale.

Esempio

Nell'esempio seguente viene creata una grammatica di riconoscimento vocale usando Choices oggetti e GrammarBuilder . Il Grammar costruttore crea un Grammar oggetto dall'oggetto 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;  
}  

Vedi anche

Si applica a

Grammar(Stream)

Inizializza una nuova istanza della classe Grammar da un oggetto 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)

Parametri

stream
Stream

Un flusso che descrive una grammatica di riconoscimento vocale in un formato supportato.

Eccezioni

stream descrive una grammatica che non contiene una regola radice.

stream è null.

Il flusso non contiene una descrizione valida di una grammatica, o descrive una grammatica contenente un riferimento a una regola che non può essere risolto.

Esempio

L'esempio seguente crea una grammatica di riconoscimento vocale da un file SRGS locale (cities.xml) usando un flusso di file. Il contenuto del file cities.xml viene visualizzato nell'esempio 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>  

Commenti

Questo costruttore non passa alcun parametro al gestore di inizializzazione e la descrizione non deve definire un gestore di inizializzazione che richiede argomenti.

Questo costruttore può creare un'istanza Grammar dai formati seguenti:

Questo costruttore compila i file grammaticali in formato XML in un formato binario per ottimizzarli per il caricamento e l'utilizzo da parte di un motore di riconoscimento vocale. È possibile ridurre la quantità di tempo necessaria per costruire un oggetto da una Grammar grammatica in formato XML compilando la grammatica in anticipo, usando uno dei Compile metodi .

Una grammatica SRGS può definire una regola radice. Per creare un Grammar oggetto da un flusso e specificare una regola radice, usare il Grammar costruttore o Grammar .

Per creare un Grammar oggetto da un flusso e specificare un URI di base da usare per risolvere i riferimenti alle regole relative, usare il Grammar costruttore .

Vedi anche

Si applica a