SrgsRuleRef Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci SrgsRuleRef třídy.
Přetížení
SrgsRuleRef(SrgsRule) |
Inicializuje novou instanci SrgsRuleRef třídy a určuje pravidlo, na které se má odkazovat. |
SrgsRuleRef(Uri) |
Inicializuje novou instanci SrgsRuleRef třídy a určuje umístění externího gramatického souboru, na který se má odkazovat. |
SrgsRuleRef(SrgsRule, String) |
Inicializuje novou instanci SrgsRuleRef třídy, určuje pravidlo, na které se má odkazovat, a řetězec, který obsahuje sémantický klíč. |
SrgsRuleRef(Uri, String) |
Inicializuje novou instanci SrgsRuleRef třídy a určuje umístění externího gramatického souboru a identifikátor pravidla, na které se má odkazovat. |
SrgsRuleRef(SrgsRule, String, String) |
Inicializuje novou instanci SrgsRuleRef třídy, určuje pravidlo, na které se má odkazovat, alias řetězce sémantického slovníku a inicializační parametry. |
SrgsRuleRef(Uri, String, String) |
Inicializuje novou instanci SrgsRuleRef třídy a určí umístění externího gramatického souboru, identifikátor pravidla a řetězcový alias sémantického slovníku. |
SrgsRuleRef(Uri, String, String, String) |
Inicializuje novou instanci SrgsRuleRef třídy, určuje umístění externího gramatického souboru, identifikátor pravidla, alias řetězce sémantického slovníku a inicializační parametry. |
SrgsRuleRef(SrgsRule)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy a určuje pravidlo, na které se má odkazovat.
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)
Parametry
- rule
- SrgsRule
Objekt, na který chcete odkazovat.
Výjimky
rule
je null
.
Příklady
Následující příklad vytvoří gramatiku, která rozpozná frázi "A nation that has has won the World Cup is" následovaný názvem země, která vyhrála mistrovství světa. Po vytvoření objektu SrgsRulewinnerRule
a zadání identifikátoru WorldCupWinner
řetězce připojí příklad k pravidlu řetězec "Národ, který vyhrál mistrovství světa je". Pomocí SrgsOneOf objektů pak příklad sestaví seznam evropských zemí/oblastí a seznam jihoamerických zemí/oblastí a přidá každý seznam do příslušného pravidla nebo ruleEurope
ruleSAmerica
. Příklad pak vytvoří odkazy na pravidla pro ruleEurope
a ruleSAmerica
přidá je do WorldCupWinner
pravidla.
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;
}
Vytvořená gramatika má následující formulář.
<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>
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo objektu SrgsRule v rámci obsahující gramatiky. Pokud chcete vytvořit odkaz na pravidlo na rule
prvek v externím souboru gramatiky, použijte některý z následujících konstruktorů:
Viz také
Platí pro
SrgsRuleRef(Uri)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy a určuje umístění externího gramatického souboru, na který se má odkazovat.
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)
Parametry
- uri
- Uri
Umístění souboru gramatiky mimo obsahující gramatiku.
Výjimky
uri
je null
.
Příklady
Následující příklad vytvoří gramatiku pro aplikaci, která vrací informace o kyvadlové autobusové dopravě. První metoda , GrammarUrlForRoute
vezme řetězec, který určuje trasu a připojí ho k řetězci určujícímu umístění gramatiky. Určuje konkrétní pravidlo v této gramatice. Metoda vrátí Uri
hodnotu pro toto pravidlo.
Druhá metoda, CreateGrammarForRoute
vytvoří prvek SrgsDocument s názvem grammar
s odkazem na pravidlo určeným objektem Uri
předaným .GrammarUrlForRoute
Všimněte si, že proměnná s názvem _route je členem ohraničující třídy.
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;
}
Poznámka
Proměnná s názvem _route
je v předchozí ukázce nedefinovaná a nedefinovaná. Před kompilací a spuštěním předchozí ukázky by měla být deklarována jako String a měla by obsahovat číslo trasy pro konkrétní trasu sběrnice.
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo na externí gramatický soubor. Identifikátor URI může také obsahovat identifikátor pravidla, na které se má odkazovat, například http://www.contoso.com/ExternalGrammar.grxml#targetRule
.
uri
Pokud parametr neurčuje identifikátor pravidla, odkaz na pravidlo odkazuje na kořenové pravidlo cílové gramatiky. Pokud chcete vytvořit odkaz na pravidlo objektu SrgsRule v rámci stejné gramatiky, použijte některý z následujících konstruktorů:
Viz také
Platí pro
SrgsRuleRef(SrgsRule, String)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy, určuje pravidlo, na které se má odkazovat, a řetězec, který obsahuje sémantický klíč.
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)
Parametry
- rule
- SrgsRule
Objekt, na který chcete odkazovat.
- semanticKey
- String
Sémantický klíč.
Příklady
Následující příklad vytvoří gramatiku pro výběr měst pro let. Příklad vytvoří dvě SrgsRuleRef instance, z nichž každá určuje sémantický klíč. Oba odkazy na pravidla cílí na stejný SrgsRule objekt s názvem cities
, ale označí výsledek rozpoznávání z odkazu na pravidlo jiným sémantickým klíčem. Sémantický klíč identifikuje rozpoznané město jako město odletu nebo město příletu pro let. Obslužná rutina události SpeechRecognized používá klíče k načtení hodnot sémantiky vytvořených pomocí SrgsNameValueTag výsledku rozpoznávání.
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);
}
}
}
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo objektu SrgsRule v rámci obsahující gramatiky. Pokud chcete vytvořit odkaz na pravidlo na rule
prvek v externím souboru gramatiky, použijte některý z následujících konstruktorů:
Viz také
Platí pro
SrgsRuleRef(Uri, String)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy a určuje umístění externího gramatického souboru a identifikátor pravidla, na které se má odkazovat.
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)
Parametry
- uri
- Uri
Umístění souboru gramatiky mimo obsahující gramatiku.
- rule
- String
Identifikátor pravidla, na které se má odkazovat.
Výjimky
rule
je prázdný.
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo na rule
prvek v externím souboru gramatiky. Pokud chcete vytvořit odkaz na pravidlo objektu SrgsRule v rámci stejné gramatiky, použijte některý z následujících konstruktorů:
Viz také
Platí pro
SrgsRuleRef(SrgsRule, String, String)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy, určuje pravidlo, na které se má odkazovat, alias řetězce sémantického slovníku a inicializační parametry.
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)
Parametry
- rule
- SrgsRule
Objekt, na který chcete odkazovat.
- semanticKey
- String
Sémantický klíč.
- parameters
- String
Inicializační parametry objektu SrgsRuleRef .
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo objektu SrgsRule v rámci obsahující gramatiky. Pokud chcete vytvořit odkaz na pravidlo na rule
prvek v externím souboru gramatiky, použijte některý z následujících konstruktorů:
Viz také
Platí pro
SrgsRuleRef(Uri, String, String)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy a určí umístění externího gramatického souboru, identifikátor pravidla a řetězcový alias sémantického slovníku.
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)
Parametry
- uri
- Uri
Umístění souboru gramatiky mimo obsahující gramatiku.
- rule
- String
Identifikátor pravidla, na které se má odkazovat.
- semanticKey
- String
Řetězec aliasu pro sémantický slovník.
Výjimky
semanticKey
je prázdný.
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo na rule
prvek v externím souboru gramatiky. Pokud chcete vytvořit odkaz na pravidlo objektu SrgsRule v rámci stejné gramatiky, použijte některý z následujících konstruktorů:
Viz také
Platí pro
SrgsRuleRef(Uri, String, String, String)
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
- Zdroj:
- SrgsRuleRef.cs
Inicializuje novou instanci SrgsRuleRef třídy, určuje umístění externího gramatického souboru, identifikátor pravidla, alias řetězce sémantického slovníku a inicializační parametry.
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)
Parametry
- uri
- Uri
Umístění souboru gramatiky mimo obsahující gramatiku.
- rule
- String
Identifikátor pravidla, na které se má odkazovat.
- semanticKey
- String
Sémantický klíč.
- parameters
- String
Inicializační parametry objektu SrgsRuleRef .
Poznámky
Tento konstruktor vytvoří odkaz na pravidlo na rule
prvek v externím souboru gramatiky. Pokud chcete vytvořit odkaz na pravidlo objektu SrgsRule v rámci stejné gramatiky, použijte některý z následujících konstruktorů: