Grammar Construtores

Definição

Inicializa uma nova instância da classe Grammar.

Sobrecargas

Nome Description
Grammar()

Inicializa uma nova instância da classe Grammar.

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

Inicializa uma nova instância da classe de Grammar uma instância de SrgsDocument, e especifica o nome de uma regra para ser o ponto de entrada para a gramática e um URI base para resolver referências relativas.

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

Inicializa uma nova instância da classe a GrammarStream e especifica uma regra raiz e um URI base para resolver referências relativas.

Grammar(SrgsDocument, String, Uri)

Inicializa uma nova instância da classe de Grammar um SrgsDocument objeto, especifica uma regra raiz e define um URI (Uniform Resource Identifier) base para resolver referências de regra relativas.

Grammar(SrgsDocument, String, Object[])

Inicializa uma nova instância da classe de Grammar uma instância de SrgsDocument, e especifica o nome de uma regra para ser o ponto de entrada para a gramática.

Grammar(Stream, String, Uri)

Inicializa uma nova instância da classe de Grammar um fluxo, especifica uma regra raiz e define um URI (Uniform Resource Identifier) base para resolver referências de regra relativas.

Grammar(Stream, String, Object[])

Inicializa uma nova instância da classe de Grammar um Stream e especifica uma regra raiz.

Grammar(String, String, Object[])

Inicializa uma nova instância da classe de Grammar um arquivo que contém uma definição gramatical e especifica o nome de uma regra para ser o ponto de entrada para a gramática.

Grammar(SrgsDocument, String)

Inicializa uma nova instância da Grammar classe de um SrgsDocument objeto e especifica uma regra raiz.

Grammar(Stream, String)

Inicializa uma nova instância da classe de Grammar um Stream e especifica uma regra raiz.

Grammar(String)

Inicializa uma nova instância da classe de Grammar um arquivo.

Grammar(SrgsDocument)

Inicializa uma nova instância da classe de Grammar um SrgsDocument objeto.

Grammar(String, String)

Inicializa uma nova instância da classe de Grammar um arquivo e especifica uma regra raiz.

Grammar(GrammarBuilder)

Inicializa uma nova instância da classe de Grammar um GrammarBuilder objeto.

Grammar(Stream)

Inicializa uma nova instância da classe de Grammar um Stream.

Comentários

Você pode usar um Grammar construtor para criar uma Grammar instância de um objeto ou SrgsDocument de um GrammarBuilder arquivo ou um Stream que contenha uma descrição de uma gramática em um formato com suporte. Os formatos com suporte incluem o seguinte:

Construtores de gramática que aceitam arquivos gramaticais em formato XML em seus argumentos compilam as gramáticas XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática com antecedência, usando um dos Compile métodos.

Uma gramática de reconhecimento de fala pode definir uma regra raiz. Para criar um Grammar objeto que especifica qual regra usar como regra raiz, use um construtor que aceite o ruleName parâmetro.

Para criar um Grammar objeto que especifica um URI base para resolver referências de regra relativas, use um construtor que usa o baseUri parâmetro.

Grammar()

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe Grammar.

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

Aplica-se a

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

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar uma instância de SrgsDocument, e especifica o nome de uma regra para ser o ponto de entrada para a gramática e um URI base para resolver referências 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);
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

Uma instância que contém as restrições para a gramática de reconhecimento de SrgsDocument fala.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

baseUri
Uri

O URI base a ser usado para resolver qualquer referência de regra relativa na descrição da gramática ou null.

parameters
Object[]

Parâmetros a serem passados para o manipulador de inicialização especificado pela OnInit propriedade para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.

Exceções

  • Qualquer um dos parâmetros contém um valor inválido.

  • O SrgsDocument especificado por srgsDocument não contém a regra especificada em ruleName.

  • O conteúdo dos parâmetros de matriz não corresponde aos argumentos de nenhum dos manipuladores de inicialização da regra.

  • A gramática tem uma referência de regra relativa que não pode ser resolvida pela regra base Uri padrão para gramáticas ou o URI fornecido por baseUri.

Comentários

Parâmetros para um manipulador de inicialização também podem ser especificados.

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Aplica-se a

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

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe a GrammarStream e especifica uma regra raiz e um URI base para resolver referências 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);
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

Um Stream conectado a um objeto de entrada/saída (incluindo arquivos, Recursos do VisualStudio e DLLs) que contém uma especificação gramatical.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

baseUri
Uri

O URI base a ser usado para resolver qualquer referência de regra relativa na descrição da gramática ou null.

parameters
Object[]

Parâmetros a serem passados para o manipulador de inicialização especificado pela OnInit propriedade para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.

