Share via


SrgsRuleRef Konstruktoren

Definition

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse.

Überlädt

SrgsRuleRef(SrgsRule)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse und gibt die Regel, auf die verwiesen werden soll.

SrgsRuleRef(Uri)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse und gibt den Speicherort der externen Grammatikdatei an, die referenziert werden soll.

SrgsRuleRef(SrgsRule, String)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt die zu referenzierende Regel und eine Zeichenfolge an, die einen semantischen Schlüssel enthält.

SrgsRuleRef(Uri, String)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt den Speicherort der externen Grammatikdatei und den Bezeichner der zu referenzierenden Regel an.

SrgsRuleRef(SrgsRule, String, String)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt die zu referenzierende Regel, den Zeichenfolgenalias des semantischen Wörterbuchs und die Initialisierungsparameter an.

SrgsRuleRef(Uri, String, String)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt den Speicherort der externen Grammatikdatei, den Bezeichner der Regel und den Zeichenfolgenalias des semantischen Wörterbuchs an.

SrgsRuleRef(Uri, String, String, String)

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt den Speicherort der externen Grammatikdatei, den Bezeichner der Regel, den Zeichenfolgenalias des semantischen Wörterbuchs sowie Initialisierungsparameter an.

SrgsRuleRef(SrgsRule)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse und gibt die Regel, auf die verwiesen werden soll.

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)

Parameter

rule
SrgsRule

Das Objekt, auf das verwiesen werden soll.

Ausnahmen

rule ist null.

Beispiele

Im folgenden Beispiel wird eine Grammatik erstellt, die den Ausdruck "Eine Nation, die die Weltmeisterschaft gewonnen hat" erkennt, gefolgt von dem Namen eines Landes, das die Weltmeisterschaft gewonnen hat. Nach dem Erstellen des SrgsRule Objekts winnerRule und dem Zeichenfolgenbezeichner WorldCupWinnerfügt das Beispiel die Zeichenfolge "Eine Nation, die die Weltmeisterschaft gewonnen hat" an die Regel an. Mithilfe von SrgsOneOf -Objekten erstellt das Beispiel dann eine Liste europäischer Länder/Regionen und eine Liste südamerikanischer Länder/Regionen und fügt jede Liste ihrer jeweiligen Regel oder ruleEuroperuleSAmericahinzu. Das Beispiel erstellt dann Regelverweise für ruleEurope und ruleSAmerica fügt sie der WorldCupWinner Regel hinzu.

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;
}

Die erstellte Grammatik weist die folgende Form auf.

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

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf ein SrgsRule Objekt innerhalb der enthaltenden Grammatik. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein rule Element in einer externen Grammatikdatei zu erstellen:

Weitere Informationen

Gilt für:

SrgsRuleRef(Uri)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse und gibt den Speicherort der externen Grammatikdatei an, die referenziert werden soll.

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)

Parameter

uri
Uri

Der Speicherort einer Grammatikdatei außerhalb der enthaltenen Grammatik.

Ausnahmen

uri ist null.

Beispiele

Im folgenden Beispiel wird eine Grammatik für eine Anwendung erstellt, die Informationen zum Bus-Shuttle-Dienst zurückgibt. Die erste Methode , nimmt eine Zeichenfolge an GrammarUrlForRoute, die eine Route angibt, und fügt sie an eine Zeichenfolge an, die den Speicherort einer Grammatik angibt. Dies gibt eine bestimmte Regel in dieser Grammatik an. Die -Methode gibt eine Uri für diese Regel zurück.

Die zweite Methode, , erstellt ein SrgsDocument Element namens grammar mit einem Regelverweis, CreateGrammarForRouteder durch die Uri von übergeben wirdGrammarUrlForRoute. Beachten Sie, dass die Variable mit dem Namen _route ein Member einer eingeschlossenen Klasse ist.

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;
}

Hinweis

Die Variable mit dem Namen _route ist im vorherigen Beispiel nicht deklariert und nicht definiert. Es sollte als a String deklariert werden und die Routennummer für eine bestimmte Busroute enthalten, bevor das vorherige Beispiel kompiliert und ausgeführt wird.

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf eine externe Grammatikdatei. Der URI kann auch den Bezeichner einer Regel enthalten, auf die verwiesen werden soll, z. B http://www.contoso.com/ExternalGrammar.grxml#targetRule. . Wenn der uri Parameter keinen Regelbezeichner angibt, verweist der Regelverweis auf die Stammregel der Zielgrammatik. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein SrgsRule Objekt innerhalb derselben Grammatik zu erstellen:

Weitere Informationen

Gilt für:

SrgsRuleRef(SrgsRule, String)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt die zu referenzierende Regel und eine Zeichenfolge an, die einen semantischen Schlüssel enthält.

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)

Parameter

rule
SrgsRule

Das Objekt, auf das verwiesen werden soll.

semanticKey
String

Der semantische Schlüssel.

Beispiele

Im folgenden Beispiel wird eine Grammatik für die Auswahl der Städte für einen Flug erstellt. Im Beispiel werden zwei SrgsRuleRef Instanzen erstellt, von denen jede einen semantischen Schlüssel angibt. Beide Regelverweise zielen auf dasselbe SrgsRule Objekt mit dem Namen citiesab, kennzeichnen das Erkennungsergebnis aus dem Regelverweis jedoch mit einem anderen semantischen Schlüssel. Der semantische Schlüssel identifiziert eine anerkannte Stadt als Abflug- oder Ankunftsort für den Flug. Der Handler für das SpeechRecognized Ereignis verwendet die Schlüssel, um die semantischen Werte abzurufen, die mithilfe SrgsNameValueTag des Erkennungsergebnisses erstellt wurden.

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);
    }
  }
}

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf ein SrgsRule Objekt innerhalb der enthaltenden Grammatik. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein rule Element in einer externen Grammatikdatei zu erstellen:

Weitere Informationen

Gilt für:

SrgsRuleRef(Uri, String)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt den Speicherort der externen Grammatikdatei und den Bezeichner der zu referenzierenden Regel an.

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)

Parameter

uri
Uri

Der Speicherort einer Grammatikdatei außerhalb der enthaltenen Grammatik.

rule
String

Der Bezeichner der Regel, auf die zu verweisen ist.

Ausnahmen

uri ist null.

rule ist null.

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf ein rule Element in einer externen Grammatikdatei. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein SrgsRule Objekt innerhalb derselben Grammatik zu erstellen:

Weitere Informationen

Gilt für:

SrgsRuleRef(SrgsRule, String, String)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt die zu referenzierende Regel, den Zeichenfolgenalias des semantischen Wörterbuchs und die Initialisierungsparameter an.

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)

Parameter

rule
SrgsRule

Das Objekt, auf das verwiesen werden soll.

semanticKey
String

Der semantische Schlüssel.

parameters
String

Die Initialisierungsparameter für ein SrgsRuleRef-Objekt.

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf ein SrgsRule Objekt innerhalb der enthaltenden Grammatik. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein rule Element in einer externen Grammatikdatei zu erstellen:

Weitere Informationen

Gilt für:

SrgsRuleRef(Uri, String, String)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt den Speicherort der externen Grammatikdatei, den Bezeichner der Regel und den Zeichenfolgenalias des semantischen Wörterbuchs an.

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)

Parameter

uri
Uri

Der Speicherort einer Grammatikdatei außerhalb der enthaltenen Grammatik.

rule
String

Der Bezeichner der Regel, auf die zu verweisen ist.

semanticKey
String

Eine Aliaszeichenfolge für das semantische Wörterbuch.

Ausnahmen

uri ist null.

semanticKey ist null.

semanticKey ist leer.

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf ein rule Element in einer externen Grammatikdatei. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein SrgsRule Objekt innerhalb derselben Grammatik zu erstellen:

Weitere Informationen

Gilt für:

SrgsRuleRef(Uri, String, String, String)

Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs
Quelle:
SrgsRuleRef.cs

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse, gibt den Speicherort der externen Grammatikdatei, den Bezeichner der Regel, den Zeichenfolgenalias des semantischen Wörterbuchs sowie Initialisierungsparameter an.

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)

Parameter

uri
Uri

Der Speicherort einer Grammatikdatei außerhalb der enthaltenen Grammatik.

rule
String

Der Bezeichner der Regel, auf die zu verweisen ist.

semanticKey
String

Der semantische Schlüssel.

parameters
String

Die Initialisierungsparameter für ein SrgsRuleRef-Objekt.

Hinweise

Dieser Konstruktor erstellt einen Regelverweis auf ein rule Element in einer externen Grammatikdatei. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein SrgsRule Objekt innerhalb derselben Grammatik zu erstellen:

Weitere Informationen

Gilt für: