Grammar Construtores
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa uma nova instância da classe Grammar.
Sobrecargas
Grammar() |
Inicializa uma nova instância da classe Grammar. |
Grammar(SrgsDocument, String, Uri, Object[]) |
Inicializa uma nova instância da classe Grammar de uma instância de SrgsDocumente 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 Grammar de um Stream e especifica uma regra raiz e um URI de base para resolver as referências relativas. |
Grammar(SrgsDocument, String, Uri) |
Inicializa uma nova instância da Grammar classe de 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 Grammar de uma instância de SrgsDocumente 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 Grammar de 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 Grammar de um Stream e especifica a regra raiz. |
Grammar(String, String, Object[]) |
Inicializa uma nova instância da classe Grammar de um arquivo que contém uma definição de gramática 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 Grammar de um Stream e especifica a regra raiz. |
Grammar(String) |
Inicializa uma nova instância da classe Grammar de um arquivo. |
Grammar(SrgsDocument) |
Inicializa uma nova instância da classe Grammar de um objeto SrgsDocument. |
Grammar(String, String) |
Inicializa uma nova instância da classe Grammar de um arquivo e especifica a regra raiz. |
Grammar(GrammarBuilder) |
Inicializa uma nova instância da classe Grammar de um objeto GrammarBuilder. |
Grammar(Stream) |
Inicializa uma nova instância da classe Grammar de um Stream. |
Comentários
Você pode usar um Grammar construtor para criar uma Grammar instância de um GrammarBuilder objeto ou SrgsDocument ou de um arquivo ou um Stream que contém uma descrição de uma gramática em um formato com suporte. Os formatos com suporte incluem o seguinte:
Arquivos em formato XML que estão em conformidade com a SRGS (Especificação gramatical de reconhecimento de fala) do W3C versão 1.0
Gramáticas que foram compiladas para um arquivo binário com uma extensão de arquivo .cfg
Os construtores gramaticais que aceitam arquivos gramaticais no 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 a quantidade de tempo necessária para construir um Grammar objeto de uma gramática de 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
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
Inicializa uma nova instância da classe Grammar de uma instância de SrgsDocumente 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);
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 de SrgsDocument que contém as restrições da 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 da descrição da gramática.
- baseUri
- Uri
O URI base a ser usado para resolver qualquer referência relativa de regra na descrição de gramática, ou então null
.
- parameters
- Object[]
Parâmetros a serem passados para o manipulador de inicialização especificado pela propriedade OnInit para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.
Exceções
Algum dos parâmetros contém um valor inválido.
O SrgsDocument especificado por
srgsDocument
não contém a regra especificada emruleName
.O conteúdo dos parâmetros de matriz não corresponde aos argumentos de algum 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.
Aplica-se a
Grammar(Stream, String, Uri, Object[])
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
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
Um Stream conectado a um objeto de entrada/saída (incluindo arquivos de recursos do Visual Studio e DLLs) que contém uma especificação de gramática.
- 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 da gramática.
- baseUri
- Uri
O URI base a ser usado para resolver qualquer referência relativa de regra na descrição de gramática, ou então null
.
- parameters
- Object[]
Parâmetros a serem passados para o manipulador de inicialização especificado pela propriedade OnInit para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.
Exceções
Algum 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 porruleName
.O conteúdo dos parâmetros de matriz não corresponde aos argumentos de algum 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.
Aplica-se a
Grammar(SrgsDocument, String, Uri)
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
Inicializa uma nova instância da Grammar classe de 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);
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 da gramática de reconhecimento de fala.
- ruleName
- String
O identificador da regra a ser usado como o ponto de entrada da gramática de reconhecimento de fala, ou então null
para usar a regra de raiz padrão do SrgsDocument.
- baseUri
- Uri
O URI base a ser usado para resolver qualquer referência relativa de regra no SrgsDocument, ou então null
.
Exceções
ruleName
não pode ser resolvido ou não é público, ou então 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 um 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 o SrgsDocument não 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 objeto ou SpeechRecognizer gera uma exceção se ele não puder resolver todas as referências de regra na descrição gramatical. Se baseUri
não null
for , 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.
Confira também
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- Especificação gramatical de reconhecimento de fala
Aplica-se a
Grammar(SrgsDocument, String, Object[])
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
Inicializa uma nova instância da classe Grammar de uma instância de SrgsDocumente 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);
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 de SrgsDocument que contém as restrições da 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 da descrição da gramática.
- parameters
- Object[]
Parâmetros a serem passados para o manipulador de inicialização especificado pela propriedade OnInit para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.
Exceções
Algum dos parâmetros contém um valor inválido.
O SrgsDocument especificado por
srgsDocument
não contém a regra especificada porruleName
.O conteúdo dos parâmetros de matriz não corresponde aos argumentos de algum 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
Inicializa uma nova instância da classe Grammar de 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);
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 compatível.
- 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 da gramática.
- baseUri
- Uri
O URI base a ser usado para resolver qualquer referência relativa de regra na descrição de gramática, ou então null
.
Exceções
ruleName
não pode ser resolvido ou não é público, ou ruleName
é null
e a descrição de gramática 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 dos seguintes formatos:
Arquivos em formato XML que estão em conformidade com a SRGS (Especificação gramatical de reconhecimento de fala) do W3C versão 1.0
Gramáticas que foram compiladas em um arquivo binário com uma extensão de arquivo .cfg
Esse construtor compila arquivos de gramática no 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 objeto de uma Grammar gramática de 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 objeto ou SpeechRecognizer gera uma exceção se ele não puder resolver todas as referências de regra na descrição gramatical. Se baseUri
não null
for , 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
usará o arquivo designado e o diretório do arquivo quando tentar resolver referências de regra relativas.
Confira também
Aplica-se a
Grammar(Stream, String, Object[])
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
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
Um Stream conectado a um objeto de entrada/saída (incluindo arquivos de recursos do Visual Studio e DLLs) que contém uma especificação de gramática.
- 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 da gramática.
- parameters
- Object[]
Parâmetros a serem passados para o manipulador de inicialização especificado pela propriedade OnInit 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 no
ruleName
Requer parâmetros de inicialização diferentes dos 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
Inicializa uma nova instância da classe Grammar de um arquivo que contém uma definição de gramática 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);
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 de gramática.
- 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 da gramática.
- parameters
- Object[]
Parâmetros a serem passados para o manipulador de inicialização especificado pela propriedade OnInit para o ponto de entrada ou a regra raiz da Grammar a ser criada. Esse parâmetro pode ser nulo.
Exceções
Algum 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 emruleName
.O conteúdo dos parâmetros de matriz não corresponde aos argumentos de algum 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
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
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);
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 da gramática de reconhecimento de fala.
- ruleName
- String
O identificador da regra a ser usado como o ponto de entrada da gramática de reconhecimento de fala, ou então null
para usar a regra de raiz padrão do SrgsDocument.
Exceções
ruleName
não pode ser resolvido ou não é público, ou então 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 o SrgsDocument não 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
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Especificação gramatical de reconhecimento de fala
Aplica-se a
Grammar(Stream, String)
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
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
Um fluxo que descreve uma gramática de reconhecimento de fala em um formato compatível.
- 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 da gramática.
Exceções
ruleName
não pode ser resolvido ou não é público, ou ruleName
é null
e a descrição de gramática 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 arquivos 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
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 dos seguintes formatos:
Arquivos em formato XML que estão em conformidade com a SRGS (Especificação gramatical de reconhecimento de fala) do W3C versão 1.0
Gramáticas que foram compiladas em um arquivo binário com uma extensão de arquivo .cfg
Esse construtor compila arquivos de gramática no 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 objeto de uma Grammar gramática de formato XML compilando a gramática com antecedência, usando um dos Compile métodos .
Para criar um Grammar 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
Inicializa uma nova instância da classe Grammar de 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
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 dos seguintes formatos:
Arquivos em formato XML que estão em conformidade com a SRGS (Especificação gramatical de reconhecimento de fala) do W3C versão 1.0
Gramáticas que foram compiladas em um arquivo binário com uma extensão de arquivo .cfg
Esse construtor compila arquivos de gramática no 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 objeto de uma Grammar gramática de 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
Inicializa uma nova instância da classe Grammar de um 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
As restrições da 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 o SrgsDocument não deve conter um manipulador de inicialização que exija argumentos.
Um SrgsDocument pode ter uma regra raiz. Para criar um Grammar objeto que especifica uma regra raiz, use o Grammar construtor ou Grammar .
Para criar um reconhecimento Grammar de fala 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
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- Especificação gramatical de reconhecimento de fala
Aplica-se a
Grammar(String, String)
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
- Origem:
- Grammar.cs
Inicializa uma nova instância da classe Grammar de um arquivo e especifica a 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 da gramática.
Exceções
ruleName
não pode ser resolvido ou não é público, ou path
é a cadeia de caracteres vazia ("") ou ruleName
é null
e a descrição de gramática 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
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 dos seguintes formatos:
Arquivos em formato XML que estão em conformidade com a SRGS (Especificação gramatical de reconhecimento de fala) do W3C versão 1.0
Gramáticas que foram compiladas em um arquivo binário com uma extensão de arquivo .cfg
Esse construtor compila arquivos de gramática no 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 objeto de uma Grammar gramática de 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
Inicializa uma nova instância da classe Grammar de um 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
Uma instância de GrammarBuilder que contém as restrições da gramática de reconhecimento de fala.
Exemplos
O exemplo a seguir cria uma gramática de reconhecimento de fala usando Choices objetos e GrammarBuilder . 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
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 compatível.
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 dos seguintes formatos:
Arquivos em formato XML que estão em conformidade com a SRGS (Especificação gramatical de reconhecimento de fala) do W3C versão 1.0
Gramáticas que foram compiladas para um arquivo binário com uma extensão de arquivo .cfg
Esse construtor compila arquivos gramaticais de formato XML em um formato binário para otimizá-los para carregamento e consumo por um mecanismo de reconhecimento de fala. Você pode reduzir a quantidade de tempo necessária para construir um Grammar objeto de uma gramática de 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 um fluxo e especificar uma regra raiz, use o Grammar construtor ou Grammar .
Para criar um Grammar objeto de um fluxo e especificar um URI base a ser usado para resolver referências de regra relativas, use o Grammar construtor .