Exceções

  • Qualquer um dos parâmetros contém um valor inválido.

  • O stream está conectado a uma gramática que não contém a regra especificada por ruleName.

  • O conteúdo dos parâmetros de matriz não corresponde aos argumentos de nenhum dos manipuladores de inicialização da regra.

  • A gramática contém uma referência de regra relativa que não pode ser resolvida pela regra base Uri padrão para gramáticas ou o URI fornecido por baseUri.

Comentários

Parâmetros para um manipulador de inicialização também podem ser especificados.

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Aplica-se a

Grammar(SrgsDocument, String, Uri)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um SrgsDocument objeto, especifica uma regra raiz e define um URI (Uniform Resource Identifier) base para resolver referências de regra 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);
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

As restrições para a gramática de reconhecimento de fala.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão do SrgsDocument.

baseUri
Uri

O URI base a ser usado para resolver qualquer referência de regra relativa no SrgsDocument.null

Exceções

ruleName não pode ser resolvido ou não é público ou ruleName é null e srgsDocument não contém uma regra raiz.

srgsDocument é null.

srgsDocument contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir cria uma gramática de reconhecimento de fala em uma SrgsDocument que contém uma referência de regra relativa ao arquivo cities.xml e especifica um URI a ser usado para resolver a referência de regra. O conteúdo do arquivo cities.xml aparece no exemplo XML que segue o exemplo 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>

Comentários

Esse construtor não passa parâmetros para o manipulador de inicialização e não SrgsDocument deve conter um manipulador de inicialização que exija argumentos.

Esse construtor não valida baseUri. No entanto, o LoadGrammar método de um SpeechRecognitionEngine ou SpeechRecognizer objeto gerará uma exceção se ele não puder resolver todas as referências de regra na descrição da gramática. Se baseUri não nullestiver, o LoadGrammar método usará o URI para resolver quaisquer referências de regra que ele não possa resolver de outra forma. Se baseUri representar um arquivo, o LoadGrammar método usará o arquivo designado e o diretório do arquivo quando tentar resolver referências de regra relativas.

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Confira também

Aplica-se a

Grammar(SrgsDocument, String, Object[])

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar uma instância de SrgsDocument, e especifica o nome de uma regra para ser o ponto de entrada para a 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);
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

Uma instância que contém as restrições para a gramática de reconhecimento de SrgsDocument fala.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

parameters
Object[]

Parâmetros a serem passados para o manipulador de inicialização especificado pela OnInit propriedade para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.

Exceções

  • Qualquer um dos parâmetros contém um valor inválido.

  • O SrgsDocument especificado por srgsDocument não contém a regra especificada por ruleName.

  • O conteúdo dos parâmetros de matriz não corresponde aos argumentos de nenhum dos manipuladores de inicialização da regra.

Comentários

Parâmetros para um manipulador de inicialização também podem ser especificados.

Aplica-se a

Grammar(Stream, String, Uri)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um fluxo, especifica uma regra raiz e define um URI (Uniform Resource Identifier) base para resolver referências de regra relativas.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar(System.IO.Stream stream, 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

Um fluxo que descreve uma gramática de reconhecimento de fala em um formato com suporte.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

baseUri
Uri

O URI base a ser usado para resolver qualquer referência de regra relativa na descrição da gramática ou null.

Exceções

ruleName não pode ser resolvido ou não é público ou ruleName é null e a descrição gramatical não define uma regra raiz.

stream é null.

O fluxo não contém uma descrição válida ou descreve uma gramática que contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir carrega um arquivo SRGS local (shuttle.xml) de um fluxo de arquivos. O arquivo contém uma referência de regra relativa a uma regra no arquivo cities.xml e especifica um URI base a ser usado para resolver a referência de regra. O conteúdo dos arquivos shuttle.xml e cities.xml aparece nos exemplos XML que seguem o exemplo 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>

Comentários

Esse construtor não passa parâmetros para o manipulador de inicialização e a descrição não deve definir um manipulador de inicialização que exija argumentos.

Esse construtor pode criar uma Grammar instância a partir dos seguintes formatos:

Este construtor compila arquivos de gramática em formato XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática com antecedência, usando um dos Compile métodos.

Esse construtor não valida baseUri. No entanto, o LoadGrammar método de um SpeechRecognitionEngine ou SpeechRecognizer objeto gerará uma exceção se ele não puder resolver todas as referências de regra na descrição da gramática. Se baseUri não nullestiver, o LoadGrammar método usará o URI para resolver quaisquer referências de regra que ele não possa resolver de outra forma. Se baseUri representar um arquivo, ele usará o LoadGrammar arquivo designado e o diretório do arquivo quando ele tentar resolver referências de regra relativas.

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Confira também

Aplica-se a

Grammar(Stream, String, Object[])

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um Stream e especifica uma regra raiz.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(System.IO.Stream stream, string? ruleName, 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

Um Stream conectado a um objeto de entrada/saída (incluindo arquivos, Recursos do VisualStudio e DLLs) que contém uma especificação gramatical.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

parameters
Object[]

Parâmetros a serem passados para o manipulador de inicialização especificado pela OnInit propriedade para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.

Exceções

stream está conectado a uma gramática que:

  • Não contém a regra especificada em ruleName

  • Requer parâmetros de inicialização diferentes daqueles especificados em parameters

  • Contém uma referência de regra relativa que não pode ser resolvida pela regra base Uri padrão para gramáticas.

Comentários

Parâmetros para um manipulador de inicialização também podem ser especificados.

Aplica-se a

Grammar(String, String, Object[])

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um arquivo que contém uma definição gramatical e especifica o nome de uma regra para ser o ponto de entrada para a gramática.

public:
 Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(string path, string? ruleName, 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

O caminho para um arquivo, incluindo DLLs, que contém uma especificação gramatical.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

parameters
Object[]

Parâmetros a serem passados para o manipulador de inicialização especificado pela OnInit propriedade para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.

Exceções

  • Qualquer um dos parâmetros contém um valor inválido.

  • O arquivo especificado por path não contém uma gramática válida ou a regra especificada em ruleName.

  • O conteúdo dos parâmetros de matriz não corresponde aos argumentos de nenhum dos manipuladores de inicialização da regra.

  • A gramática tem uma referência de regra relativa que não pode ser resolvida pela regra base Uri padrão para gramáticas.

Comentários

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Parâmetros para um manipulador de inicialização também podem ser especificados.

Aplica-se a

Grammar(SrgsDocument, String)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da Grammar classe de um SrgsDocument objeto e especifica uma regra raiz.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument? srgsDocument, 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

As restrições para a gramática de reconhecimento de fala.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão do SrgsDocument.

Exceções

ruleName não pode ser resolvido ou não é público ou ruleName é null e srgsDocument não contém uma regra raiz.

srgsDocument é null.

srgsDocument contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir cria uma gramática de reconhecimento de fala em uma SrgsDocument instância e especifica uma regra a ser usada como a regra raiz da gramática. O exemplo constrói um Grammar objeto da instância e o SrgsDocument carrega no mecanismo de reconhecimento de fala.

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

Comentários

Esse construtor não passa parâmetros para o manipulador de inicialização e não SrgsDocument deve conter um manipulador de inicialização que exija argumentos.

Para criar um Grammar objeto de um SrgsDocument e especificar um URI base a ser usado para resolver referências de regra relativas, use o Grammar construtor.

Confira também

Aplica-se a

Grammar(Stream, String)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um Stream e especifica uma regra raiz.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar(System.IO.Stream stream, 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

Um fluxo que descreve uma gramática de reconhecimento de fala em um formato com suporte.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

Exceções

ruleName não pode ser resolvido ou não é público ou ruleName é null e a descrição gramatical não define uma regra raiz.

stream é null.

O fluxo não contém uma descrição válida ou descreve uma gramática que contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir carrega um arquivo SRGS local (cities.xml) de um fluxo de arquivo e especifica uma regra a ser usada como a raiz da gramática. O conteúdo do arquivo cities.xml aparece no exemplo XML que segue o exemplo 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>

Comentários

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Esse construtor não passa parâmetros para o manipulador de inicialização e a descrição não deve definir um manipulador de inicialização que exija argumentos.

Esse construtor pode criar uma Grammar instância a partir dos seguintes formatos:

Este construtor compila arquivos de gramática em formato XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática com antecedência, usando um dos Compile métodos.

Para criar um Grammar a partir de um fluxo e especificar um URI base a ser usado para resolver referências de regra relativas, use o Grammar construtor.

Confira também

Aplica-se a

Grammar(String)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um arquivo.

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

O caminho do arquivo que descreve uma gramática de reconhecimento de fala em um formato com suporte.

Exceções

path contém a cadeia de caracteres vazia (") ou o arquivo descreve uma gramática que não contém uma regra raiz.

path é null.

O arquivo não contém uma descrição válida ou descreve uma gramática que contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir carrega uma gramática de reconhecimento de fala de um arquivo SRGS local para criar um Grammar objeto. O conteúdo do arquivo cities.xml aparece no exemplo XML que segue o exemplo 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>

Comentários

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Esse construtor não passa parâmetros para o manipulador de inicialização e a descrição não deve definir um manipulador de inicialização que exija argumentos.

Esse construtor pode criar uma Grammar instância a partir dos seguintes formatos:

Este construtor compila arquivos de gramática em formato XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática com antecedência, usando um dos Compile métodos.

Uma gramática SRGS pode definir uma regra raiz. Para criar um Grammar objeto de uma cadeia de caracteres e especificar uma regra raiz, use o Grammar construtor.

Para criar um Grammar objeto que especifica um URI base a ser usado para resolver referências de regra relativas, abra o arquivo em um fluxo de arquivos e use o Grammar.Grammar construtor.

Confira também

Aplica-se a

Grammar(SrgsDocument)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um SrgsDocument objeto.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ 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

As restrições para a gramática de reconhecimento de fala.

Exceções

srgsDocument não contém uma regra raiz.

srgsDocument é null.

srgsDocument contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir cria uma gramática de reconhecimento de fala em uma SrgsDocument instância, que é usada para construir um 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;
}

Comentários

Esse construtor não passa parâmetros para o manipulador de inicialização e não SrgsDocument deve conter um manipulador de inicialização que exija argumentos.

Uma SrgsDocument regra pode ter uma raiz. Para criar um Grammar objeto que especifica uma regra raiz, use o construtor ou o Grammar construtor Grammar .

Para criar um reconhecimento Grammar de fala de um SrgsDocument URI base e especificar um URI base a ser usado para resolver referências de regra relativas, use o Grammar construtor.

Confira também

Aplica-se a

Grammar(String, String)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um arquivo e especifica uma regra raiz.

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

O caminho do arquivo que descreve uma gramática de reconhecimento de fala em um formato com suporte.

ruleName
String

O identificador da regra a ser usada como o ponto de entrada da gramática de reconhecimento de fala ou null para usar a regra raiz padrão da descrição gramatical.

Exceções

ruleName não pode ser resolvido ou não é público, path é a cadeia de caracteres vazia ("" ou ruleName é null e a descrição gramatical não define uma regra raiz.

path é null.

O arquivo não contém uma descrição válida ou descreve uma gramática que contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir carrega um arquivo SRGS local (cities.xml) de um arquivo e especifica uma regra a ser usada como a raiz da gramática. O conteúdo do arquivo cities.xml aparece no exemplo XML que segue o exemplo 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>

Comentários

Importante

Usar uma instância desse tipo com dados não confiáveis é um risco à segurança. Use esse objeto somente com dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Esse construtor não passa parâmetros para o manipulador de inicialização e a descrição não deve definir um manipulador de inicialização que exija argumentos.

Esse construtor pode criar uma Grammar instância a partir dos seguintes formatos:

Este construtor compila arquivos de gramática em formato XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática com antecedência, usando um dos Compile métodos.

Para criar um Grammar que especifica um URI base a ser usado para resolver referências de regra relativas, abra um fluxo de arquivos para o arquivo e use o Grammar construtor.

Confira também

Aplica-se a

Grammar(GrammarBuilder)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um GrammarBuilder objeto.

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

Uma instância que contém as restrições para a gramática de reconhecimento de GrammarBuilder fala.

Exemplos

O exemplo a seguir cria uma gramática de reconhecimento de fala usando Choices e GrammarBuilder objetos. O Grammar construtor cria um Grammar objeto do 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;
}

Confira também

Aplica-se a

Grammar(Stream)

Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs
Origem:
Grammar.cs

Inicializa uma nova instância da classe de Grammar um 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

Um fluxo que descreve uma gramática de reconhecimento de fala em um formato com suporte.

Exceções

stream descreve uma gramática que não contém uma regra raiz.

stream é null.

O fluxo não contém uma descrição válida de uma gramática ou descreve uma gramática que contém uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo a seguir cria uma gramática de reconhecimento de fala de um arquivo SRGS local (cities.xml) usando um fluxo de arquivos. O conteúdo do arquivo cities.xml aparece seguindo o exemplo 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>

Comentários

Esse construtor não passa parâmetros para o manipulador de inicialização e a descrição não deve definir um manipulador de inicialização que exija argumentos.

Esse construtor pode criar uma Grammar instância a partir dos seguintes formatos:

Este construtor compila arquivos de gramática em formato XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática com antecedência, usando um dos Compile métodos.

Uma gramática SRGS pode definir uma regra raiz. Para criar um Grammar objeto a partir de um fluxo e especificar uma regra raiz, use o construtor ou Grammar o Grammar construtor.

Para criar um Grammar objeto a partir de um fluxo e especificar um URI base a ser usado para resolver referências de regra relativas, use o Grammar construtor.

Confira também

Aplica-se a