Freigeben über


SrgsRuleRef Konstruktoren

Definition

Initialisiert eine neue Instanz der SrgsRuleRef-Klasse.

Überlädt

Name Beschreibung
SrgsRuleRef(SrgsRule)

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

SrgsRuleRef(Uri)

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

SrgsRuleRef(SrgsRule, String)

Initialisiert eine neue Instanz der Klasse, wobei die regel angegeben wird, auf die SrgsRuleRef verwiesen werden soll, und eine Zeichenfolge, die einen semantischen Schlüssel enthält.

SrgsRuleRef(Uri, String)

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die den Speicherort der externen Grammatikdatei und den Bezeichner der regel angibt, auf die verwiesen werden soll.

SrgsRuleRef(SrgsRule, String, String)

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die die zu referenzende Regel, den Zeichenfolgenalias des Semantikwörterbuchs und Initialisierungsparameter angibt.

SrgsRuleRef(Uri, String, String)

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die den Speicherort der externen Grammatikdatei, den Bezeichner der Regel und den Zeichenfolgenalias des Semantikwörterbuchs angibt.

SrgsRuleRef(Uri, String, String, String)

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die den Speicherort der externen Grammatikdatei, den Bezeichner der Regel, den Zeichenfolgenalias des Semantikwörterbuchs und Initialisierungsparameter angibt.

SrgsRuleRef(SrgsRule)

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

Initialisiert eine neue Instanz der SrgsRuleRef Klasse und gibt die regel an, 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 vom 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 Wm gewonnen hat" an die Regel an. Mit SrgsOneOf Objekten erstellt das Beispiel dann eine Liste der europäischen Länder/Regionen und eine Liste der südamerikanischen Länder/Regionen und fügt jede Liste zu ihrer jeweiligen Regel hinzu. ruleEuroperuleSAmerica Anschließend werden Regelverweise erstellt ruleEurope und ruleSAmerica der WorldCupWinner Regel hinzugefügt.

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 das folgende Formular 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:

Gilt für:

SrgsRuleRef(Uri)

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

Initialisiert eine neue Instanz der SrgsRuleRef Klasse und gibt den Speicherort der externen Grammatikdatei an, auf die verwiesen 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 enthaltenden 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 verwendet eine Zeichenfolge, GrammarUrlForRoutedie eine Route angibt, und fügt sie an eine Zeichenfolge an, die die Position einer Grammatik angibt. Dadurch wird eine bestimmte Regel in dieser Grammatik angegeben. Die Methode gibt eine Uri für diese Regel zurück.

Mit der zweiten Methode wird ein SrgsDocument Element erstellt, das mit einem Regelverweis benannt grammar wird, CreateGrammarForRouteder durch den Uri übergebenen GrammarUrlForRouteRegelverweis angegeben wird. Beachten Sie, dass die Variable mit dem Namen _route ein Mitglied 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 nicht deklariert und im vorherigen Beispiel nicht definiert. Es sollte als eine 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:

Von Bedeutung

Die Verwendung einer Instanz dieses Typs mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Verwenden Sie dieses Objekt nur mit vertrauenswürdigen Daten. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Gilt für:

SrgsRuleRef(SrgsRule, String)

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

Initialisiert eine neue Instanz der Klasse, wobei die regel angegeben wird, auf die SrgsRuleRef verwiesen werden soll, und eine Zeichenfolge, 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 zum Auswählen der Städte für ein Flug erstellt. Im Beispiel werden zwei SrgsRuleRef Instanzen erstellt, von denen jeder einen semantischen Schlüssel angibt. Beide Regelverweise zielen auf dasselbe SrgsRule Objekt mit dem Namen ab cities, markieren aber das Erkennungsergebnis aus dem Regelverweis mit einem anderen semantischen Schlüssel. Der semantische Schlüssel identifiziert eine anerkannte Stadt als Abflug- oder Ankunftsstadt für den Flug. Der Handler für das SpeechRecognized Ereignis verwendet die Schlüssel, um die mit SrgsNameValueTag dem Erkennungsergebnis erstellten Semantikwerte abzurufen.

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:

Gilt für:

SrgsRuleRef(Uri, String)

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

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die den Speicherort der externen Grammatikdatei und den Bezeichner der regel angibt, auf die verwiesen werden soll.

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 enthaltenden Grammatik.

rule
String

Der Bezeichner der regel, auf die verwiesen werden soll.

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:

Von Bedeutung

Die Verwendung einer Instanz dieses Typs mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Verwenden Sie dieses Objekt nur mit vertrauenswürdigen Daten. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Gilt für:

SrgsRuleRef(SrgsRule, String, String)

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

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die die zu referenzende Regel, den Zeichenfolgenalias des Semantikwörterbuchs und Initialisierungsparameter angibt.

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:

Gilt für:

SrgsRuleRef(Uri, String, String)

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

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die den Speicherort der externen Grammatikdatei, den Bezeichner der Regel und den Zeichenfolgenalias des Semantikwörterbuchs angibt.

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 enthaltenden Grammatik.

rule
String

Der Bezeichner der regel, auf die verwiesen werden soll.

semanticKey
String

Eine Aliaszeichenfolge für das Semantikwö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:

Von Bedeutung

Die Verwendung einer Instanz dieses Typs mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Verwenden Sie dieses Objekt nur mit vertrauenswürdigen Daten. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Gilt für:

SrgsRuleRef(Uri, String, String, String)

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

Initialisiert eine neue Instanz der SrgsRuleRef Klasse, die den Speicherort der externen Grammatikdatei, den Bezeichner der Regel, den Zeichenfolgenalias des Semantikwörterbuchs und Initialisierungsparameter angibt.

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 enthaltenden Grammatik.

rule
String

Der Bezeichner der regel, auf die 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 rule Element in einer externen Grammatikdatei. Verwenden Sie einen der folgenden Konstruktoren, um einen Regelverweis auf ein SrgsRule Objekt innerhalb derselben Grammatik zu erstellen:

Von Bedeutung

Die Verwendung einer Instanz dieses Typs mit nicht vertrauenswürdigen Daten ist ein Sicherheitsrisiko. Verwenden Sie dieses Objekt nur mit vertrauenswürdigen Daten. Weitere Informationen finden Sie unter Überprüfen aller Eingaben.

Gilt für: