Partager via


SrgsRuleRef Constructeurs

Définition

Initialise une nouvelle instance de la classe SrgsRuleRef.

Surcharges

SrgsRuleRef(SrgsRule)

Initialise une nouvelle instance de la classe SrgsRuleRef et spécifie la règle à référencer.

SrgsRuleRef(Uri)

Initialise une nouvelle instance de la classe SrgsRuleRef et spécifie l'emplacement du fichier de grammaire externe à référencer.

SrgsRuleRef(SrgsRule, String)

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant la règle à référencer et une chaîne qui contient une clé sémantique.

SrgsRuleRef(Uri, String)

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant l'emplacement du fichier de grammaire externe et l'identificateur de la règle à référencer.

SrgsRuleRef(SrgsRule, String, String)

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant la règle à référencer, l'alias de chaîne du dictionnaire sémantique et les paramètres d'initialisation.

SrgsRuleRef(Uri, String, String)

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant l'emplacement du fichier de grammaire externe, l'identificateur de la règle et l'alias de chaîne du dictionnaire sémantique.

SrgsRuleRef(Uri, String, String, String)

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant l'emplacement du fichier de grammaire externe, l'identificateur de la règle, l'alias de chaîne du dictionnaire sémantique et les paramètres d'initialisation.

SrgsRuleRef(SrgsRule)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef et spécifie la règle à référencer.

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)

Paramètres

rule
SrgsRule

Objet à référencer.

Exceptions

rule a la valeur null.

Exemples

L’exemple suivant crée une grammaire qui reconnaît l’expression « Une nation qui a remporté la Coupe du monde est » suivie du nom d’un pays qui a remporté la Coupe du monde. Après avoir créé l’objet SrgsRulewinnerRule et lui avoir donné l’identificateur WorldCupWinnerde chaîne , l’exemple ajoute la chaîne « Une nation qui a remporté la Coupe du monde est » à la règle. À l’aide SrgsOneOf d’objets, l’exemple génère ensuite une liste de pays/régions européens et une liste de pays/régions d’Amérique du Sud, et ajoute chaque liste à sa règle respective, ruleEurope ou ruleSAmerica. L’exemple crée ensuite des références de règle pour ruleEurope et ruleSAmerica les ajoute à la WorldCupWinner règle.

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

La grammaire créée se présente sous la forme suivante.

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

Remarques

Ce constructeur crée une référence de règle à un SrgsRule objet dans la grammaire contenante. Pour créer une référence de règle à un élément dans un rule fichier de grammaire externe, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à

SrgsRuleRef(Uri)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef et spécifie l'emplacement du fichier de grammaire externe à référencer.

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)

Paramètres

uri
Uri

Emplacement d'un fichier de grammaire en dehors de la grammaire conteneur.

Exceptions

uri a la valeur null.

Exemples

L’exemple suivant crée une grammaire pour une application qui retourne des informations sur le service de navette de bus. La première méthode, GrammarUrlForRoute, prend une chaîne qui spécifie un itinéraire et l’ajoute à une chaîne spécifiant l’emplacement d’une grammaire. Cela spécifie une règle particulière dans cette grammaire. La méthode retourne un Uri pour cette règle.

La deuxième méthode, CreateGrammarForRoute, crée un SrgsDocument élément nommé grammar avec une référence de règle spécifiée par le Uri qui lui est passé par GrammarUrlForRoute. Notez que la variable nommée _route est membre d’une classe englobante.

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

Notes

La variable nommée _route n’est pas déclarée et non définie dans l’exemple précédent. Il doit être déclaré en tant que String et contenir le numéro d’itinéraire d’un itinéraire de bus particulier avant que l’exemple précédent ne soit compilé et exécuté.

Remarques

Ce constructeur crée une référence de règle à un fichier de grammaire externe. L’URI peut également inclure l’identificateur d’une règle à référencer, par exemple http://www.contoso.com/ExternalGrammar.grxml#targetRule. Si le uri paramètre ne spécifie pas d’identificateur de règle, la référence de règle pointe vers la règle racine de la grammaire cible. Pour créer une référence de règle à un SrgsRule objet dans la même grammaire, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à

SrgsRuleRef(SrgsRule, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant la règle à référencer et une chaîne qui contient une clé sémantique.

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)

Paramètres

rule
SrgsRule

Objet à référencer.

semanticKey
String

Clé sémantique.

Exemples

L’exemple suivant crée une grammaire pour choisir les villes pour un vol. L’exemple construit deux SrgsRuleRef instances, chacune spécifiant une clé sémantique. Les deux références de règle ciblent le même SrgsRule objet, nommé cities, mais balisent le résultat de reconnaissance de la référence de règle avec une clé sémantique différente. La clé sémantique identifie une ville reconnue comme la ville de départ ou la ville d’arrivée du vol. Le gestionnaire de l’événement SpeechRecognized utilise les clés pour récupérer les valeurs sémantiques créées à l’aide SrgsNameValueTag du résultat de reconnaissance.

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

Remarques

Ce constructeur crée une référence de règle à un SrgsRule objet dans la grammaire contenante. Pour créer une référence de règle à un élément dans un rule fichier de grammaire externe, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à

SrgsRuleRef(Uri, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant l'emplacement du fichier de grammaire externe et l'identificateur de la règle à référencer.

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)

Paramètres

uri
Uri

Emplacement d'un fichier de grammaire en dehors de la grammaire conteneur.

rule
String

Identificateur de la règle à référencer.

Exceptions

uri a la valeur null.

rule a la valeur null.

Remarques

Ce constructeur crée une référence de règle à un rule élément dans un fichier de grammaire externe. Pour créer une référence de règle à un SrgsRule objet dans la même grammaire, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à

SrgsRuleRef(SrgsRule, String, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant la règle à référencer, l'alias de chaîne du dictionnaire sémantique et les paramètres d'initialisation.

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)

Paramètres

rule
SrgsRule

Objet à référencer.

semanticKey
String

Clé sémantique.

parameters
String

Paramètres d'initialisation d'un objet SrgsRuleRef.

Remarques

Ce constructeur crée une référence de règle à un SrgsRule objet dans la grammaire contenante. Pour créer une référence de règle à un élément dans un rule fichier de grammaire externe, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à

SrgsRuleRef(Uri, String, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant l'emplacement du fichier de grammaire externe, l'identificateur de la règle et l'alias de chaîne du dictionnaire sémantique.

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)

Paramètres

uri
Uri

Emplacement d'un fichier de grammaire en dehors de la grammaire conteneur.

rule
String

Identificateur de la règle à référencer.

semanticKey
String

Chaîne d'alias pour le dictionnaire sémantique.

Exceptions

uri a la valeur null.

semanticKey a la valeur null.

semanticKey est vide.

Remarques

Ce constructeur crée une référence de règle à un rule élément dans un fichier de grammaire externe. Pour créer une référence de règle à un SrgsRule objet dans la même grammaire, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à

SrgsRuleRef(Uri, String, String, String)

Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs
Source:
SrgsRuleRef.cs

Initialise une nouvelle instance de la classe SrgsRuleRef en spécifiant l'emplacement du fichier de grammaire externe, l'identificateur de la règle, l'alias de chaîne du dictionnaire sémantique et les paramètres d'initialisation.

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)

Paramètres

uri
Uri

Emplacement d'un fichier de grammaire en dehors de la grammaire conteneur.

rule
String

Identificateur de la règle à référencer.

semanticKey
String

Clé sémantique.

parameters
String

Paramètres d'initialisation d'un objet SrgsRuleRef.

Remarques

Ce constructeur crée une référence de règle à un rule élément dans un fichier de grammaire externe. Pour créer une référence de règle à un SrgsRule objet dans la même grammaire, utilisez l’un des constructeurs suivants :

Voir aussi

S’applique à