Compartir vía


Grammar Constructores

Definición

Inicializa una nueva instancia de la clase Grammar.

Sobrecargas

Grammar()

Inicializa una nueva instancia de la clase Grammar.

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

Inicializa una nueva instancia de la clase Grammar a partir de una instancia de SrgsDocument, y especifica que el nombre de una regla sea el punto de entrada a la gramática y un URI base para resolver las referencias relativas.

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

Inicializa una nueva instancia de la clase Grammar de Stream y especifica una regla raíz y un URI base para resolver las referencias relativas.

Grammar(SrgsDocument, String, Uri)

Inicializa una nueva instancia de la Grammar clase a partir de un SrgsDocument objeto , especifica una regla raíz y define un identificador uniforme de recursos (URI) base para resolver las referencias de regla relativas.

Grammar(SrgsDocument, String, Object[])

Inicializa una nueva instancia de la clase de Grammar a partir de una instancia de SrgsDocument, y especifica que el nombre de una regla sea el punto de entrada a la gramática.

Grammar(Stream, String, Uri)

Inicializa una nueva instancia de la clase Grammar a partir de un flujo, especifica una regla raíz y define un Identificador uniforme de recursos (URI) base para resolver las referencias relativas de la regla.

Grammar(Stream, String, Object[])

Inicializa una nueva instancia de la clase Grammar a partir de un Stream y especifica una regla raíz.

Grammar(String, String, Object[])

Inicializa una nueva instancia de la clase Grammar a partir de un archivo que contiene una definición de gramática y especifica que el nombre de una regla sea el punto de entrada a la gramática.

Grammar(SrgsDocument, String)

Inicializa una nueva instancia de la Grammar clase a partir de un SrgsDocument objeto y especifica una regla raíz.

Grammar(Stream, String)

Inicializa una nueva instancia de la clase Grammar a partir de un Stream y especifica una regla raíz.

Grammar(String)

Inicializa una nueva instancia de la clase Grammar a partir de un archivo.

Grammar(SrgsDocument)

Inicializa una nueva instancia de la clase Grammar a partir de un objeto SrgsDocument.

Grammar(String, String)

Inicializa una nueva instancia de la clase Grammar a partir de un archivo y especifica una regla raíz.

Grammar(GrammarBuilder)

Inicializa una nueva instancia de la clase Grammar a partir de un objeto GrammarBuilder.

Grammar(Stream)

Inicializa una nueva instancia de la clase Grammar a partir de un objeto Stream.

Comentarios

Puede usar un Grammar constructor para crear una Grammar instancia de a partir de un GrammarBuilder objeto o SrgsDocument desde un archivo o un Stream que contenga una descripción de una gramática en un formato admitido. Entre los formatos admitidos se incluyen los siguientes:

  • Archivos de formato XML que se ajustan a la especificación gramatical de reconocimiento de voz (SRGS) versión 1.0 de W3C

  • Gramáticas que se han compilado en un archivo binario con una extensión de archivo .cfg

Los constructores de gramática que aceptan archivos de gramática de formato XML en sus argumentos compilan las gramáticas XML en un formato binario para optimizarlos para cargarlos y consumirlos mediante un motor de reconocimiento de voz. Puede reducir la cantidad de tiempo necesario para construir un objeto a partir de una Grammar gramática de formato XML mediante la compilación anticipada de la gramática mediante uno de los Compile métodos .

Una gramática de reconocimiento de voz puede definir una regla raíz. Para crear un Grammar objeto que especifique la regla que se va a usar como regla raíz, use un constructor que acepte el ruleName parámetro .

Para crear un Grammar objeto que especifica un URI base para resolver referencias de regla relativas, use un constructor que tome el baseUri parámetro .

Grammar()

Inicializa una nueva instancia de la clase Grammar.

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

Se aplica a

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

Inicializa una nueva instancia de la clase Grammar a partir de una instancia de SrgsDocument, y especifica que el nombre de una regla sea el punto de entrada a la gramática y un URI base para resolver las referencias relativas.

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

Parámetros

srgsDocument
SrgsDocument

Una instancia de SrgsDocument que contiene las restricciones para la gramática de reconocimiento de voz.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

baseUri
Uri

El URI base para resolver cualquier referencia de regla relativa en la descripción de gramática, o null.

parameters
Object[]

Parámetros que se pasarán al controlador de inicialización especificado por la propiedad OnInit para el punto de entrada o la regla raíz de Grammar que se va a crear. Este parámetro puede ser null.

Excepciones

  • Alguno de los parámetros contiene un valor no válido.

  • El SrgsDocument especificado por srgsDocument no contiene la regla especificada en ruleName.

  • El contenido de los parámetros de matriz no coincide con los argumentos de ninguno de los controladores de inicialización de la regla.

  • La gramática tiene una referencia de regla relativa que la regla Uri base predeterminada no puede resolver para las gramáticas o el URI proporcionado por baseUri.

Comentarios

También se pueden especificar parámetros para un controlador de inicialización.

Se aplica a

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

Inicializa una nueva instancia de la clase Grammar de Stream y especifica una regla raíz y un URI base para resolver las referencias relativas.

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

Parámetros

stream
Stream

Stream conectado a un objeto de entrada-salida (incluidos archivos, recursos de Visual Studio y archivos DLL) que contiene una especificación de gramática.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

baseUri
Uri

El URI base para resolver cualquier referencia de regla relativa en la descripción de gramática, o null.

parameters
Object[]

Parámetros que se pasarán al controlador de inicialización especificado por la propiedad OnInit para el punto de entrada o la regla raíz de Grammar que se va a crear. Este parámetro puede ser null.

Excepciones

  • Alguno de los parámetros contiene un valor no válido.

  • stream está conectado con una gramática que no contiene la regla especificada por ruleName.

  • El contenido de los parámetros de matriz no coincide con los argumentos de ninguno de los controladores de inicialización de la regla.

  • La gramática contiene una referencia de regla relativa que la regla Uri base predeterminada no puede resolver para las gramáticas o el URI proporcionado por baseUri.

Comentarios

También se pueden especificar parámetros para un controlador de inicialización.

Se aplica a

Grammar(SrgsDocument, String, Uri)

Inicializa una nueva instancia de la Grammar clase a partir de un SrgsDocument objeto , especifica una regla raíz y define un identificador uniforme de recursos (URI) base para resolver las referencias de regla relativas.

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)

Parámetros

srgsDocument
SrgsDocument

Restricciones de la gramática de reconocimiento de voz.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de SrgsDocument.

baseUri
Uri

El URI base para resolver cualquier referencia de regla relativa en SrgsDocument, o null.

Excepciones

ruleName no se puede resolver o no es público, o ruleName es null y srgsDocument no contiene una regla raíz.

srgsDocument es null.

srgsDocument contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz en que SrgsDocument contiene una referencia de regla relativa al archivo cities.xml y se especifica un URI que se va a usar para resolver la referencia de regla. El contenido del archivo cities.xml aparece en el ejemplo XML que sigue al ejemplo de 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>  

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y no SrgsDocument debe contener un controlador de inicialización que requiera argumentos.

Este constructor no valida baseUri. Sin embargo, el LoadGrammar método de un SpeechRecognitionEngine objeto o SpeechRecognizer produce una excepción si no puede resolver todas las referencias de regla en la descripción gramatical. Si baseUri no nulles , el LoadGrammar método usa el URI para resolver las referencias de regla que no se pueden resolver de otro modo. Si baseUri representa un archivo, el LoadGrammar método usa tanto el archivo designado como el directorio del archivo cuando intenta resolver referencias de regla relativas.

Consulte también

Se aplica a

Grammar(SrgsDocument, String, Object[])

Inicializa una nueva instancia de la clase de Grammar a partir de una instancia de SrgsDocument, y especifica que el nombre de una regla sea el punto de entrada a la gramática.

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

Parámetros

srgsDocument
SrgsDocument

Una instancia de SrgsDocument que contiene las restricciones para la gramática de reconocimiento de voz.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

parameters
Object[]

Parámetros que se pasarán al controlador de inicialización especificado por la propiedad OnInit para el punto de entrada o la regla raíz de Grammar que se va a crear. Este parámetro puede ser null.

Excepciones

  • Alguno de los parámetros contiene un valor no válido.

  • El SrgsDocument especificado por srgsDocument no contiene la regla especificada por ruleName.

  • El contenido de los parámetros de matriz no coincide con los argumentos de ninguno de los controladores de inicialización de la regla.

Comentarios

También se pueden especificar parámetros para un controlador de inicialización.

Se aplica a

Grammar(Stream, String, Uri)

Inicializa una nueva instancia de la clase Grammar a partir de un flujo, especifica una regla raíz y define un Identificador uniforme de recursos (URI) base para resolver las referencias relativas de la regla.

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)

Parámetros

stream
Stream

Una secuencia que describe una gramática de reconocimiento de voz en un formato compatible.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

baseUri
Uri

El URI base para resolver cualquier referencia de regla relativa en la descripción de gramática, o null.

Excepciones

ruleName no se puede resolver o no es público, o ruleName es null y la descripción de gramática no define una regla raíz.

stream es null.

El flujo no contiene una descripción válida o describe una gramática que contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se carga un archivo SRGS local (shuttle.xml) desde una secuencia de archivos. El archivo contiene una referencia de regla relativa a una regla en el archivo cities.xml y especifica un URI base que se va a usar para resolver la referencia de regla. El contenido de los archivos shuttle.xml y cities.xml aparece en los ejemplos XML que siguen el ejemplo de 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>  

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y la descripción no debe definir un controlador de inicialización que requiera argumentos.

Este constructor puede crear una Grammar instancia a partir de los siguientes formatos:

  • Archivos de formato XML que se ajustan a la especificación gramatical de reconocimiento de voz (SRGS) versión 1.0 de W3C

  • Gramáticas que se han compilado en un archivo binario con una extensión de archivo .cfg

Este constructor compila archivos de gramática de formato XML en un formato binario para optimizarlos para cargarlos y consumirlos mediante un motor de reconocimiento de voz. Puede reducir la cantidad de tiempo necesario para construir un objeto a partir de una Grammar gramática de formato XML mediante la compilación anticipada de la gramática mediante uno de los Compile métodos .

Este constructor no valida baseUri. Sin embargo, el LoadGrammar método de un SpeechRecognitionEngine objeto o SpeechRecognizer produce una excepción si no puede resolver todas las referencias de regla en la descripción gramatical. Si baseUri no nulles , el LoadGrammar método usa el URI para resolver las referencias de regla que no se pueden resolver de otro modo. Si baseUri representa un archivo, usa LoadGrammar el archivo designado y el directorio del archivo cuando intenta resolver las referencias de regla relativas.

Consulte también

Se aplica a

Grammar(Stream, String, Object[])

Inicializa una nueva instancia de la clase Grammar a partir de un Stream y especifica una regla raíz.

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

Parámetros

stream
Stream

Stream conectado a un objeto de entrada-salida (incluidos archivos, recursos de Visual Studio y archivos DLL) que contiene una especificación de gramática.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

parameters
Object[]

Parámetros que se pasarán al controlador de inicialización especificado por la propiedad OnInit para el punto de entrada o la regla raíz de Grammar que se va a crear. Este parámetro puede ser null.

Excepciones

stream está conectado con una gramática que:

  • No contiene la regla especificada en ruleName

  • Requiere parámetros de inicialización distintos de los especificados en parameters

: contiene una referencia de regla relativa que no se puede resolver mediante la regla base Uri predeterminada para las gramáticas.

Comentarios

También se pueden especificar parámetros para un controlador de inicialización.

Se aplica a

Grammar(String, String, Object[])

Inicializa una nueva instancia de la clase Grammar a partir de un archivo que contiene una definición de gramática y especifica que el nombre de una regla sea el punto de entrada a la gramática.

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

Parámetros

path
String

La ruta de acceso a un archivo, incluidos los archivos DLL, que contiene una especificación de gramática.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

parameters
Object[]

Parámetros que se pasarán al controlador de inicialización especificado por la propiedad OnInit para el punto de entrada o la regla raíz de Grammar que se va a crear. Este parámetro puede ser null.

Excepciones

  • Alguno de los parámetros contiene un valor no válido.

  • El archivo especificado por path no contiene ninguna gramática válida o la regla especificada en ruleName.

  • El contenido de los parámetros de matriz no coincide con los argumentos de ninguno de los controladores de inicialización de la regla.

  • La gramática tiene una referencia de regla relativa que la regla Uri base predeterminada no puede resolver para las gramáticas.

Comentarios

También se pueden especificar parámetros para un controlador de inicialización.

Se aplica a

Grammar(SrgsDocument, String)

Inicializa una nueva instancia de la Grammar clase a partir de un SrgsDocument objeto y especifica una regla raíz.

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)

Parámetros

srgsDocument
SrgsDocument

Restricciones de la gramática de reconocimiento de voz.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de SrgsDocument.

Excepciones

ruleName no se puede resolver o no es público, o ruleName es null y srgsDocument no contiene una regla raíz.

srgsDocument es null.

srgsDocument contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz en una SrgsDocument instancia y se especifica una regla que se va a usar como regla raíz de la gramática. En el ejemplo se construye un Grammar objeto a partir de la SrgsDocument instancia y se carga en el motor de reconocimiento de voz.

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

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y no SrgsDocument debe contener un controlador de inicialización que requiera argumentos.

Para crear un Grammar objeto a partir de SrgsDocument y especificar un URI base que se usará para resolver referencias de regla relativas, use el Grammar constructor .

Consulte también

Se aplica a

Grammar(Stream, String)

Inicializa una nueva instancia de la clase Grammar a partir de un Stream y especifica una regla raíz.

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)

Parámetros

stream
Stream

Una secuencia que describe una gramática de reconocimiento de voz en un formato compatible.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

Excepciones

ruleName no se puede resolver o no es público, o ruleName es null y la descripción de gramática no define una regla raíz.

stream es null.

El flujo no contiene una descripción válida o describe una gramática que contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se carga un archivo SRGS local (cities.xml) desde una secuencia de archivos y se especifica una regla que se va a usar como raíz de la gramática. El contenido del archivo cities.xml aparece en el ejemplo XML que sigue al ejemplo de 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>  

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y la descripción no debe definir un controlador de inicialización que requiera argumentos.

Este constructor puede crear una Grammar instancia a partir de los siguientes formatos:

  • Archivos de formato XML que se ajustan a la especificación gramatical de reconocimiento de voz (SRGS) versión 1.0 de W3C

  • Gramáticas que se han compilado en un archivo binario con una extensión de archivo .cfg

Este constructor compila archivos de gramática de formato XML en un formato binario para optimizarlos para cargarlos y consumirlos mediante un motor de reconocimiento de voz. Puede reducir la cantidad de tiempo necesario para construir un objeto a partir de una Grammar gramática de formato XML mediante la compilación anticipada de la gramática mediante uno de los Compile métodos .

Para crear un Grammar objeto a partir de una secuencia y especificar un URI base que se usará para resolver las referencias de regla relativas, use el Grammar constructor .

Consulte también

Se aplica a

Grammar(String)

Inicializa una nueva instancia de la clase Grammar a partir de un archivo.

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)

Parámetros

path
String

La ruta de acceso del archivo que describe una gramática de reconocimiento de voz en un formato admitido.

Excepciones

path contiene la cadena vacía (""), o el archivo describe una gramática que no contiene una regla raíz.

path es null.

El archivo no contiene una descripción válida ni describe una gramática que contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se carga una gramática de reconocimiento de voz de un archivo SRGS local para compilar un Grammar objeto . El contenido del archivo cities.xml aparece en el ejemplo XML que sigue al ejemplo de 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>  

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y la descripción no debe definir un controlador de inicialización que requiera argumentos.

Este constructor puede crear una Grammar instancia a partir de los siguientes formatos:

  • Archivos de formato XML que se ajustan a la especificación gramatical de reconocimiento de voz (SRGS) versión 1.0 de W3C

  • Gramáticas que se han compilado en un archivo binario con una extensión de archivo .cfg

Este constructor compila archivos de gramática de formato XML en un formato binario para optimizarlos para cargarlos y consumirlos mediante un motor de reconocimiento de voz. Puede reducir la cantidad de tiempo necesario para construir un objeto a partir de una Grammar gramática de formato XML mediante la compilación anticipada de la gramática mediante uno de los Compile métodos .

Una gramática SRGS puede definir una regla raíz. Para crear un Grammar objeto a partir de una cadena y especificar una regla raíz, use el Grammar constructor .

Para crear un Grammar objeto que especifique un URI base que se va a usar para resolver referencias de regla relativas, abra el archivo en una secuencia de archivos y use el Grammar.Grammar constructor .

Consulte también

Se aplica a

Grammar(SrgsDocument)

Inicializa una nueva instancia de la clase Grammar a partir de un objeto 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)

Parámetros

srgsDocument
SrgsDocument

Restricciones de la gramática de reconocimiento de voz.

Excepciones

srgsDocument no contiene una regla raíz.

srgsDocument es null.

srgsDocument contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz en una SrgsDocument instancia de , que se usa para construir un Grammar objeto .

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

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y no SrgsDocument debe contener un controlador de inicialización que requiera argumentos.

Un SrgsDocument puede tener una regla raíz. Para crear un Grammar objeto que especifique una regla raíz, use el Grammar constructor o Grammar .

Para crear un reconocimiento Grammar de voz a partir de SrgsDocument y especificar un URI base que se usará para resolver referencias de regla relativas, use el Grammar constructor .

Consulte también

Se aplica a

Grammar(String, String)

Inicializa una nueva instancia de la clase Grammar a partir de un archivo y especifica una regla raíz.

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)

Parámetros

path
String

La ruta de acceso del archivo que describe una gramática de reconocimiento de voz en un formato admitido.

ruleName
String

El identificador de la regla que se va a usar como punto de entrada de la gramática de reconocimiento de voz o null para usar la regla raíz predeterminada de la descripción de la gramática.

Excepciones

ruleName no se puede resolver o no es público, path es la cadena vacía (""), o ruleName es null y la descripción de gramática no define una regla raíz.

path es null.

El archivo no contiene una descripción válida ni describe una gramática que contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se carga un archivo SRGS local (cities.xml) desde un archivo y se especifica una regla que se va a usar como raíz de la gramática. El contenido del archivo cities.xml aparece en el ejemplo XML que sigue al ejemplo de 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>  

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y la descripción no debe definir un controlador de inicialización que requiera argumentos.

Este constructor puede crear una Grammar instancia a partir de los siguientes formatos:

  • Archivos de formato XML que se ajustan a la especificación gramatical de reconocimiento de voz (SRGS) versión 1.0 de W3C

  • Gramáticas que se han compilado en un archivo binario con una extensión de archivo .cfg

Este constructor compila archivos de gramática de formato XML en un formato binario para optimizarlos para cargarlos y consumirlos mediante un motor de reconocimiento de voz. Puede reducir la cantidad de tiempo necesario para construir un objeto a partir de una Grammar gramática de formato XML mediante la compilación anticipada de la gramática mediante uno de los Compile métodos .

Para crear un Grammar objeto que especifica un URI base que se va a usar para resolver referencias de regla relativas, abra una secuencia de archivos para el archivo y use el Grammar constructor .

Consulte también

Se aplica a

Grammar(GrammarBuilder)

Inicializa una nueva instancia de la clase Grammar a partir de un objeto 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)

Parámetros

builder
GrammarBuilder

Una instancia de GrammarBuilder que contiene las restricciones para la gramática de reconocimiento de voz.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz mediante Choices objetos y GrammarBuilder . El Grammar constructor crea un Grammar objeto a partir del GrammarBuilder objeto .

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

Consulte también

Se aplica a

Grammar(Stream)

Inicializa una nueva instancia de la clase Grammar a partir de un objeto 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)

Parámetros

stream
Stream

Una secuencia que describe una gramática de reconocimiento de voz en un formato compatible.

Excepciones

stream describe una gramática que no contiene una regla raíz.

stream es null.

El flujo no contiene una descripción completa de una gramática o describe una gramática que contiene una referencia de regla que no se puede resolver.

Ejemplos

En el ejemplo siguiente se crea una gramática de reconocimiento de voz a partir de un archivo SRGS local (cities.xml) mediante una secuencia de archivos. El contenido del archivo cities.xml aparece después del ejemplo de 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>  

Comentarios

Este constructor no pasa ningún parámetro al controlador de inicialización y la descripción no debe definir un controlador de inicialización que requiera argumentos.

Este constructor puede crear una Grammar instancia a partir de los siguientes formatos:

  • Archivos de formato XML que se ajustan a la especificación gramatical de reconocimiento de voz (SRGS) versión 1.0 de W3C

  • Gramáticas que se han compilado en un archivo binario con una extensión de archivo .cfg

Este constructor compila archivos de gramática de formato XML en un formato binario para optimizarlos para cargarlos y consumirlos mediante un motor de reconocimiento de voz. Puede reducir la cantidad de tiempo necesario para construir un objeto a partir de una Grammar gramática de formato XML mediante la compilación anticipada de la gramática mediante uno de los Compile métodos .

Una gramática SRGS puede definir una regla raíz. Para crear un Grammar objeto a partir de una secuencia y especificar una regla raíz, use el Grammar constructor o Grammar .

Para crear un Grammar objeto a partir de una secuencia y especificar un URI base que se usará para resolver referencias de regla relativas, use el Grammar constructor .

Consulte también

Se aplica a