Grammar Construtores

Definição

Inicializa uma nova instância da Grammar classe.

Sobrecargas

Name Description
Grammar()

Inicializa uma nova instância da Grammar classe.

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

Inicializa uma nova instância da Grammar classe a partir de uma instância de SrgsDocument, e especifica o nome de uma regra como 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 Grammar classe a Stream e especifica uma regra raiz e um URI base para resolver referências relativas.

Grammar(SrgsDocument, String, Uri)

Inicializa uma nova instância da Grammar classe a partir de um SrgsDocument objeto, especifica uma regra raiz e define um Identificador Uniforme de Recursos (URI) base para resolver referências relativas às regras.

Grammar(SrgsDocument, String, Object[])

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

Grammar(Stream, String, Uri)

Inicializa uma nova instância da Grammar classe a partir de um fluxo, especifica uma regra raiz e define um Identificador Uniforme de Recursos (URI) base para resolver referências relativas às regras.

Grammar(Stream, String, Object[])

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

Grammar(String, String, Object[])

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

Grammar(SrgsDocument, String)

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

Grammar(Stream, String)

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

Grammar(String)

Inicializa uma nova instância da Grammar classe a partir de um ficheiro.

Grammar(SrgsDocument)

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

Grammar(String, String)

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

Grammar(GrammarBuilder)

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

Grammar(Stream)

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

Observações

Pode usar um Grammar construtor para criar uma Grammar instância a partir de um GrammarBuilder objeto ou SrgsDocument de um ficheiro ou um Stream que contenha uma descrição de uma gramática num formato suportado. Os formatos suportados incluem os seguintes:

Construtores gramaticais que aceitam ficheiros gramaticais em formato XML nos seus argumentos compilam as gramáticas XML para um formato binário para as otimizar para carregamento e consumo por um motor de reconhecimento de voz. Pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática antecipadamente, usando um dos Compile métodos.

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

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

Grammar()

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

Inicializa uma nova instância da Grammar classe.

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 Grammar classe a partir de uma instância de SrgsDocument, e especifica o nome de uma regra como 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 disso SrgsDocument contém as restrições para a gramática de reconhecimento de voz.

ruleName
String

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

baseUri
Uri

O URI base a usar para resolver qualquer referência de regra relativa na descrição gramatical, ou null.

parameters
Object[]

Parâmetros a serem passados ao handler de inicialização especificado pela OnInit propriedade para o ponto de entrada ou pela regra raiz do Grammar a ser criado. Este 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 do array 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 pelo URI fornecido por baseUri.

Observações

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

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

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 Grammar classe a Stream 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

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

ruleName
String

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

baseUri
Uri

O URI base a usar para resolver qualquer referência de regra relativa na descrição gramatical, ou null.

parameters
Object[]

Parâmetros a serem passados ao handler de inicialização especificado pela OnInit propriedade para o ponto de entrada ou pela regra raiz do Grammar a ser criado. Este parâmetro pode ser nulo.

Exceções

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

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

  • O conteúdo dos parâmetros do array 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 pelo URI fornecido por baseUri.

Observações

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

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

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 Grammar classe a partir de um SrgsDocument objeto, especifica uma regra raiz e define um Identificador Uniforme de Recursos (URI) base para resolver referências relativas às regras.

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 voz.

ruleName
String

O identificador da regra a usar como ponto de entrada da gramática de reconhecimento de voz, ou null a usar a regra raiz padrão da SrgsDocument.

baseUri
Uri

O URI base a usar para resolver qualquer referência de regra relativa no SrgsDocument, ou null.

Exceções

ruleName não pode ser resolvido ou não é público, ou ruleName contém null ou 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 seguinte cria uma gramática de reconhecimento de fala em um SrgsDocument que contém uma referência relativa à regra ao ficheiro cities.xml e especifica um URI a usar para resolver a referência da regra. O conteúdo do ficheiro 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>

Observações

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

Este construtor não valida baseUri. No entanto, o LoadGrammar método de um SpeechRecognitionEngine objeto ou SpeechRecognizer lança uma exceção se não conseguir resolver todas as referências de regras na descrição gramatical. Se baseUri não nullfor , o LoadGrammar método usa o URI para resolver quaisquer referências de regras que não possa resolver de outra forma. Se baseUri representa um ficheiro, então o LoadGrammar método utiliza tanto o ficheiro designado como o diretório do ficheiro quando tenta resolver referências de regras relativas.

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Ver 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 Grammar classe a partir de uma instância de SrgsDocument, e especifica o nome de uma regra como 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 disso SrgsDocument contém as restrições para a gramática de reconhecimento de voz.

ruleName
String

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

parameters
Object[]

Parâmetros a serem passados ao handler de inicialização especificado pela OnInit propriedade para o ponto de entrada ou pela regra raiz do Grammar a ser criado. Este 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 do array não corresponde aos argumentos de nenhum dos manipuladores de inicialização da regra.

Observações

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

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 Grammar classe a partir de um fluxo, especifica uma regra raiz e define um Identificador Uniforme de Recursos (URI) base para resolver referências relativas às regras.

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 num formato suportado.

ruleName
String

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

baseUri
Uri

O URI base a usar para resolver qualquer referência de regra relativa na descrição gramatical, 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 nem descreve uma gramática que contenha uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo seguinte carrega um ficheiro SRGS local (shuttle.xml) a partir de um fluxo de ficheiros. O ficheiro contém uma referência relativa a uma regra no ficheiro cities.xml e especifica um URI base para usar para resolver a referência da regra. O conteúdo dos ficheiros 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>

Observações

Este construtor não passa quaisquer parâmetros ao manipulador de inicialização, e a descrição não deve definir um handler de inicialização que exija argumentos.

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

Este construtor compila ficheiros gramaticais em formato XML para um formato binário para os otimizar para carregamento e consumo por um motor de reconhecimento de voz. Pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática antecipadamente, usando um dos Compile métodos.

Este construtor não valida baseUri. No entanto, o LoadGrammar método de um SpeechRecognitionEngine objeto ou SpeechRecognizer lança uma exceção se não conseguir resolver todas as referências de regras na descrição gramatical. Se baseUri não nullfor , o LoadGrammar método usa o URI para resolver quaisquer referências de regras que não possa resolver de outra forma. Se baseUri representa um ficheiro, então utiliza LoadGrammar tanto o ficheiro designado como o diretório do ficheiro quando tenta resolver referências relativas às regras.

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Ver 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 Grammar classe a partir de a 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

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

ruleName
String

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

parameters
Object[]

Parâmetros a serem passados ao handler de inicialização especificado pela OnInit propriedade para o ponto de entrada ou pela regra raiz do Grammar a ser criado. Este parâmetro pode ser nulo.

Exceções

stream está ligado 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.

Observações

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

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 Grammar classe a partir de um ficheiro que contém uma definição gramatical e especifica o nome de uma regra para ser o ponto de entrada da 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 ficheiro, incluindo DLLs, que contém uma especificação gramatical.

ruleName
String

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

parameters
Object[]

Parâmetros a serem passados ao handler de inicialização especificado pela OnInit propriedade para o ponto de entrada ou pela regra raiz do Grammar a ser criado. Este parâmetro pode ser nulo.

Exceções

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

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

  • O conteúdo dos parâmetros do array 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.

Observações

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

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

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 a partir 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 voz.

ruleName
String

O identificador da regra a usar como ponto de entrada da gramática de reconhecimento de voz, ou null a usar a regra raiz padrão da SrgsDocument.

Exceções

ruleName não pode ser resolvido ou não é público, ou ruleName contém null ou 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 seguinte cria uma gramática de reconhecimento de fala numa SrgsDocument instância e especifica uma regra a usar como regra raiz da gramática. O exemplo constrói um Grammar objeto a partir da SrgsDocument instância e carrega-o no motor de reconhecimento 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);
    }
  }
}

Observações

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

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

Ver 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 Grammar classe a partir de a 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 num formato suportado.

ruleName
String

O identificador da regra a usar como ponto de entrada da gramática de reconhecimento de voz, ou null 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 nem descreve uma gramática que contenha uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo seguinte carrega um ficheiro SRGS local (cities.xml) a partir de um fluxo de ficheiros e especifica uma regra a usar como raiz da gramática. O conteúdo do ficheiro 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>

