Поделиться через


SrgsSemanticInterpretationTag Класс

Определение

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

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

Примеры

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

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

Выражение "rules.flightCities" относится к переменной правила в правиле , которое Id является flightCitiesцелевым объектом ссылки на правило. В этом примере выражение "out. LeavingFrom=rules.flightCities;" присваивает значение из правила, которое Id является свойству LeavingFrom переменной правила в правиле с именем bookFlightflightCities . Дополнительные сведения см. в разделах Содержимое семантических результатов, Ссылки на имя правила грамматики и Справочник по правилам грамматики .

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 для распознавания речи (SISR) версии 1.0, где для элементов, содержащих скрипт, используется semantics/1.0формат tag . В этом формате необходимо указать скрипт для SrgsSemanticInterpretationTag объектов . В синтаксисе :semantics/1.0

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

  • Имя объекта, имеющего доступ к переменной rule элементов правила за пределами содержащего элемента rule, идентифицируется с помощью "rules".

  • Результат последнего упоминаемого правила, соответствующего высказыванию, можно представить с помощью "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)

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