SrgsRuleRef Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса SrgsRuleRef.
Перегрузки
SrgsRuleRef(SrgsRule) |
Инициализирует новый экземпляр класса SrgsRuleRef и указывает правило для ссылки. |
SrgsRuleRef(Uri) |
Инициализирует новый экземпляр класса SrgsRuleRef и задает расположение внешнего файла грамматики, на который можно сослаться. |
SrgsRuleRef(SrgsRule, String) |
Инициализирует новый экземпляр класса SrgsRuleRef определяя правило, на которое необходимо создать ссылку, и строку, содержащую семантический ключ. |
SrgsRuleRef(Uri, String) |
Инициализирует новый экземпляр класса SrgsRuleRef, указывая расположение внешнего файла грамматики и идентификатор правила, на которые можно сослаться. |
SrgsRuleRef(SrgsRule, String, String) |
Инициализирует новый экземпляр класса SrgsRuleRef, указывая правило, на которое можно сослаться, псевдоним строки семантического словаря и параметры инициализации. |
SrgsRuleRef(Uri, String, String) |
Инициализирует новый экземпляр класса SrgsRuleRef, указывая расположение внешнего файла грамматики и идентификатор правила, а также псевдоним строки семантического словаря. |
SrgsRuleRef(Uri, String, String, String) |
Инициализирует новый экземпляр класса SrgsRuleRef, указывая местоположение внешнего файла грамматики, идентификатор правила, псевдоним строки смыслового словаря и параметры инициализации. |
SrgsRuleRef(SrgsRule)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef и указывает правило для ссылки.
public:
SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule)
Параметры
- rule
- SrgsRule
Объект для ссылки.
Исключения
rule
имеет значение null
.
Примеры
В следующем примере создается грамматика, которая распознает фразу "Нация, которая выиграла Кубок мира", за которой следует название страны, выигравшей кубок мира. После создания SrgsRule объекта winnerRule
и присвоения ему строкового идентификатора WorldCupWinner
в примере добавляется строка "Нация, выиграющая Кубок мира" в правило. С помощью SrgsOneOf объектов в примере создается список европейских стран или регионов и список стран и регионов Южной Америки, а затем каждый из них добавляется в соответствующее правило или ruleEurope
ruleSAmerica
. Затем в примере создаются ссылки на правила для ruleEurope
и ruleSAmerica
и их добавление в WorldCupWinner
правило.
public void WorldSoccerWinners ()
{
// Create an SrgsDocument, create a new rule
// and set its scope to public.
SrgsDocument document = new SrgsDocument();
SrgsRule winnerRule = new SrgsRule("WorldCupWinner");
winnerRule.Scope = SrgsRuleScope.Public;
// Add the introduction.
winnerRule.Elements.Add(new SrgsItem("A nation that has won the world cup is: "));
// Create the rule for the European nations.
SrgsOneOf oneOfEurope = new SrgsOneOf(new SrgsItem[] {new SrgsItem("England"),
new SrgsItem("France"), new SrgsItem("Germany"), new SrgsItem("Italy")});
SrgsRule ruleEurope = (new SrgsRule("EuropeanNations", new SrgsElement[] {oneOfEurope}));
// Create the rule for the South American nations.
SrgsOneOf oneOfSAmerica = new SrgsOneOf(new SrgsItem[] {new SrgsItem("Argentina"),
new SrgsItem("Brazil"), new SrgsItem("Uruguay")});
SrgsRule ruleSAmerica = (new SrgsRule("SouthAmericanNations", new SrgsElement[] {oneOfSAmerica}));
// Add references to winnerRule for ruleEurope and ruleSAmerica.
winnerRule.Elements.Add(new SrgsOneOf(new SrgsItem[] {(new SrgsItem
(new SrgsRuleRef(ruleEurope))), new SrgsItem(new SrgsRuleRef(ruleSAmerica))}));
// Add all the rules to the document and make winnerRule
// the root rule of the document.
document.Rules.Add(new SrgsRule[] {winnerRule, ruleEurope, ruleSAmerica});
document.Root = winnerRule;
}
Созданная грамматика имеет следующую форму.
<grammar version="1.0" xml:lang="en-US" xmlns="http://www.w3.org/2001/06/grammar" root="WorldCupWinner">
<rule id="WorldCupWinner" scope="public">
<item> A nation that has won the world cup is </item>
<one-of>
<item>
<ruleref uri="#EuropeanNations" />
</item>
<item>
<ruleref uri="#SouthAmericanNations" />
</item>
</one-of>
</rule>
<rule id="EuropeanNations">
<one-of>
<item> England </item>
<item> France </item>
<item> Germany </item>
<item> Italy </item>
</one-of>
</rule>
<rule id="SouthAmericanNations">
<one-of>
<item> Argentina </item>
<item> Brazil </item>
<item> Uruguay </item>
</one-of>
</rule>
</grammar>
Комментарии
Этот конструктор создает ссылку на правило на SrgsRule объект в содержающей грамматике. Чтобы создать ссылку на rule
правило для элемента во внешнем файле грамматики, используйте любой из следующих конструкторов:
См. также раздел
Применяется к
SrgsRuleRef(Uri)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef и задает расположение внешнего файла грамматики, на который можно сослаться.
public:
SrgsRuleRef(Uri ^ uri);
public SrgsRuleRef (Uri uri);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri)
Параметры
- uri
- Uri
Расположение файла грамматики за пределами содержащей грамматики.
Исключения
uri
имеет значение null
.
Примеры
В следующем примере создается грамматика для приложения, которое возвращает сведения о службе автобусных шаттлов. Первый метод, GrammarUrlForRoute
, принимает строку, которая задает маршрут, и добавляет ее к строке, указывающей расположение грамматики. Это указывает определенное правило в этой грамматике. Метод возвращает для Uri
этого правила .
Второй метод, CreateGrammarForRoute
, создает SrgsDocument элемент с именем grammar
со ссылкой на правило, указанной объектом , Uri
переданным GrammarUrlForRoute
ему . Обратите внимание, что переменная с именем _route является членом включающего класса.
private Uri GrammarUrlForRoute(string route)
{
return new Uri("http://localhost/MyBus/MyBusLocations.grxml#LocationsForRoute" + route);
}
private SrgsDocument CreateGrammarForRoute()
{
SrgsDocument grammar = new SrgsDocument();
grammar.Mode = SrgsGrammarMode.Voice;
SrgsRule rule = new SrgsRule("LocationsForRoute" + _route);
SrgsRuleRef ruleref = new SrgsRuleRef(GrammarUrlForRoute(_route));
SrgsSemanticInterpretationTag tag = new SrgsSemanticInterpretationTag ("$.Location = $$");
rule.Elements.Add(ruleref);
rule.Elements.Add(tag);
grammar.Rules.Add(rule);
grammar.Root = rule;
return grammar;
}
Примечание
Переменная с именем _route
является необъявленной и неопределенной в предыдущем примере. Он должен быть объявлен как String и содержать номер маршрута для определенного маршрута автобуса перед компиляцией и запуском предыдущего примера.
Комментарии
Этот конструктор создает ссылку на правило для внешнего файла грамматики. Универсальный код ресурса (URI) также может содержать идентификатор правила для ссылки, например http://www.contoso.com/ExternalGrammar.grxml#targetRule
.
uri
Если параметр не указывает идентификатор правила, ссылка на правило указывает на корневое правило целевой грамматики. Чтобы создать ссылку на правило на SrgsRule объект в той же грамматике, используйте любой из следующих конструкторов:
См. также раздел
Применяется к
SrgsRuleRef(SrgsRule, String)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef определяя правило, на которое необходимо создать ссылку, и строку, содержащую семантический ключ.
public:
SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule, System::String ^ semanticKey);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule, semanticKey As String)
Параметры
- rule
- SrgsRule
Объект для ссылки.
- semanticKey
- String
Семантический ключ.
Примеры
В следующем примере создается грамматика для выбора городов для рейса. В примере создаются два SrgsRuleRef экземпляра, каждый из которых задает семантический ключ. Обе ссылки на правила предназначены для одного и того же SrgsRule объекта с именем cities
, но помечают результат распознавания из ссылки на правило с помощью другого семантического ключа. Семантический ключ идентифицирует распознанный город в качестве города вылета или города прибытия для рейса. Обработчик события использует ключи для SpeechRecognized получения значений семантики, созданных с помощью SrgsNameValueTag результата распознавания.
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")))
{
// Build a rule with a list of cities, assign a semantic value to each city.
SrgsItem chi = new SrgsItem("Chicago");
chi.Add(new SrgsNameValueTag("ORD"));
SrgsItem bos = new SrgsItem("Boston");
bos.Add(new SrgsNameValueTag("BOS"));
SrgsItem mia = new SrgsItem("Miami");
mia.Add(new SrgsNameValueTag("MIA"));
SrgsItem dal = new SrgsItem("Dallas");
dal.Add(new SrgsNameValueTag("DFW"));
SrgsOneOf cities = new SrgsOneOf(new SrgsItem[] { chi, bos, mia, dal });
SrgsRule citiesRule = new SrgsRule("flightCities");
citiesRule.Add(cities);
// Build the root rule, add rule references to the cities rule.
SrgsRule flightBooker = new SrgsRule("bookFlight");
flightBooker.Add(new SrgsItem("I want to fly from"));
flightBooker.Add(new SrgsRuleRef(citiesRule, "departureCity"));
flightBooker.Add(new SrgsItem("to"));
flightBooker.Add(new SrgsRuleRef(citiesRule, "arrivalCity"));
// Build an SrgsDocument object from the flightBooker rule and add the cities rule.
SrgsDocument cityChooser = new SrgsDocument(flightBooker);
cityChooser.Rules.Add(citiesRule);
// Create a Grammar object from the SrgsDocument and load it to the recognizer.
Grammar departArrive = new Grammar(cityChooser);
departArrive.Name = ("Cities Grammar");
recognizer.LoadGrammarAsync(departArrive);
// Configure recognizer input.
recognizer.SetInputToDefaultAudioDevice();
// Attach a handler for the SpeechRecognized event.
recognizer.SpeechRecognized +=
new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
// Start asynchronous recognition.
recognizer.RecognizeAsync();
Console.WriteLine("Starting asynchronous recognition...");
// Keep the console window open.
Console.ReadLine();
}
}
// Handle the SpeechRecognized event.
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["departureCity"].Value);
Console.WriteLine(" The destination city is: " + e.Result.Semantics["arrivalCity"].Value);
}
}
}
Комментарии
Этот конструктор создает ссылку на правило на SrgsRule объект в содержающей грамматике. Чтобы создать ссылку на rule
правило для элемента во внешнем файле грамматики, используйте любой из следующих конструкторов:
См. также раздел
Применяется к
SrgsRuleRef(Uri, String)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef, указывая расположение внешнего файла грамматики и идентификатор правила, на которые можно сослаться.
public:
SrgsRuleRef(Uri ^ uri, System::String ^ rule);
public SrgsRuleRef (Uri uri, string rule);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String)
Параметры
- uri
- Uri
Расположение файла грамматики за пределами содержащей грамматики.
- rule
- String
Идентификатор правила, на которое существует ссылки.
Исключения
Параметр rule
пуст.
Комментарии
Этот конструктор создает ссылку на правило на rule
элемент во внешнем файле грамматики. Чтобы создать ссылку на правило на SrgsRule объект в той же грамматике, используйте любой из следующих конструкторов:
См. также раздел
Применяется к
SrgsRuleRef(SrgsRule, String, String)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef, указывая правило, на которое можно сослаться, псевдоним строки семантического словаря и параметры инициализации.
public:
SrgsRuleRef(System::Speech::Recognition::SrgsGrammar::SrgsRule ^ rule, System::String ^ semanticKey, System::String ^ parameters);
public SrgsRuleRef (System.Speech.Recognition.SrgsGrammar.SrgsRule rule, string semanticKey, string parameters);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : System.Speech.Recognition.SrgsGrammar.SrgsRule * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (rule As SrgsRule, semanticKey As String, parameters As String)
Параметры
- rule
- SrgsRule
Объект для ссылки.
- semanticKey
- String
Семантический ключ.
- parameters
- String
Параметры инициализации для объекта SrgsRuleRef.
Комментарии
Этот конструктор создает ссылку на правило на SrgsRule объект в содержающей грамматике. Чтобы создать ссылку на rule
правило для элемента во внешнем файле грамматики, используйте любой из следующих конструкторов:
См. также раздел
Применяется к
SrgsRuleRef(Uri, String, String)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef, указывая расположение внешнего файла грамматики и идентификатор правила, а также псевдоним строки семантического словаря.
public:
SrgsRuleRef(Uri ^ uri, System::String ^ rule, System::String ^ semanticKey);
public SrgsRuleRef (Uri uri, string rule, string semanticKey);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String, semanticKey As String)
Параметры
- uri
- Uri
Расположение файла грамматики за пределами содержащей грамматики.
- rule
- String
Идентификатор правила, на которое существует ссылки.
- semanticKey
- String
Строка псевдонима для смыслового словаря.
Исключения
Параметр semanticKey
пуст.
Комментарии
Этот конструктор создает ссылку на правило на rule
элемент во внешнем файле грамматики. Чтобы создать ссылку на правило на SrgsRule объект в той же грамматике, используйте любой из следующих конструкторов:
См. также раздел
Применяется к
SrgsRuleRef(Uri, String, String, String)
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
- Исходный код:
- SrgsRuleRef.cs
Инициализирует новый экземпляр класса SrgsRuleRef, указывая местоположение внешнего файла грамматики, идентификатор правила, псевдоним строки смыслового словаря и параметры инициализации.
public:
SrgsRuleRef(Uri ^ uri, System::String ^ rule, System::String ^ semanticKey, System::String ^ parameters);
public SrgsRuleRef (Uri uri, string rule, string semanticKey, string parameters);
new System.Speech.Recognition.SrgsGrammar.SrgsRuleRef : Uri * string * string * string -> System.Speech.Recognition.SrgsGrammar.SrgsRuleRef
Public Sub New (uri As Uri, rule As String, semanticKey As String, parameters As String)
Параметры
- uri
- Uri
Расположение файла грамматики за пределами содержащей грамматики.
- rule
- String
Идентификатор правила, на которое существует ссылки.
- semanticKey
- String
Семантический ключ.
- parameters
- String
Параметры инициализации для объекта SrgsRuleRef.
Комментарии
Этот конструктор создает ссылку на правило на rule
элемент во внешнем файле грамматики. Чтобы создать ссылку на правило на SrgsRule объект в той же грамматике, используйте любой из следующих конструкторов: