SrgsRuleRef 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 SrgsRuleRef.
Sobrecargas
SrgsRuleRef(SrgsRule) |
Inicializa uma nova instância da classe SrgsRuleRef e especifica a regra a ser referenciada. |
SrgsRuleRef(Uri) |
Inicializa uma nova instância da classe SrgsRuleRef e especifica o local do arquivo de gramática externo a ser referenciado. |
SrgsRuleRef(SrgsRule, String) |
Inicializa uma nova instância da classe SrgsRuleRef, especificando a regra a ser referenciada e uma cadeia de caracteres que contém uma chave semântica. |
SrgsRuleRef(Uri, String) |
Inicializa uma nova instância da classe SrgsRuleRef, especificando o local do arquivo de gramática externo e o identificador da regra a ser referenciada. |
SrgsRuleRef(SrgsRule, String, String) |
Inicializa uma nova instância da classe SrgsRuleRef, especificando a regra a ser referenciada, o alias da cadeia de caracteres do dicionário de semântica e os parâmetros de inicialização. |
SrgsRuleRef(Uri, String, String) |
Inicializa uma nova instância do SrgsRuleRef arquivo de classe, especificando o local da gramática externo, o identificador da regra e o alias de cadeia de caracteres do dicionário de semântica. |
SrgsRuleRef(Uri, String, String, String) |
Inicializa uma nova instância da classe SrgsRuleRef, especificando o local do arquivo de gramática externo, o identificador da regra, o alias de cadeia de caracteres do dicionário de semântica e os parâmetros de inicialização. |
SrgsRuleRef(SrgsRule)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância da classe SrgsRuleRef e especifica a regra a ser referenciada.
public:
SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule)
Parâmetros
- rule
- SrgsRule
O objeto a ser referenciado.
Exceções
rule
é null
.
Exemplos
O exemplo a seguir cria uma gramática que reconhece a frase "Uma nação que ganhou a Copa do Mundo é" seguida pelo nome de um país que ganhou a Copa do Mundo. Depois de criar o SrgsRule objeto winnerRule
e dar-lhe o identificador WorldCupWinner
de cadeia de caracteres , o exemplo acrescenta a cadeia de caracteres "Uma nação que ganhou a Copa do Mundo é" à regra. Usando SrgsOneOf objetos, o exemplo cria uma lista de países/regiões europeias e uma lista de países/regiões sul-americanos e adiciona cada lista à sua respectiva regra, ruleEurope
ou ruleSAmerica
. Em seguida, o exemplo cria referências de regra para ruleEurope
e ruleSAmerica
as adiciona à WorldCupWinner
regra.
public void WorldSoccerWinners ()
{
// Create an SrgsDocument, create a new rule
// and set its scope to public.
SrgsDocument document = new SrgsDocument();
SrgsRule winnerRule = new SrgsRule("WorldCupWinner");
winnerRule.Scope = SrgsRuleScope.Public;
// Add the introduction.
winnerRule.Elements.Add(new SrgsItem("A nation that has won the world cup is: "));
// Create the rule for the European nations.
SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"),
new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));
// Create the rule for the South American nations.
SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"),
new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));
// Add references to winnerRule for ruleEurope and ruleSAmerica.
winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem
(new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));
// Add all the rules to the document and make winnerRule
// the root rule of the document.
document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
document.Root = winnerRule;
}
A gramática criada tem o seguinte formulário.
<grammar version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar" root="WorldCupWinner">
<rule id="WorldCupWinner" scope="public">
<item> A nation that has won the world cup is </item>
<one-of>
<item>
<ruleref uri="#EuropeanNations" />
</item>
<item>
<ruleref uri="#SouthAmericanNations" />
</item>
</one-of>
</rule>
<rule id="EuropeanNations">
<one-of>
<item> England </item>
<item> France </item>
<item> Germany </item>
<item> Italy </item>
</one-of>
</rule>
<rule id="SouthAmericanNations">
<one-of>
<item> Argentina </item>
<item> Brazil </item>
<item> Uruguay </item>
</one-of>
</rule>
</grammar>
Comentários
Esse construtor cria uma referência de regra a um SrgsRule objeto dentro da gramática que contém. Para criar uma referência de regra a um rule
elemento em um arquivo de gramática externo, use qualquer um dos seguintes construtores:
Confira também
Aplica-se a
SrgsRuleRef(Uri)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância da classe SrgsRuleRef e especifica o local do arquivo de gramática externo a ser referenciado.
public:
SrgsRuleRef(Uri ^ uri);
public SrgsRuleRef (Uri uri);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri)
Parâmetros
- uri
- Uri
O local de um arquivo de gramática fora a gramática contentora.
Exceções
uri
é null
.
Exemplos
O exemplo a seguir cria uma gramática para um aplicativo que retorna informações sobre o serviço de transporte de ônibus. O primeiro método, GrammarUrlForRoute
, usa uma cadeia de caracteres que especifica uma rota e a acrescenta a uma cadeia de caracteres que especifica o local de uma gramática. Isso especifica uma regra específica nessa gramática. O método retorna um Uri
para essa regra.
O segundo método, CreateGrammarForRoute
, cria um SrgsDocument elemento chamado grammar
com uma referência de regra especificada pelo Uri
passado a ele por GrammarUrlForRoute
. Observe que a variável chamada _route é membro de uma classe delimitada.
private Uri GrammarUrlForRoute(string route)
{
return new Uri("http://localhost/MyBus/MyBusLocations.grxml#LocationsForRoute" + route);
}
private SrgsDocument CreateGrammarForRoute()
{
SrgsDocument grammar = new SrgsDocument();
grammar.Mode = SrgsGrammarMode.Voice;
SrgsRule rule = new SrgsRule("LocationsForRoute" + _route);
SrgsRuleRef ruleref = new SrgsRuleRef(GrammarUrlForRoute(_route));
SrgsSemanticInterpretationTag tag = new SrgsSemanticInterpretationTag ("$.Location = $$");
rule.Elements.Add(ruleref);
rule.Elements.Add(tag);
grammar.Rules.Add(rule);
grammar.Root = rule;
return grammar;
}
Observação
A variável chamada _route
não é declarada e indefinida no exemplo anterior. Ele deve ser declarado como um String e conter o número de rota de uma rota de ônibus específica antes que o exemplo anterior seja compilado e executado.
Comentários
Esse construtor cria uma referência de regra a um arquivo de gramática externo. O URI também pode incluir o identificador de uma regra a ser referenciada, por exemplo http://www.contoso.com/ExternalGrammar.grxml#targetRule
. Se o uri
parâmetro não especificar um identificador de regra, a referência de regra apontará para a regra raiz da gramática de destino. Para criar uma referência de regra a um SrgsRule objeto dentro da mesma gramática, use qualquer um dos seguintes construtores:
Confira também
Aplica-se a
SrgsRuleRef(SrgsRule, String)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância da classe SrgsRuleRef, especificando a regra a ser referenciada e uma cadeia de caracteres que contém uma chave semântica.
public:
SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule, System::String ^ semanticKey);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule, semanticKey As String)
Parâmetros
- rule
- SrgsRule
O objeto a ser referenciado.
- semanticKey
- String
A chave semântica.
Exemplos
O exemplo a seguir cria uma gramática para escolher as cidades para um voo. O exemplo constrói duas SrgsRuleRef instâncias, cada uma especificando uma chave semântica. Ambas as referências de regra visam o mesmo SrgsRule objeto, chamado cities
, mas marcam o resultado do reconhecimento da referência de regra com uma chave semântica diferente. A chave semântica identifica uma cidade reconhecida como a cidade de partida ou a cidade de chegada para o voo. O manipulador do SpeechRecognized evento usa as chaves para recuperar os valores de semântica criados usando SrgsNameValueTag o resultado do reconhecimento.
using System;
using System.Speech.Recognition;
using System.Speech.Recognition.SrgsGrammar;
namespace SampleRecognition
{
class Program
{
static void Main(string[] args)
// Initialize a SpeechRecognitionEngine object.
{
using (SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))
{
// Build a rule with a list of cities, assign a semantic value to each city.
SrgsItem chi = new SrgsItem("Chicago");
chi.Add(new SrgsNameValueTag("ORD"));
SrgsItem bos = new SrgsItem("Boston");
bos.Add(new SrgsNameValueTag("BOS"));
SrgsItem mia = new SrgsItem("Miami");
mia.Add(new SrgsNameValueTag("MIA"));
SrgsItem dal = new SrgsItem("Dallas");
dal.Add(new SrgsNameValueTag("DFW"));
SrgsOneOf cities = new SrgsOneOf(new SrgsItem[] { chi, bos, mia, dal });
SrgsRule citiesRule = new SrgsRule("flightCities");
citiesRule.Add(cities);
// Build the root rule, add rule references to the cities rule.
SrgsRule flightBooker = new SrgsRule("bookFlight");
flightBooker.Add(new SrgsItem("I want to fly from"));
flightBooker.Add(new SrgsRuleRef(citiesRule, "departureCity"));
flightBooker.Add(new SrgsItem("to"));
flightBooker.Add(new SrgsRuleRef(citiesRule, "arrivalCity"));
// Build an SrgsDocument object from the flightBooker rule and add the cities rule.
SrgsDocument cityChooser = new SrgsDocument(flightBooker);
cityChooser.Rules.Add(citiesRule);
// Create a Grammar object from the SrgsDocument and load it to the recognizer.
Grammar departArrive = new Grammar(cityChooser);
departArrive.Name = ("Cities Grammar");
recognizer.LoadGrammarAsync(departArrive);
// Configure recognizer input.
recognizer.SetInputToDefaultAudioDevice();
// Attach a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Start asynchronous 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);
Console.WriteLine();
Console.WriteLine("Semantic results:");
Console.WriteLine(" The departure city is: " + e.Result.Semantics["departureCity"].Value);
Console.WriteLine(" The destination city is: " + e.Result.Semantics["arrivalCity"].Value);
}
}
}
Comentários
Esse construtor cria uma referência de regra a um SrgsRule objeto dentro da gramática que contém. Para criar uma referência de regra a um rule
elemento em um arquivo de gramática externo, use qualquer um dos seguintes construtores:
Confira também
Aplica-se a
SrgsRuleRef(Uri, String)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância da classe SrgsRuleRef, especificando o local do arquivo de gramática externo e o identificador da regra a ser referenciada.
public:
SrgsRuleRef(Uri ^ uri, System::String ^ rule);
public SrgsRuleRef (Uri uri, string rule);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String)
Parâmetros
- uri
- Uri
O local de um arquivo de gramática fora a gramática contentora.
- rule
- String
O identificador da regra a ser referenciada.
Exceções
rule
está vazio.
Comentários
Esse construtor cria uma referência de regra a um rule
elemento em um arquivo de gramática externo. Para criar uma referência de regra a um SrgsRule objeto dentro da mesma gramática, use qualquer um dos seguintes construtores:
Confira também
Aplica-se a
SrgsRuleRef(SrgsRule, String, String)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância da classe SrgsRuleRef, especificando a regra a ser referenciada, o alias da cadeia de caracteres do dicionário de semântica e os parâmetros de inicialização.
public:
SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule, System::String ^ semanticKey, System::String ^ parameters);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey, string parameters);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule, semanticKey As String, parameters As String)
Parâmetros
- rule
- SrgsRule
O objeto a ser referenciado.
- semanticKey
- String
A chave semântica.
- parameters
- String
Os parâmetros de inicialização de um objeto SrgsRuleRef.
Comentários
Esse construtor cria uma referência de regra a um SrgsRule objeto dentro da gramática que contém. Para criar uma referência de regra a um rule
elemento em um arquivo de gramática externo, use qualquer um dos seguintes construtores:
Confira também
Aplica-se a
SrgsRuleRef(Uri, String, String)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância do SrgsRuleRef arquivo de classe, especificando o local da gramática externo, o identificador da regra e o alias de cadeia de caracteres do dicionário de semântica.
public:
SrgsRuleRef(Uri ^ uri, System::String ^ rule, System::String ^ semanticKey);
public SrgsRuleRef (Uri uri, string rule, string semanticKey);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String, semanticKey As String)
Parâmetros
- uri
- Uri
O local de um arquivo de gramática fora a gramática contentora.
- rule
- String
O identificador da regra a ser referenciada.
- semanticKey
- String
Uma cadeia de caracteres do alias para o dicionário de semântica.
Exceções
semanticKey
está vazio.
Comentários
Esse construtor cria uma referência de regra a um rule
elemento em um arquivo de gramática externo. Para criar uma referência de regra a um SrgsRule objeto dentro da mesma gramática, use qualquer um dos seguintes construtores:
Confira também
Aplica-se a
SrgsRuleRef(Uri, String, String, String)
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
- Origem:
- SrgsRuleRef.cs
Inicializa uma nova instância da classe SrgsRuleRef, especificando o local do arquivo de gramática externo, o identificador da regra, o alias de cadeia de caracteres do dicionário de semântica e os parâmetros de inicialização.
public:
SrgsRuleRef(Uri ^ uri, System::String ^ rule, System::String ^ semanticKey, System::String ^ parameters);
public SrgsRuleRef (Uri uri, string rule, string semanticKey, string parameters);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String, semanticKey As String, parameters As String)
Parâmetros
- uri
- Uri
O local de um arquivo de gramática fora a gramática contentora.
- rule
- String
O identificador da regra a ser referenciada.
- semanticKey
- String
A chave semântica.
- parameters
- String
Os parâmetros de inicialização de um objeto SrgsRuleRef.
Comentários
Esse construtor cria uma referência de regra a um rule
elemento em um arquivo de gramática externo. Para criar uma referência de regra a um SrgsRule objeto dentro da mesma gramática, use qualquer um dos seguintes construtores: