Compartir vía


SrgsSemanticInterpretationTag Clase

Definición

Representa una etiqueta que contiene ECMAScript que se ejecuta cuando la regla coincide.

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
Herencia
SrgsSemanticInterpretationTag
Atributos

Ejemplos

En el ejemplo siguiente se crea una gramática para elegir las ciudades de un vuelo. En el ejemplo se usa SrgsSemanticInterpretationTag para asignar un valor semántico a cada ciudad, que es el código del aeropuerto de la ciudad. En el ejemplo también se usa SrgsSemanticInterpretationTag para asignar una clave semántica independiente para cada una de las dos referencias realizadas por el SrgsRuleRefSrgsRule objeto denominado cityRef al objeto denominado cities. Las claves semánticas identifican una ciudad reconocida como la ciudad de salida o la ciudad de llegada para el vuelo. El controlador del SpeechRecognized evento usa las claves para recuperar la semántica del resultado del reconocimiento.

En el ejemplo de código, "out" hace referencia a la variable rule del contenedor .SrgsRule Expresión "out". LeavingFrom" hace referencia a la propiedad denominada LeavingFrom de la variable de regla en la regla denominada bookFlight.

La expresión "rules.flightCities" hace referencia a la variable de regla en la regla cuya Id es flightCities, y que es el destino de una referencia de regla. En el ejemplo, la expresión "out". LeavingFrom=rules.flightCities;" asigna el valor de la regla cuyo Id es a la propiedad denominada LeavingFrom de la variable de regla en la regla denominada bookFlightflightCities . Consulte Contenido de resultados semánticos, Referencia de nombre de regla gramatical y Referencia de regla gramatical para obtener más información.

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

A continuación se muestra la forma XML de la gramática generada por el código en el ejemplo anterior.

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

Comentarios

El formato semántico predeterminado para System.Speech se ajusta a la interpretación semántica de W3C para la versión 1.0 del reconocimiento de voz (SISR), donde el formato de tag los elementos que contienen script es semantics/1.0. Debe especificar el script para SrgsSemanticInterpretationTag los objetos que usan este formato. En la sintaxis de semantics/1.0:

  • La variable rule del elemento de regla contenedor se identifica mediante "out".

  • El nombre del objeto que tiene acceso a la variable de regla de los elementos de regla fuera del elemento de regla contenedor se identifica mediante "rules".

  • El resultado de la regla a la que se hace referencia más reciente que coincide con la expresión se puede representar mediante "rules.latest()".

También puede asociar un valor semántico a una frase en una gramática sin usar script, mediante el SrgsNameValueTag objeto .

Constructores

SrgsSemanticInterpretationTag()

Crea una instancia de la clase SrgsSemanticInterpretationTag.

SrgsSemanticInterpretationTag(String)

Crea una instancia de la clase SrgsSemanticInterpretationTag, especificando el contenido del script de la etiqueta.

Propiedades

Script

Obtiene o establece ECMAScript para la etiqueta.

Métodos

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a