SrgsSemanticInterpretationTag Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een tag die ECMAScript bevat dat wordt uitgevoerd wanneer de regel overeenkomt.
public ref class SrgsSemanticInterpretationTag : System::Speech::Recognition::SrgsGrammar::SrgsElement
[System.Serializable]
public class SrgsSemanticInterpretationTag : System.Speech.Recognition.SrgsGrammar.SrgsElement
[<System.Serializable>]
type SrgsSemanticInterpretationTag = class
inherit SrgsElement
Public Class SrgsSemanticInterpretationTag
Inherits SrgsElement
- Overname
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt een grammatica gemaakt voor het kiezen van de steden voor een vlucht. In het voorbeeld wordt een SrgsSemanticInterpretationTag semantische waarde toegewezen aan elke stad. Dit is de code voor de luchthaven van de stad. In het voorbeeld wordt SrgsSemanticInterpretationTag ook een afzonderlijke semantische sleutel toegewezen voor elk van de twee verwijzingen die door het SrgsRuleRef object zijn gemaakt met de naam citiescityRef van het SrgsRule object. De semantische sleutels identificeren een herkende stad als de vertrekstad of de aankomststad voor de vlucht. De handler voor de SpeechRecognized gebeurtenis gebruikt de sleutels om de semantiek op te halen uit het herkenningsresultaat.
In het codevoorbeeld verwijst 'out' naar de regelvariabele van de bevat SrgsRule. De expressie 'out'. LeavingFrom' verwijst naar de eigenschap met de naam LeavingFrom van de regelvariabele op de regel met de naam bookFlight.
De expressie 'rules.flightCities' verwijst naar de regelvariabele op de regel waarvan Id de regel het flightCitiesdoel is van een regelverwijzing. In het voorbeeld wordt de expressie 'out' weergegeven. LeavingFrom=rules.flightCities;" wijst de waarde toe van de regel waarvan Id de eigenschap is flightCities met de naam LeavingFrom van de regelvariabele op de regel met de naam bookFlight. Zie Semantic Results Content, Grammar Rule Name Referencing en Grammar Rule Reference Referencing (Naslaginformatie voor grammaticaregels ) voor meer informatie.
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);
}
}
}
Hier volgt de XML-vorm van de grammatica die wordt gegenereerd door de code in het bovenstaande voorbeeld.
<?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>
Opmerkingen
De standaard semantische indeling voor System.Speech voldoet aan de W3C Semantic Interpretation for Speech Recognition (SISR) versie 1.0, waarbij de indeling voor tag elementen die script bevatten, is semantics/1.0. U moet het script voor SrgsSemanticInterpretationTag objecten opgeven met deze indeling. In de syntaxis van semantics/1.0:
- De regelvariabele van het element dat de regel bevat, wordt aangeduid met 'out'.
- De naam van het object dat toegang heeft tot de regelvariabele van regelelementen buiten het betreffende regelelement, wordt geïdentificeerd door 'regels'.
- Het resultaat van de meest recente regel waarnaar wordt verwezen, die overeenkomt met de utterance, kan worden weergegeven door 'rules.latest()'.
U kunt ook een semantische waarde koppelen aan een woordgroep in een grammatica zonder script te gebruiken, met behulp van het SrgsNameValueTag object.
Constructors
| Name | Description |
|---|---|
| SrgsSemanticInterpretationTag() |
Hiermee maakt u een exemplaar van de SrgsSemanticInterpretationTag klasse. |
| SrgsSemanticInterpretationTag(String) |
Hiermee maakt u een exemplaar van de SrgsSemanticInterpretationTag klasse en geeft u de scriptinhoud van de tag op. |
Eigenschappen
| Name | Description |
|---|---|
| Script |
Hiermee haalt u de ECMAScript voor de tag op of stelt u deze in. |
Methoden
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |