SrgsSemanticInterpretationTag Classe

Définition

Représente une balise qui contient ECMAScript exécuté lorsque la règle est mise en correspondance.

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
Héritage
SrgsSemanticInterpretationTag
Attributs

Exemples

L’exemple suivant crée une grammaire pour choisir les villes d’un vol. L’exemple utilise SrgsSemanticInterpretationTag pour affecter une valeur sémantique à chaque ville, qui est le code de l’aéroport de la ville. L’exemple utilise SrgsSemanticInterpretationTag également pour affecter une clé sémantique distincte pour chacune des deux références effectuées par l’objet SrgsRuleRef nommé cityRef à l’objet SrgsRule nommé cities. Les clés sémantiques identifient une ville reconnue comme la ville de départ ou la ville d’arrivée du vol. Le gestionnaire de l’événement SpeechRecognized utilise les clés pour récupérer la sémantique du résultat de la reconnaissance.

Dans l’exemple de code, « out » fait référence à la variable de règle du contenant SrgsRule. L’expression « out. LeavingFrom » fait référence à la propriété nommée LeavingFrom de la variable de règle sur la règle nommée bookFlight.

L’expression « rules.flightCities » fait référence à la variable de règle sur la règle dont Id est flightCities, et qui est la cible d’une référence de règle. Dans l’exemple, l’expression « out . LeavingFrom=rules.flightCities; » affecte la valeur de la règle dont Id est flightCities à la propriété nommée LeavingFrom de la variable de règle sur la règle nommée bookFlight. Pour plus d’informations, consultez Contenu des résultats sémantiques, Référencement de nom de règle de grammaire et Référence des règles de grammaire .

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

Voici la forme XML de la grammaire générée par le code dans l’exemple ci-dessus.

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

Remarques

Le format sémantique par défaut de System.Speech est conforme à la version 1.0 de l’interprétation sémantique du W3C pour la reconnaissance vocale (SISR), où le format des tag éléments qui contiennent un script est semantics/1.0. Vous devez spécifier le script pour SrgsSemanticInterpretationTag les objets utilisant ce format. Dans la syntaxe de semantics/1.0:

  • La variable de règle de l’élément de règle contenant est identifiée par « out ».

  • Le nom de l’objet qui a accès à la variable de règle des éléments de règle en dehors de l’élément de règle contenant est identifié par « rules ».

  • Le résultat de la dernière règle référencée qui correspond à l’énoncé peut être représenté par « rules.latest() ».

Vous pouvez également associer une valeur sémantique à une expression dans une grammaire sans utiliser de script, à l’aide de l’objet SrgsNameValueTag .

Constructeurs

SrgsSemanticInterpretationTag()

Crée une instance de la classe SrgsSemanticInterpretationTag.

SrgsSemanticInterpretationTag(String)

Crée une instance de la classe SrgsSemanticInterpretationTag , en spécifiant le contenu de script de la balise.

Propriétés

Script

Obtient ou définit le ECMAScript pour la balise.

Méthodes

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.

(Hérité de MarshalByRefObject)
Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetLifetimeService()
Obsolète.

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
InitializeLifetimeService()
Obsolète.

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.

(Hérité de MarshalByRefObject)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.

(Hérité de MarshalByRefObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

S’applique à