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 для назначения отдельного семантического ключа для каждой из двух ссылок, сделанных SrgsRuleRef объектом с именем SrgsRulecityRef
cities
. Семантические ключи идентифицируют распознанный город в качестве города вылета или города прибытия для рейса. Обработчик события использует ключи для SpeechRecognized получения семантики из результата распознавания.
В примере кода "out" относится к переменной правила, содержащей SrgsRule. Выражение "out. LeavingFrom " ссылается на свойство LeavingFrom
переменной правила в правиле с именем bookFlight
.
Выражение "rules.flightCities" относится к переменной правила в правиле , которое Id является flightCities
целевым объектом ссылки на правило. В этом примере выражение "out. LeavingFrom=rules.flightCities;" присваивает значение из правила, которое Id является свойству LeavingFrom
переменной правила в правиле с именем bookFlight
flightCities
. Дополнительные сведения см. в разделах Содержимое семантических результатов, Ссылки на имя правила грамматики и Справочник по правилам грамматики .
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) |