Observações

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Este construtor não passa quaisquer parâmetros ao manipulador de inicialização, e a descrição não deve definir um handler de inicialização que exija argumentos.

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

Este construtor compila ficheiros gramaticais em formato XML para um formato binário para os otimizar para carregamento e consumo por um motor de reconhecimento de voz. Pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática antecipadamente, usando um dos Compile métodos.

Para criar um Grammar a partir de um fluxo e especificar um URI base para usar na resolução de referências relativas de regras, use o Grammar construtor.

Ver 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 Grammar classe a partir de um ficheiro.

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 percurso do ficheiro que descreve uma gramática de reconhecimento de fala num formato suportado.

Exceções

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

path é null.

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

Exemplos

O exemplo seguinte carrega uma gramática de reconhecimento de voz a partir de um ficheiro SRGS local para construir um Grammar objeto. O conteúdo do ficheiro 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>

Observações

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Este construtor não passa quaisquer parâmetros ao manipulador de inicialização, e a descrição não deve definir um handler de inicialização que exija argumentos.

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

Este construtor compila ficheiros gramaticais em formato XML para um formato binário para os otimizar para carregamento e consumo por um motor de reconhecimento de voz. Pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática antecipadamente, usando um dos Compile métodos.

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

Para criar um Grammar objeto que especifique um URI base para resolver referências de regras relativas, abra o ficheiro num fluxo de ficheiros e use o Grammar.Grammar construtor.

Ver 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 Grammar classe a partir de 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 voz.

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 seguinte cria uma gramática de reconhecimento de fala numa SrgsDocument instância, que é depois 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;
}

Observações

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

A SrgsDocument pode ter uma regra raiz. Para criar um Grammar objeto que especifique uma regra raiz, use o Grammar construtor or Grammar .

Para criar um reconhecimento Grammar de voz a partir de um SrgsDocument e especificar um URI base a usar para resolver referências de regras relativas, use o Grammar construtor.

Ver 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 Grammar classe a partir de um ficheiro 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 percurso do ficheiro que descreve uma gramática de reconhecimento de fala num formato suportado.

ruleName
String

O identificador da regra a usar como ponto de entrada da gramática de reconhecimento de voz, ou null 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 vazia (""), ou ruleName is null e a descrição gramatical não define uma regra raiz.

path é null.

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

Exemplos

O exemplo seguinte carrega um ficheiro SRGS local (cities.xml) a partir de um ficheiro e especifica uma regra a usar como raiz da gramática. O conteúdo do ficheiro 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>

Observações

Importante

Utilizar uma instância deste tipo com dados não confiáveis é um risco de segurança. Use este objeto apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Este construtor não passa quaisquer parâmetros ao manipulador de inicialização, e a descrição não deve definir um handler de inicialização que exija argumentos.

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

Este construtor compila ficheiros gramaticais em formato XML para um formato binário para os otimizar para carregamento e consumo por um motor de reconhecimento de voz. Pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática antecipadamente, usando um dos Compile métodos.

Para criar um Grammar que especifique um URI base para resolver referências relativas às regras, abra um fluxo de ficheiros para o ficheiro e use o Grammar construtor.

Ver 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 Grammar classe a partir de 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 disso GrammarBuilder contém as restrições para a gramática de reconhecimento de voz.

Exemplos

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

Ver 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 Grammar classe a partir de 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 num formato suportado.

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, nem descreve uma gramática que contenha uma referência de regra que não pode ser resolvida.

Exemplos

O exemplo seguinte cria uma gramática de reconhecimento de fala a partir de um ficheiro SRGS local (cities.xml) usando um fluxo de ficheiros. O conteúdo do ficheiro 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>

Observações

Este construtor não passa quaisquer parâmetros ao manipulador de inicialização, e a descrição não deve definir um handler de inicialização que exija argumentos.

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

Este construtor compila ficheiros gramaticais em formato XML para um formato binário para os otimizar para carregamento e consumo por um motor de reconhecimento de voz. Pode reduzir o tempo necessário para construir um Grammar objeto a partir de uma gramática em formato XML compilando a gramática antecipadamente, 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 Grammar construtor ou Grammar .

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

Ver também

Aplica-se a