SrgsRuleRef Oluşturucular
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
SrgsRuleRef sınıfının yeni bir örneğini başlatır.
Aşırı Yüklemeler
SrgsRuleRef(SrgsRule) |
sınıfının yeni bir örneğini SrgsRuleRef başlatır ve başvurulacak kuralı belirtir. |
SrgsRuleRef(Uri) |
sınıfının yeni bir örneğini SrgsRuleRef başlatır ve başvurulacak dış dil bilgisi dosyasının konumunu belirtir. |
SrgsRuleRef(SrgsRule, String) |
Başvurulacak kuralı ve semantik anahtar içeren bir dizeyi belirterek sınıfının yeni bir örneğini SrgsRuleRef başlatır. |
SrgsRuleRef(Uri, String) |
Dış dil bilgisi dosyasının SrgsRuleRef konumunu ve başvurulacak kuralın tanımlayıcısını belirterek sınıfının yeni bir örneğini başlatır. |
SrgsRuleRef(SrgsRule, String, String) |
Başvurulacak kuralı, semantik sözlüğün SrgsRuleRef dize diğer adını ve başlatma parametrelerini belirterek sınıfının yeni bir örneğini başlatır. |
SrgsRuleRef(Uri, String, String) |
Dış dil bilgisi dosyasının SrgsRuleRef konumunu, kuralın tanımlayıcısını ve semantik sözlüğün dize diğer adını belirterek sınıfının yeni bir örneğini başlatır. |
SrgsRuleRef(Uri, String, String, String) |
Dış dil bilgisi dosyasının SrgsRuleRef konumunu, kuralın tanımlayıcısını, anlam sözlüğünün dize diğer adını ve başlatma parametrelerini belirterek sınıfının yeni bir örneğini başlatır. |
SrgsRuleRef(SrgsRule)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
sınıfının yeni bir örneğini SrgsRuleRef başlatır ve başvurulacak kuralı belirtir.
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)
Parametreler
- rule
- SrgsRule
Başvurulacak nesne.
Özel durumlar
rule
, null
değeridir.
Örnekler
Aşağıdaki örnek, "Dünya Kupası'nı kazanan bir ülkedir" ifadesini ve ardından Dünya Kupası'nı kazanan bir ülkenin adını tanıyan bir dil bilgisi oluşturur. Nesnesini winnerRule
oluşturup SrgsRule dize tanımlayıcısını WorldCupWinner
verdikten sonra, örnek kurala "Dünya Kupası'nı kazanan bir ulus" dizesini ekler. Örnek, nesneleri kullanarak SrgsOneOf Avrupa ülkelerinin/bölgelerinin listesini ve Güney Amerika ülkelerinin/bölgelerinin listesini oluşturur ve her listeyi kendi kuralına ruleEurope
veya ruleSAmerica
öğesine ekler. Örnek daha sonra ve ruleSAmerica
için ruleEurope
kural başvuruları oluşturur ve bunları kurala WorldCupWinner
ekler.
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;
}
Oluşturulan dil bilgisi aşağıdaki biçime sahiptir.
<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>
Açıklamalar
Bu oluşturucu, içeren dil bilgisi içindeki bir SrgsRule nesneye bir kural başvurusu oluşturur. Dış dil bilgisi dosyasındaki bir rule
öğeye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın:
Ayrıca bkz.
Şunlara uygulanır
SrgsRuleRef(Uri)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
sınıfının yeni bir örneğini SrgsRuleRef başlatır ve başvurulacak dış dil bilgisi dosyasının konumunu belirtir.
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)
Parametreler
- uri
- Uri
Dil bilgisi içeren dil bilgisi dosyasının dışındaki konumu.
Özel durumlar
uri
, null
değeridir.
Örnekler
Aşağıdaki örnek, veri yolu servisi hakkında bilgi döndüren bir uygulama için dil bilgisi oluşturur. İlk yöntem olan , GrammarUrlForRoute
bir yol belirten bir dize alır ve bunu dil bilgisinin konumunu belirten bir dizeye ekler. Bu, söz konusu dil bilgisi içindeki belirli bir kuralı belirtir. yöntemi, bu kural için bir Uri
döndürür.
İkinci yöntem olan CreateGrammarForRoute
, tarafından geçirilen GrammarUrlForRoute
tarafından Uri
belirtilen bir kural başvurusu ile adlı grammar
bir SrgsDocument öğe oluşturur. _route adlı değişkenin kapsayan bir sınıfın üyesi olduğunu unutmayın.
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;
}
Not
_route
adlı değişken, önceki örnekte undeclared ve undefined değişkenidir. Önceki örnek derlenmeden ve çalıştırılmadan önce belirli bir veri yolu yolu için yol numarası olarak String bildirilmelidir.
Açıklamalar
Bu oluşturucu, bir dış dil bilgisi dosyasına kural başvurusu oluşturur. URI, başvurulacak kuralın tanımlayıcısını da içerebilir, örneğin http://www.contoso.com/ExternalGrammar.grxml#targetRule
.
uri
Parametre bir kural tanımlayıcısı belirtmezse, kural başvurusu hedef dil bilgisinin kök kuralına işaret eder. Aynı dil bilgisi içindeki bir SrgsRule nesneye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın:
Ayrıca bkz.
Şunlara uygulanır
SrgsRuleRef(SrgsRule, String)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
Başvurulacak kuralı ve semantik anahtar içeren bir dizeyi belirterek sınıfının yeni bir örneğini SrgsRuleRef başlatır.
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)
Parametreler
- rule
- SrgsRule
Başvurulacak nesne.
- semanticKey
- String
Anlamsal anahtar.
Örnekler
Aşağıdaki örnek, uçuş için şehirleri seçmek için bir dil bilgisi oluşturur. Örnek, her biri anlamsal anahtar belirten iki SrgsRuleRef örnek oluşturur. Her iki kural başvurusu da adlı cities
aynı SrgsRule nesneyi hedefler, ancak kural başvurusundan gelen tanıma sonucunu farklı bir anlam anahtarıyla etiketler. Anlam anahtarı, tanınan bir şehri uçuş için kalkış şehri veya varış şehri olarak tanımlar. Olay işleyicisi SpeechRecognized , tanıma sonucundan kullanılarak SrgsNameValueTag oluşturulan semantik değerleri almak için anahtarları kullanır.
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);
}
}
}
Açıklamalar
Bu oluşturucu, içeren dil bilgisi içindeki bir SrgsRule nesneye bir kural başvurusu oluşturur. Dış dil bilgisi dosyasındaki bir rule
öğeye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın:
Ayrıca bkz.
Şunlara uygulanır
SrgsRuleRef(Uri, String)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
Dış dil bilgisi dosyasının SrgsRuleRef konumunu ve başvurulacak kuralın tanımlayıcısını belirterek sınıfının yeni bir örneğini başlatır.
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)
Parametreler
- uri
- Uri
Dil bilgisi içeren dil bilgisi dosyasının dışındaki konumu.
- rule
- String
Başvurulacak kuralın tanımlayıcısı.
Özel durumlar
rule
boş.
Açıklamalar
Bu oluşturucu, dış dil bilgisi dosyasındaki bir rule
öğeye kural başvurusu oluşturur. Aynı dil bilgisi içindeki bir SrgsRule nesneye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın:
Ayrıca bkz.
Şunlara uygulanır
SrgsRuleRef(SrgsRule, String, String)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
Başvurulacak kuralı, semantik sözlüğün SrgsRuleRef dize diğer adını ve başlatma parametrelerini belirterek sınıfının yeni bir örneğini başlatır.
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)
Parametreler
- rule
- SrgsRule
Başvurulacak nesne.
- semanticKey
- String
Anlamsal anahtar.
- parameters
- String
Bir SrgsRuleRef nesnenin başlatma parametreleri.
Açıklamalar
Bu oluşturucu, içeren dil bilgisi içindeki bir SrgsRule nesneye bir kural başvurusu oluşturur. Dış dil bilgisi dosyasındaki bir rule
öğeye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın:
Ayrıca bkz.
Şunlara uygulanır
SrgsRuleRef(Uri, String, String)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
Dış dil bilgisi dosyasının SrgsRuleRef konumunu, kuralın tanımlayıcısını ve semantik sözlüğün dize diğer adını belirterek sınıfının yeni bir örneğini başlatır.
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)
Parametreler
- uri
- Uri
Dil bilgisi içeren dil bilgisi dosyasının dışındaki konumu.
- rule
- String
Başvurulacak kuralın tanımlayıcısı.
- semanticKey
- String
Anlam sözlüğü için bir diğer ad dizesi.
Özel durumlar
semanticKey
boş.
Açıklamalar
Bu oluşturucu, dış dil bilgisi dosyasındaki bir rule
öğeye kural başvurusu oluşturur. Aynı dil bilgisi içindeki bir SrgsRule nesneye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın:
Ayrıca bkz.
Şunlara uygulanır
SrgsRuleRef(Uri, String, String, String)
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
- Kaynak:
- SrgsRuleRef.cs
Dış dil bilgisi dosyasının SrgsRuleRef konumunu, kuralın tanımlayıcısını, anlam sözlüğünün dize diğer adını ve başlatma parametrelerini belirterek sınıfının yeni bir örneğini başlatır.
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)
Parametreler
- uri
- Uri
Dil bilgisi içeren dil bilgisi dosyasının dışındaki konumu.
- rule
- String
Başvurulacak kuralın tanımlayıcısı.
- semanticKey
- String
Anlamsal anahtar.
- parameters
- String
Bir SrgsRuleRef nesnenin başlatma parametreleri.
Açıklamalar
Bu oluşturucu, dış dil bilgisi dosyasındaki bir rule
öğeye kural başvurusu oluşturur. Aynı dil bilgisi içindeki bir SrgsRule nesneye kural başvurusu oluşturmak için aşağıdaki oluşturuculardan birini kullanın: