SrgsSemanticInterpretationTag Класс

Определение

Представляет тег, содержащий ECMAScript , который выполняется при сопоставлении правила.

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
Наследование
SrgsSemanticInterpretationTag
Атрибуты

Примеры

В следующем примере создается грамматика для выбора городов для рейса. В примере используется SrgsSemanticInterpretationTag для назначения семантического значения каждому городу, которое является кодом для аэропорта в городе. В примере также используется SrgsSemanticInterpretationTag для назначения отдельного семантического ключа для каждой из двух ссылок, сделанных объектом, с SrgsRuleRef именем cityRef в SrgsRule объект с именем cities . Семантические ключи определяют распознаваемый город как город отъезда или город прибытия для рейса. Обработчик SpeechRecognized события использует ключи для получения семантики из результата распознавания.

В примере кода «out» относится к переменной правила содержащего SrgsRule . Выражение «out. Леавингфром "ссылается на свойство с именем LeavingFrom переменной правила в правиле с именем bookFlight .

Выражение "Rules. ФлигхтЦитиес" относится к переменной правила в правиле, где Id имеет значение flightCities , а это цель ссылки на правило. В примере выражение «out. Леавингфром = Rules. ФлигхтЦитиес; "назначает значение из правила, которое Id является flightCities свойством с именем LeavingFrom переменной правила в правиле с именем bookFlight . Дополнительные сведения см. в разделе содержимое семантических результатов, ссылки на имя правила грамматикии ссылки на правила грамматики .

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

Ниже приведена XML-форма грамматики, созданной кодом из приведенного выше примера.

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

Комментарии

Семантический формат по умолчанию для System. Speech соответствует семантической интерпретации W3C для распознавания речи (СИСР) версии 1,0, где для tag элементов, содержащих скрипт, используется формат semantics/1.0 . Необходимо указать скрипт для объектов, SrgsSemanticInterpretationTag использующих этот формат. В синтаксисе semantics/1.0 :

  • Переменная правила содержащего его элемента идентифицируется по «out».

  • Имя объекта, имеющего доступ к переменной правила элементов правила за пределами содержащего его элемента Rule, определяется «Rules».

  • Результат последнего упоминаемого правила, соответствующего utterance, можно представить с помощью "Rules. Latest ()".

Можно также связать семантическое значение с фразой в грамматике без использования скрипта с помощью SrgsNameValueTag объекта.

Конструкторы

SrgsSemanticInterpretationTag()

Создает экземпляр класса SrgsSemanticInterpretationTag.

SrgsSemanticInterpretationTag(String)

Создает экземпляр класса SrgsSemanticInterpretationTag, указывая содержимое скрипта тега.

Свойства

Script

Возвращает или задает ECMAScript для тега.

Методы

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

(Унаследовано от MarshalByRefObject)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetLifetimeService()
Является устаревшей.

Извлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра.

(Унаследовано от MarshalByRefObject)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Является устаревшей.

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
MemberwiseClone(Boolean)

Создает неполную копию текущего объекта MarshalByRefObject.

(Унаследовано от MarshalByRefObject)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к