SrgsSemanticInterpretationTag Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un tag contenente ECMAScript eseguito quando la regola è corrispondente.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente viene creata una grammatica per la scelta delle città per un volo. L'esempio usa SrgsSemanticInterpretationTag per assegnare un valore semantico a ogni città, ovvero il codice per l'aeroporto della città. L'esempio usa SrgsSemanticInterpretationTag anche per assegnare una chiave semantica separata per ognuna delle due riferimenti effettuate dall'oggetto denominato all'oggetto SrgsRuleRefSrgsRule denominato cityRef
cities
. Le chiavi semantiche identificano una città riconosciuta come città di partenza o città di arrivo per il volo. Il gestore dell'evento SpeechRecognized usa le chiavi per recuperare la semantica dal risultato del riconoscimento.
Nell'esempio di codice "out" si riferisce alla variabile regola dell'oggetto contenente SrgsRule. Espressione "out". LeavingFrom" fa riferimento alla proprietà denominata LeavingFrom
della variabile regola nella regola denominata bookFlight
.
L'espressione "rules.flightCities" fa riferimento alla variabile regola sulla regola la cui Id è e che è flightCities
la destinazione di un riferimento a una regola. Nell'esempio l'espressione "out". LeavingFrom=rules.flightCities;" assegna il valore della regola la cui Id proprietà è flightCities
denominata della variabile regola nella regola denominata LeavingFrom
bookFlight
. Per altre informazioni, vedere Contenuto dei risultati semantici, Riferimento al nome della regola di grammatica e riferimento alle regole di grammatica.
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);
}
}
}
Di seguito è riportato il formato XML della grammatica generata dal codice nell'esempio precedente.
<?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>
Commenti
Il formato semantico predefinito per System.Speech è conforme all'interpretazione semantica W3C per riconoscimento vocale (SISR) versione 1.0, in cui il formato per tag
gli elementi che contengono script è semantics/1.0
. È necessario specificare lo script per SrgsSemanticInterpretationTag gli oggetti usando questo formato. Nella sintassi di semantics/1.0
:
La variabile Regola dell'elemento della regola contenente è identificata da "out".
Il nome dell'oggetto che ha accesso all'elemento Rule Variable of rule all'esterno dell'elemento della regola contenente viene identificato da "rules".
Il risultato della regola a cui si fa riferimento più recente che corrisponde all'espressione può essere rappresentata da "rules.latest()".
È anche possibile associare un valore semantico a una frase in una grammatica senza usare script, usando l'oggetto SrgsNameValueTag .
Costruttori
SrgsSemanticInterpretationTag() |
Crea un'istanza della classe SrgsSemanticInterpretationTag. |
SrgsSemanticInterpretationTag(String) |
Crea un'istanza della classe SrgsSemanticInterpretationTag , specificando il contenuto dello script del tag. |
Proprietà
Script |
Ottiene o imposta ECMAScript per il tag. |
Metodi
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetLifetimeService() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InitializeLifetimeService() |
Obsoleti.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |