SrgsSemanticInterpretationTag Klass

Definition

Representerar en tagg som innehåller ECMAScript som körs när regeln matchas.

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
Arv
SrgsSemanticInterpretationTag
Attribut

Exempel

I följande exempel skapas en grammatik för att välja städer för en flygning. Exemplet används SrgsSemanticInterpretationTag för att tilldela ett semantiskt värde till varje stad, vilket är koden för stadens flygplats. Exemplet använder SrgsSemanticInterpretationTag också för att tilldela en separat semantisk nyckel för var och en av de två referenser som SrgsRuleRef görs av objektet med namnet cityRef till SrgsRule objektet med namnet cities. De semantiska nycklarna identifierar en identifierad stad som avgångsstad eller ankomststad för flygningen. Hanteraren för SpeechRecognized händelsen använder nycklarna för att hämta semantiken från igenkänningsresultatet.

I kodexemplet refererar "out" till regelvariabeln för den som innehåller SrgsRule. Uttrycket "out. LeavingFrom" refererar till egenskapen med namnet LeavingFrom på regelvariabeln för regeln med namnet bookFlight.

Uttrycket "rules.flightCities" refererar till regelvariabeln för regeln vars Id är flightCities, och som är målet för en regelreferens. I exemplet är uttrycket "out. LeavingFrom=rules.flightCities;" tilldelar värdet från regeln vars Id är flightCities till egenskapen med namnet LeavingFrom på regelvariabeln på regeln med namnet bookFlight. Mer information finns i Semantic Results Content, Grammar Rule Name Referencing och Grammar Rule Reference Referencing (Referens till 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);
    }
  }
}

Följande är XML-formen för grammatiken som genereras av koden i exemplet ovan.

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

Kommentarer

Standardsemantikformatet för System.Speech överensstämmer med W3C Semantic Interpretation for Speech Recognition (SISR) version 1.0, där formatet för tag element som innehåller skriptet är semantics/1.0. Du måste ange skriptet för SrgsSemanticInterpretationTag objekt med det här formatet. I syntaxen för semantics/1.0:

  • Regelvariabeln för det innehållande regelelementet identifieras med "out".
  • Namnet på objektet som har åtkomst till regelvariabeln för regelelement utanför det innehållande regelelementet identifieras av "regler".
  • Resultatet från den senaste refererade regeln som matchar yttrandet kan representeras av "rules.latest()".

Du kan också associera ett semantiskt värde med en fras i en grammatik utan att använda skript med hjälp av SrgsNameValueTag objektet.

Konstruktorer

Name Description
SrgsSemanticInterpretationTag()

Skapar en instans av SrgsSemanticInterpretationTag klassen.

SrgsSemanticInterpretationTag(String)

Skapar en instans av SrgsSemanticInterpretationTag klassen och anger skriptinnehållet i taggen.

Egenskaper

Name Description
Script

Hämtar eller anger ECMAScript för taggen.

Metoder

Name Description
CreateObjRef(Type)

Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt.

(Ärvd från MarshalByRefObject)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetLifetimeService()
Föråldrad.

Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
InitializeLifetimeService()
Föråldrad.

Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen.

(Ärvd från MarshalByRefObject)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
MemberwiseClone(Boolean)

Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet.

(Ärvd från MarshalByRefObject)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Gäller för