SrgsRuleRef Constructeurs
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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 WorldCupWinner
de 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
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
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
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
rule
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(SrgsRule, String, String)
- 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
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
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
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 :