Share via


SrgsSemanticInterpretationTag Sınıf

Tanım

Kural eşleştirildiğinde çalıştırılan ECMAScript içeren bir etiketi temsil eder.

public ref class SrgsSemanticInterpretationTag : System::Speech::Recognition::SrgsGrammar::SrgsElement
[System.Serializable]
public class SrgsSemanticInterpretationTag : System.Speech.Recognition.SrgsGrammar.SrgsElement
public class SrgsSemanticInterpretationTag : System.Speech.Recognition.SrgsGrammar.SrgsElement
[<System.Serializable>]
type SrgsSemanticInterpretationTag = class
    inherit SrgsElement
type SrgsSemanticInterpretationTag = class
    inherit SrgsElement
Public Class SrgsSemanticInterpretationTag
Inherits SrgsElement
Devralma
SrgsSemanticInterpretationTag
Öznitelikler

Örnekler

Aşağıdaki örnek, uçuş için şehirleri seçmek için bir dil bilgisi oluşturur. Örnek, her şehre bir semantik değer atamak için kullanır SrgsSemanticInterpretationTag ve bu da şehrin havaalanının kodudur. Örnek, adlı nesne tarafından SrgsRuleRef yapılan iki başvurunun her biri için adlı citiescityRef nesneye ayrı bir semantik anahtar atamak için SrgsRule de kullanırSrgsSemanticInterpretationTag. Anlam anahtarları, tanınan bir şehri kalkış şehri veya uçuşun varış şehri olarak tanımlar. Olay işleyicisi SpeechRecognized , tanıma sonucundan semantiği almak için anahtarları kullanır.

Kod örneğinde , "out" içeren öğesinin Kural Değişkenine başvurur SrgsRule. "out. LeavingFrom", adlı kuraldaki Kural Değişkeninin adlı LeavingFrombookFlightözelliğine başvurur.

"rules.flightCities" ifadesi, kural üzerinde kural başvurusunun hedefi olan ve olan IdflightCitiesKural Değişkenine başvurur. Örnekte "out. LeavingFrom=rules.flightCities;", kuraldaki değerini adlı kuraldaki IdflightCities Kural Değişkeninin adlı LeavingFrom özelliğine bookFlightatar. Daha fazla bilgi için bkz. AnlamSal Sonuçlar İçeriği, Dil Bilgisi Kuralı Adına Başvuru ve Dil Bilgisi Kuralı Başvurusu Başvuruyor .

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şağıda, yukarıdaki örnekte yer alan kod tarafından oluşturulan dil bilgisinin XML biçimi verilmiştir.

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

Açıklamalar

System.Speech için varsayılan anlam biçimi, W3C Semantic Interpretation for Speech Recognition (SISR) Version 1.0 ile uyumludur; burada betik içeren öğelerin biçimi tag olur semantics/1.0. Bu biçimi kullanarak nesneler için SrgsSemanticInterpretationTag betiği belirtmeniz gerekir. söz diziminde semantics/1.0:

  • İçeren kural öğesinin Kural Değişkeni "out" ile tanımlanır.

  • İçeren kural öğesinin dışındaki kural öğelerinin Kural Değişkenine erişimi olan nesnenin adı "kurallar" ile tanımlanır.

  • Konuşmayla eşleşen en son başvuruda bulunılan kuralın sonucu "rules.latest()" ile temsil edilebilir.

Ayrıca, bir semantik değeri, nesnesini kullanarak SrgsNameValueTag betik kullanmadan dil bilgisi içindeki bir tümcecikle ilişkilendirebilirsiniz.

Oluşturucular

SrgsSemanticInterpretationTag()

SrgsSemanticInterpretationTag sınıfının bir örneğini oluşturur.

SrgsSemanticInterpretationTag(String)

etiketinin SrgsSemanticInterpretationTag betik içeriğini belirterek sınıfının bir örneğini oluşturur.

Özellikler

Script

Etiketin ECMAScript'ini alır veya ayarlar.

Yöntemler

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır