Freigeben über


SrgsSemanticInterpretationTag Klasse

Definition

Stellt ein Tag dar, das ECMAScript enthält, das ausgeführt wird, wenn die Regel abgeglichen wird.

public ref class SrgsSemanticInterpretationTag : System::Speech::Recognition::SrgsGrammar::SrgsElement
public class SrgsSemanticInterpretationTag : System.Speech.Recognition.SrgsGrammar.SrgsElement
[System.Serializable]
public class SrgsSemanticInterpretationTag : System.Speech.Recognition.SrgsGrammar.SrgsElement
type SrgsSemanticInterpretationTag = class
    inherit SrgsElement
[<System.Serializable>]
type SrgsSemanticInterpretationTag = class
    inherit SrgsElement
Public Class SrgsSemanticInterpretationTag
Inherits SrgsElement
Vererbung
SrgsSemanticInterpretationTag
Attribute

Beispiele

Im folgenden Beispiel wird eine Grammatik zum Auswählen der Städte für einen Flug erstellt. Im Beispiel wird verwendet SrgsSemanticInterpretationTag , um jeder Stadt einen semantischen Wert zuzuweisen, der der Code für den Flughafen der Stadt ist. Im Beispiel wird auch verwendetSrgsSemanticInterpretationTag, um einen separaten semantischen Schlüssel für jeden der beiden Verweise zuzuweisen, die SrgsRuleRef vom -Objekt mit dem Namen dem -Objekt mit dem SrgsRule Namen cityRefcitieserstellt werden. Die semantischen Schlüssel identifizieren eine erkannte Stadt als Abflugort oder Ankunftsort für den Flug. Der Handler für das SpeechRecognized Ereignis verwendet die Schlüssel, um die Semantik aus dem Erkennungsergebnis abzurufen.

Im Codebeispiel bezieht sich "out" auf die Regelvariable des enthält SrgsRule. Der Ausdruck "out. LeavingFrom" bezieht sich auf die Eigenschaft namens LeavingFrom der Regelvariablen für die Regel mit dem Namen bookFlight.

Der Ausdruck "rules.flightCities" bezieht sich auf die Regelvariable für die Regel, deren Id ist flightCities, und die das Ziel eines Regelverweis ist. Im Beispiel wird der Ausdruck "out. LeavingFrom=rules.flightCities;" weist den Wert aus der Regel zu, deren Id Eigenschaft LeavingFrom der Regelvariablen für die Regel namens bookFlightistflightCities. Weitere Informationen finden Sie unter Inhalt semantischer Ergebnisse, Referenzieren von Grammatikregelnamen und Referenz zur Grammatikregel .

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")))
      {

        // Create a rule for the cities, assign a semantic value to each city.
        SrgsRule cities = new SrgsRule("flightCities");
        SrgsItem chi = new SrgsItem("Chicago");
        chi.Add(new SrgsSemanticInterpretationTag("out = \"ORD\";"));
        SrgsItem bos = new SrgsItem("Boston");
        bos.Add(new SrgsSemanticInterpretationTag("out = \"BOS\";"));
        SrgsItem mia = new SrgsItem("Miami");
        mia.Add(new SrgsSemanticInterpretationTag("out = \"MIA\";"));
        SrgsItem dal = new SrgsItem("Dallas");
        dal.Add(new SrgsSemanticInterpretationTag("out = \"DFW\";"));

        SrgsOneOf airports = new SrgsOneOf(chi, bos, mia, dal);
        cities.Add(airports);
        cities.Scope = SrgsRuleScope.Private;

        // Create a rule reference to the rule for cities.
        SrgsRuleRef cityRef = new SrgsRuleRef(cities);

        // Create the root rule for the grammar.
        SrgsRule bookFlight = new SrgsRule("flightBooker");
        bookFlight.Add(new SrgsItem("I want to fly from"));
        bookFlight.Add(cityRef);
        bookFlight.Add(new SrgsSemanticInterpretationTag("out.LeavingFrom=rules.flightCities;"));
        bookFlight.Add(new SrgsItem("to"));
        bookFlight.Add(cityRef);
        bookFlight.Add(new SrgsSemanticInterpretationTag("out.GoingTo=rules.flightCities;"));
        bookFlight.Scope = SrgsRuleScope.Public;

        // Initialize the SrgsDocument, set the root rule, add rules to the collection.
        SrgsDocument itinerary = new SrgsDocument(bookFlight);
        itinerary.Rules.Add(cities);

        // Create a Grammar object and load it to the recognizer.
        Grammar g = new Grammar(itinerary);
        g.Name = ("City Chooser");
        recognizer.LoadGrammarAsync(g);

        // Configure recognizer input.
        recognizer.SetInputToDefaultAudioDevice();

        // Attach a handler for the SpeechRecognized event.
        recognizer.SpeechRecognized +=
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);

        // Start recognition.
        recognizer.RecognizeAsync();
        Console.WriteLine("Starting asynchronous recognition...");

        // Keep the console window open.
        Console.ReadLine();
      }
    }

    // Write to the console the text and the semantics from the recognition result.
    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["LeavingFrom"].Value);
      Console.WriteLine("  The arrival city is: " + e.Result.Semantics["GoingTo"].Value);
    }
  }
}

Im Folgenden finden Sie die XML-Form der Grammatik, die vom Code im obigen Beispiel generiert wird.

<?xml version="1.0" encoding="utf-8"?>
<grammar xml:lang="en-US" root="flightBooker" tag-format="semantics/1.0"
version="1.0" xmlns="http://www.w3.org/2001/06/grammar">

  <rule id="flightBooker" scope="public">
    <item> I want to fly from </item>
    <ruleref uri="#flightCities" />
    <tag> out.LeavingFrom=rules.flightCities; </tag>
    <item> to </item>
    <ruleref uri="#flightCities" />
    <tag> out.GoingTo=rules.flightCities; </tag>
  </rule>

  <rule id="flightCities" scope="private">
    <one-of>
      <item> Chicago <tag> out="ORD"; </tag></item>
      <item> Boston <tag> out="BOS"; </tag></item>
      <item> Miami <tag> out="MIA"; </tag></item>
      <item> Dallas <tag> out="DFW"; </tag></item>
    </one-of>
  </rule>

</grammar>

Hinweise

Das standardmäßige semantische Format für System.Speech entspricht der Version 1.0 (W3C Semantic Interpretation for Speech Recognition, SISR), wobei das Format für tag Elemente, die Skript enthalten, ist semantics/1.0. Sie müssen das Skript für SrgsSemanticInterpretationTag Objekte mit diesem Format angeben. In der Syntax von semantics/1.0:

  • Die Regelvariable des enthaltenden Regelelements wird durch "out" identifiziert.

  • Der Name des Objekts, das Zugriff auf die Regelvariable von Regelelementen außerhalb des enthaltenden Regelelements hat, wird durch "rules" identifiziert.

  • Das Ergebnis der zuletzt referenzierten Regel, die mit der Äußerung übereinstimmt, kann durch "rules.latest()" dargestellt werden.

Sie können auch einen semantischen Wert mit einem Ausdruck in einer Grammatik zuordnen, ohne ein Skript zu verwenden, indem Sie das SrgsNameValueTag -Objekt verwenden.

Konstruktoren

SrgsSemanticInterpretationTag()

Erstellt eine Instanz der SrgsSemanticInterpretationTag-Klasse.

SrgsSemanticInterpretationTag(String)

Erstellt eine Instanz der SrgsSemanticInterpretationTag-Klasse, die den Skriptinhalt des Tags angibt.

Eigenschaften

Script

Ruft die ECMAScript für den Tag ab oder legt diese fest.

Methoden

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für: