Compartilhar via


SrgsRuleRef Construtores

Definição

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 WorldCupWinnerde 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

uri é null.

rule é null.

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

uri é null.

semanticKey é null.

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:

Confira também

Aplica-se a