Udostępnij za pośrednictwem


SrgsSemanticInterpretationTag Klasa

Definicja

Reprezentuje tag zawierający kod ECMAScript uruchamiany po dopasowaniu reguły.

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
Dziedziczenie
SrgsSemanticInterpretationTag
Atrybuty

Przykłady

Poniższy przykład tworzy gramatykę do wybierania miast na lot. W przykładzie użyto SrgsSemanticInterpretationTag metody , aby przypisać wartość semantyczną do każdego miasta, czyli kod lotniska w mieście. W przykładzie użyto SrgsSemanticInterpretationTag również do przypisania oddzielnego klucza semantycznego dla każdego z dwóch odwołań wykonanych przez SrgsRuleRef obiekt o nazwie do SrgsRule obiektu o nazwie cityRefcities. Klucze semantyczne identyfikują rozpoznane miasto jako miasto odlotu lub miasto przylotu dla lotu. Procedura obsługi zdarzenia SpeechRecognized używa kluczy do pobrania semantyki z wyniku rozpoznawania.

W przykładzie kodu wartość "out" odnosi się do zmiennej reguły zawierającej SrgsRuleelement . Wyrażenie "out. LeavingFrom" odwołuje się do właściwości o nazwie LeavingFrom zmiennej reguły w regule o nazwie bookFlight.

Wyrażenie "rules.flightCities" odwołuje się do zmiennej reguły w regule, której Id wartość to flightCities, i która jest elementem docelowym odwołania do reguły. W tym przykładzie wyrażenie "out. LeavingFrom=rules.flightCities;" przypisuje wartość z reguły, której Id właściwość ma flightCities nazwę zmiennej reguły w regule o nazwie LeavingFrombookFlight. Aby uzyskać więcej informacji, zobacz Semantic Results Content (Zawartość wyników semantycznych, odwołania do nazwy reguły gramatyki) i Grammar Rule Reference (Dokumentacja reguł gramatycznych).

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

Poniżej przedstawiono formę XML gramatyki wygenerowanej przez kod w powyższym przykładzie.

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

Uwagi

Domyślny format semantyczny dla elementu System.Speech jest zgodny z semantyczną interpretacją W3C rozpoznawania mowy (SISR) w wersji 1.0, gdzie format tag elementów zawierających skrypt to semantics/1.0. Należy określić skrypt dla SrgsSemanticInterpretationTag obiektów w tym formacie. W składni elementu semantics/1.0:

  • Zmienna reguły elementu zawierającej regułę jest identyfikowana przez element "out".

  • Nazwa obiektu, który ma dostęp do zmiennej reguły elementów reguły poza zawierającym element reguły, jest identyfikowany przez "reguły".

  • Wynik najnowszej reguły, do którego odwołuje się odwołanie, może być reprezentowany przez regułę "rules.latest()".

Można również skojarzyć wartość semantyczną z frazą w gramatyce bez użycia skryptu SrgsNameValueTag przy użyciu obiektu .

Konstruktory

SrgsSemanticInterpretationTag()

Tworzy wystąpienie klasy SrgsSemanticInterpretationTag.

SrgsSemanticInterpretationTag(String)

Tworzy wystąpienie SrgsSemanticInterpretationTag klasy, określając zawartość skryptu tagu.

Właściwości

Script

Pobiera lub ustawia kod ECMAScript dla tagu.

Metody

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Dotyczy