Sdílet prostřednictvím


SrgsSemanticInterpretationTag Třída

Definice

Představuje značku, která obsahuje ECMAScript , která se spustí při shodě pravidla.

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
Dědičnost
SrgsSemanticInterpretationTag
Atributy

Příklady

Následující příklad vytvoří gramatiku pro výběr měst pro let. Příklad používá SrgsSemanticInterpretationTag k přiřazení sémantické hodnoty každému městu, což je kód pro letiště města. Příklad také používá SrgsSemanticInterpretationTag k přiřazení samostatného sémantického klíče pro každý ze dvou odkazů provedených objektem SrgsRuleRef s názvem cityRefSrgsRule na objekt s názvem cities. Sémantické klíče identifikují rozpoznané město jako město odletu nebo město příletu pro let. Obslužná rutina SpeechRecognized události používá klíče k načtení sémantiky z výsledku rozpoznávání.

V příkladu kódu "out" odkazuje na proměnnou pravidla obsahující SrgsRule. Výraz "out. LeavingFrom" odkazuje na vlastnost s názvem LeavingFrom proměnné pravidla pro pravidlo s názvem bookFlight.

Výraz "rules.flightCities" odkazuje na proměnnou pravidla pro pravidlo, jehož Id je flightCitiesa které je cílem odkazu na pravidlo. V příkladu je výraz "out. LeavingFrom=rules.flightCities;" přiřadí hodnotu z pravidla, jehož Id vlastnost je flightCities pojmenovaná LeavingFrom proměnná pravidla pro pravidlo s názvem bookFlight. Další informace najdete v tématech Obsah sémantických výsledků, Odkazování na název pravidla gramatiky a Odkazy na pravidla gramatiky .

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

Následuje formát XML gramatiky vygenerované kódem ve výše uvedeném příkladu.

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

Poznámky

Výchozí sémantický formát pro System.Speech odpovídá Sémantické interpretaci jazyka W3C pro rozpoznávání řeči (SISR) verze 1.0, kde formát pro tag prvky, které obsahují skript, je semantics/1.0. Musíte zadat skript pro SrgsSemanticInterpretationTag objekty pomocí tohoto formátu. V syntaxi :semantics/1.0

  • Proměnná pravidla elementu obsahujícího pravidla je identifikována "out".

  • Název objektu, který má přístup k proměnné pravidla elementů pravidla mimo element obsahující pravidlo je identifikován "rules".

  • Výsledek z posledního odkazovaného pravidla, které odpovídá promluvě, může být reprezentován výrazem "rules.latest()".

Sémantickou hodnotu můžete také přidružit k frázi v gramatice bez použití skriptu pomocí objektu SrgsNameValueTag .

Konstruktory

SrgsSemanticInterpretationTag()

Vytvoří instanci objektu SrgsSemanticInterpretationTag třídy.

SrgsSemanticInterpretationTag(String)

Vytvoří instanci SrgsSemanticInterpretationTag třídy určující obsah skriptu značky.

Vlastnosti

Script

Získá nebo nastaví ECMAScript pro značku.

Metody

CreateObjRef(Type)

Vytvoří objekt, který obsahuje všechny relevantní informace potřebné k vygenerování proxy používaného ke komunikaci se vzdáleným objektem.

(Zděděno od MarshalByRefObject)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetLifetimeService()
Zastaralé.

Načte objekt služby aktuální životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
InitializeLifetimeService()
Zastaralé.

Získá objekt služby životnosti, který řídí zásady životnosti pro tuto instanci.

(Zděděno od MarshalByRefObject)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
MemberwiseClone(Boolean)

Vytvoří mělkou kopii aktuálního MarshalByRefObject objektu.

(Zděděno od MarshalByRefObject)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro