Aracılığıyla paylaş


SrgsRuleRef Oluşturucular

Tanım

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ı WorldCupWinnerverdikten 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 , GrammarUrlForRoutebir 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 GrammarUrlForRoutetarafı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ı citiesaynı 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

uri, null değeridir.

rule, null değeridir.

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

uri, null değeridir.

semanticKey, null değeridir.

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:

Ayrıca bkz.

Şunlara uygulanır