Sdílet prostřednictvím


SrgsRuleRef Konstruktory

Definice

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 ruleEuroperuleSAmerica. 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 , GrammarUrlForRoutevezme ř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, CreateGrammarForRoutevytvoří 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

uri je null.

rule je null.

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

uri je null.

semanticKey je null.

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

Viz také

Platí pro