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

Определение

Инициализирует новый экземпляр класса Grammar.

Перегрузки

Grammar()

Инициализирует новый экземпляр класса Grammar.

Grammar(SrgsDocument, String, Uri, Object[])

Инициализирует новый экземпляр класса Grammar из экземпляра SrgsDocument, указывает имя правила, которое должно функционировать как точка входа в грамматику, и базовый URI для разрешения относительных ссылок.

Grammar(Stream, String, Uri, Object[])

Инициализирует новый экземпляр класса Grammar для Stream и определяет корневое правило и базовый код URI для разрешения относительных ссылок.

Grammar(SrgsDocument, String, Uri)

Инициализирует новый экземпляр Grammar класса из SrgsDocument объекта, задает корневое правило и определяет базовый универсальный код ресурса (URI) для разрешения относительных ссылок на правила.

Grammar(SrgsDocument, String, Object[])

Инициализирует новый экземпляр класса Grammar из экземпляра SrgsDocument, указывает имя правила, которое должно функционировать как точка входа в грамматику.

Grammar(Stream, String, Uri)

Инициализирует новый экземпляр класса Grammar из потока, определяет корневое правило и определяет базовый универсальный идентификатор ресурса (URI) для разрешения относительных ссылок на правила.

Grammar(Stream, String, Object[])

Инициализирует новый экземпляр класса Grammar из Stream и указывает корневое правило.

Grammar(String, String, Object[])

Инициализирует новый экземпляр класса Grammar из файла, содержащего определение грамматики, и указывает имя правила, которое должно функционировать как точка входа в грамматику.

Grammar(SrgsDocument, String)

Инициализирует новый экземпляр Grammar класса из SrgsDocument объекта и задает корневое правило.

Grammar(Stream, String)

Инициализирует новый экземпляр класса Grammar из Stream и указывает корневое правило.

Grammar(String)

Инициализирует новый экземпляр класса Grammar из файла.

Grammar(SrgsDocument)

Инициализирует новый экземпляр класса Grammar из объекта SrgsDocument.

Grammar(String, String)

Инициализирует новый экземпляр класса Grammar из файла и указывает корневое правило.

Grammar(GrammarBuilder)

Инициализирует новый экземпляр класса Grammar из объекта GrammarBuilder.

Grammar(Stream)

Инициализирует новый экземпляр класса Grammar из Stream.

Комментарии

Конструктор можно использовать Grammar для создания Grammar экземпляра из GrammarBuilder объекта или SrgsDocument файла или файла, Stream содержащего описание грамматики в поддерживаемом формате. Поддерживаемые форматы включают следующие:

Конструкторы грамматики, принимаюющие файлы грамматики формата XML в своих аргументах, компилируют грамматики XML в двоичный формат, чтобы оптимизировать их для загрузки и потребления подсистемой распознавания речи. Вы можете сократить время, необходимое для создания Grammar объекта из грамматики формата XML, скомпилируя грамматику заранее с помощью одного из Compile методов.

Грамматика распознавания речи может определять корневое правило. Чтобы создать объект, указывающий Grammar , какое правило следует использовать в качестве корневого правила, используйте конструктор, принимаюющий ruleName параметр.

Чтобы создать объект, указывающий базовый Grammar URI для разрешения относительных ссылок на правила, используйте конструктор, принимаюющий baseUri параметр.

Grammar()

Инициализирует новый экземпляр класса Grammar.

protected:
 Grammar();
protected Grammar ();
Protected Sub New ()

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

Grammar(SrgsDocument, String, Uri, Object[])

Инициализирует новый экземпляр класса Grammar из экземпляра SrgsDocument, указывает имя правила, которое должно функционировать как точка входа в грамматику, и базовый URI для разрешения относительных ссылок.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri, parameters As Object())

Параметры

srgsDocument
SrgsDocument

Экземпляр SrgsDocument, содержащий ограничения для грамматики распознавания речи.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

baseUri
Uri

Базовый универсальный код ресурса (uri), используемый для разрешения любых относительную ссылок на правила в описании грамматики или null.

parameters
Object[]

Параметры, передаваемые обработчику инициализации, указанному свойством OnInit для точки входа или корневого правила создаваемого объекта Grammar. Этот параметр может быть равен null.

Исключения

Один из параметров содержит недопустимое значение.

SrgsDocument, указанный srgsDocument, не содержит правила, заданного в ruleName.

Содержимое параметров массива не соответствует аргументам любого из обработчиков инициализации правила.

Грамматика содержит относительную ссылку на правило, которая не может быть разрешена базовым правилом Uri по умолчанию для грамматик или URI-адресом, заданным в baseUri.

Комментарии

Также могут быть указаны параметры обработчика инициализации.

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

Grammar(Stream, String, Uri, Object[])

Инициализирует новый экземпляр класса Grammar для Stream и определяет корневое правило и базовый код URI для разрешения относительных ссылок.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri, cli::array <System::Object ^> ^ parameters);
public Grammar (System.IO.Stream stream, string ruleName, Uri baseUri, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri, parameters As Object())

Параметры

stream
Stream

Объект Stream, подключенный к объекту ввода/вывода (включая файлы, ресурсы Visual Studio и DLL-библиотеки), который содержит грамматическую спецификацию.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

baseUri
Uri

Базовый универсальный код ресурса (uri), используемый для разрешения любых относительную ссылок на правила в описании грамматики или null.

parameters
Object[]

Параметры, передаваемые обработчику инициализации, указанному свойством OnInit для точки входа или корневого правила создаваемого объекта Grammar. Этот параметр может быть равен null.

Исключения

Один из параметров содержит недопустимое значение.

stream подключен к грамматике, которая не содержит правило, определенное в ruleName.

Содержимое параметров массива не соответствует аргументам любого из обработчиков инициализации правила.

Грамматика содержит относительную ссылку на правило, которая не может быть разрешена базовым правилом Uri по умолчанию для грамматик или URI-адресом, заданным в baseUri.

Комментарии

Можно также указать параметры для обработчика инициализации.

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

Grammar(SrgsDocument, String, Uri)

Инициализирует новый экземпляр Grammar класса из SrgsDocument объекта, задает корневое правило и определяет базовый универсальный код ресурса (URI) для разрешения относительных ссылок на правила.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, Uri ^ baseUri);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, baseUri As Uri)

Параметры

srgsDocument
SrgsDocument

Ограничения для грамматики распознавания речи.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики SrgsDocument.

baseUri
Uri

Базовый универсальный код ресурса (uri), используемый для разрешения любых относительную ссылок на правила в SrgsDocument или null.

Исключения

Невозможно разрешить ruleName или оно не является открытым или ruleNamenull и srgsDocument не содержит корневое правило.

srgsDocument имеет значение null.

srgsDocument содержит ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере создается грамматика распознавания речи, SrgsDocument содержащая относительную ссылку правила на файл cities.xml и задающий универсальный код ресурса (URI), используемый для разрешения ссылки на правило. Содержимое файла cities.xml отображается в XML-примере, следующем за примером C#.

private static Grammar CreateSrgsDocumentGrammar3()  
{  
  // Create the SrgsDocument.  
  SrgsDocument document = new SrgsDocument();  

  // Create the Main rule and add it to the document.  
  SrgsRule mainRule = new SrgsRule("Main");  
  mainRule.Scope = SrgsRuleScope.Public;  

  SrgsItem item = new SrgsItem("Can I get a shuttle in");  

  // Create a relative URI for the cities rule.  
  Uri ruleUri = new Uri("cities.xml#Cities", UriKind.Relative);  

  item.Add(new SrgsRuleRef(ruleUri));  

  mainRule.Add(item);  
  document.Rules.Add(mainRule);  

  // Set the root rule.  
  document.Root = mainRule;  

  // Create the grammar.  
  Uri baseUri = new Uri(@"file://c:\temp\");  
  Grammar citiesGrammar = new Grammar(document, null, baseUri);  
  citiesGrammar.Name = "SrgsDocument Cities Grammar 3";  

  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Комментарии

Этот конструктор не передает параметры обработчику инициализации, и SrgsDocument не должен содержать обработчик инициализации, требующий аргументов.

Этот конструктор не проверяет baseUri. Однако метод SpeechRecognitionEngine или SpeechRecognizer объект создает исключение, LoadGrammar если он не может разрешить все ссылки на правила в описании грамматики. null``LoadGrammar В противном baseUri случае метод использует универсальный код ресурса (URI) для разрешения ссылок на правила, которые не удается разрешить в противном случае. Если baseUri представляет файл, метод использует как указанный файл, LoadGrammar так и каталог файла при попытке разрешить относительные ссылки на правила.

См. также раздел

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

Grammar(SrgsDocument, String, Object[])

Инициализирует новый экземпляр класса Grammar из экземпляра SrgsDocument, указывает имя правила, которое должно функционировать как точка входа в грамматику.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String, parameters As Object())

Параметры

srgsDocument
SrgsDocument

Экземпляр SrgsDocument, содержащий ограничения для грамматики распознавания речи.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

parameters
Object[]

Параметры, передаваемые обработчику инициализации, указанному свойством OnInit для точки входа или корневого правила создаваемого объекта Grammar. Этот параметр может быть равен null.

Исключения

Один из параметров содержит недопустимое значение.

SrgsDocument, указанный srgsDocument, не содержит правила, заданного параметром ruleName.

Содержимое параметров массива не соответствует аргументам любого из обработчиков инициализации правила.

Комментарии

Можно также указать параметры для обработчика инициализации.

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

Grammar(Stream, String, Uri)

Инициализирует новый экземпляр класса Grammar из потока, определяет корневое правило и определяет базовый универсальный идентификатор ресурса (URI) для разрешения относительных ссылок на правила.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar (System.IO.Stream stream, string ruleName, Uri baseUri);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * Uri -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, baseUri As Uri)

Параметры

stream
Stream

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

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

baseUri
Uri

Базовый универсальный код ресурса (uri), используемый для разрешения любых относительную ссылок на правила в описании грамматики или null.

Исключения

Невозможно разрешить ruleName или оно не является открытым или ruleNamenull и грамматическое описание не определяет корневое правило.

stream имеет значение null.

Поток не содержит допустимого описания или не описывает грамматику, содержащую ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере загружается локальный файл SRGS (shuttle.xml) из файлового потока. Файл содержит относительную ссылку на правило в файле cities.xml и задает базовый универсальный код ресурса (URI), используемый для разрешения ссылки на правило. Содержимое файлов shuttle.xml и cities.xml отображается в примерах XML, которые следуют примеру C#.

private static Grammar CreateGrammarFromStream3()  
{  
  FileInfo file = new FileInfo(@".\shuttle.xml");  
  Uri baseUri = new Uri(@"file://c:\temp\");  
  Grammar citiesGrammar = new Grammar(file.OpenRead(), null, baseUri);  
  citiesGrammar.Name = "Stream Cities Grammar 3";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- shuttle.xml:   
    Defines an SRGS grammar for asking about a shuttle service. This grammar  
    references a Cities rule that is defined in the cities.xml grammar. -->  

  <rule id="Main">  
    <item>  
      Can I get a shuttle in  
      <ruleref uri="cities.xml#Cities"/>  
    </item>  
  </rule>  
</grammar>  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Комментарии

Этот конструктор не передает параметры обработчику инициализации, а описание не должно определять обработчик инициализации, требующий аргументов.

Этот конструктор может создать Grammar экземпляр из следующих форматов:

Этот конструктор компилирует файлы грамматики в формате XML в двоичный формат, чтобы оптимизировать их для загрузки и использования подсистемой распознавания речи. Можно сократить время, необходимое для создания Grammar объекта из грамматики формата XML, заранее скомпилируя грамматику, используя один из Compile методов.

Этот конструктор не проверяет baseUri. Однако метод SpeechRecognitionEngine или SpeechRecognizer объект создает исключение, LoadGrammar если он не может разрешить все ссылки на правила в описании грамматики. null``LoadGrammar В противном baseUri случае метод использует универсальный код ресурса (URI) для разрешения ссылок на правила, которые не удается разрешить в противном случае. Если baseUri представляет файл, то LoadGrammar при попытке разрешить относительные ссылки на правила используется как указанный файл, так и каталог файла.

См. также раздел

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

Grammar(Stream, String, Object[])

Инициализирует новый экземпляр класса Grammar из Stream и указывает корневое правило.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (System.IO.Stream stream, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : System.IO.Stream * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String, parameters As Object())

Параметры

stream
Stream

Объект Stream, подключенный к объекту ввода/вывода (включая файлы, ресурсы Visual Studio и DLL-библиотеки), который содержит грамматическую спецификацию.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

parameters
Object[]

Параметры, передаваемые обработчику инициализации, указанному свойством OnInit для точки входа или корневого правила создаваемого объекта Grammar. Этот параметр может быть равен null.

Исключения

stream подключен к грамматике, которая: – не содержит правила, указанного в ruleName;

– требует параметры инициализации отличающиеся от тех, которые определены в parameters;

— содержит относительную ссылку на правило, которое не может быть разрешено базовым Uri правилом по умолчанию для грамматик.

Комментарии

Можно также указать параметры для обработчика инициализации.

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

Grammar(String, String, Object[])

Инициализирует новый экземпляр класса Grammar из файла, содержащего определение грамматики, и указывает имя правила, которое должно функционировать как точка входа в грамматику.

public:
 Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar (string path, string ruleName, object[] parameters);
new System.Speech.Recognition.Grammar : string * string * obj[] -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String, parameters As Object())

Параметры

path
String

Путь к файлу, включая библиотеки DLL, который содержит грамматическую спецификацию.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

parameters
Object[]

Параметры, передаваемые обработчику инициализации, указанному свойством OnInit для точки входа или корневого правила создаваемого объекта Grammar. Этот параметр может быть равен null.

Исключения

Один из параметров содержит недопустимое значение.

Файл, указанный в path, не содержит допустимую грамматику или правило, определенное в ruleName.

Содержимое параметров массива не соответствует аргументам любого из обработчиков инициализации правила.

Грамматика содержит относительную ссылку на правило, которая не может быть разрешена базовым правилом Uri по умолчанию для грамматик.

Комментарии

Можно также указать параметры для обработчика инициализации.

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

Grammar(SrgsDocument, String)

Инициализирует новый экземпляр Grammar класса из SrgsDocument объекта и задает корневое правило.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument, string ruleName);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument * string -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument, ruleName As String)

Параметры

srgsDocument
SrgsDocument

Ограничения для грамматики распознавания речи.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики SrgsDocument.

Исключения

Невозможно разрешить ruleName или оно не является открытым или ruleNamenull и srgsDocument не содержит корневое правило.

srgsDocument имеет значение null.

srgsDocument содержит ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере создается грамматика распознавания речи в экземпляре SrgsDocument и указывается правило, используемое в качестве корневого правила грамматики. Этот пример создает Grammar объект из экземпляра SrgsDocument и загружает его в подсистему распознавания речи.

using System;  
using System.Speech.Recognition;  
using System.Speech.Recognition.SrgsGrammar;  

namespace SampleRecognition  
{  
  class Program  
  {  
    static void Main(string[] args)  

    // Initialize an in-process speech recognition engine.  
    {  
      using (SpeechRecognitionEngine recognizer =  
         new SpeechRecognitionEngine())  
      {  

        // Create the SrgsDocument.  
        SrgsDocument document = new SrgsDocument();  

        // Create the Cities rule and add it to the document.  
        SrgsRule citiesRule = new SrgsRule("Cities");  
        citiesRule.Scope = SrgsRuleScope.Public;  

        SrgsOneOf cityChoice = new SrgsOneOf();  
        cityChoice.Add(new SrgsItem("Seattle"));  
        cityChoice.Add(new SrgsItem("Los Angeles"));  
        cityChoice.Add(new SrgsItem("New York"));  
        cityChoice.Add(new SrgsItem("Miami"));  

        citiesRule.Add(cityChoice);  
        document.Rules.Add(citiesRule);  

        // Create the Main rule and add it to the document.  
        SrgsRule mainRule = new SrgsRule("Main");  
        mainRule.Scope = SrgsRuleScope.Public;  

        mainRule.Add(new SrgsItem("I would like to fly from"));  
        mainRule.Add(new SrgsRuleRef(citiesRule));  
        mainRule.Add(new SrgsItem("to"));  
        mainRule.Add(new SrgsRuleRef(citiesRule));  

        document.Rules.Add(mainRule);  

        // Create the Grammar object and specify which rule to use as the root.  
        Grammar citiesGrammar = new Grammar(document,"Main");  

        // Load the grammar object to the recognizer.  
        recognizer.LoadGrammarAsync(citiesGrammar);  

        // Attach a handler for the SpeechRecognized event.  
        recognizer.SpeechRecognized +=  
          new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);  

        // Set the input to the recognizer.  
        recognizer.SetInputToDefaultAudioDevice();  

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

Комментарии

Этот конструктор не передает параметры обработчику инициализации SrgsDocument и не должен содержать обработчик инициализации, требующий аргументов.

Чтобы создать Grammar объект из SrgsDocument и указать базовый универсальный код ресурса (URI), который будет использоваться для разрешения относительных ссылок на правила, используйте Grammar конструктор.

См. также раздел

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

Grammar(Stream, String)

Инициализирует новый экземпляр класса Grammar из Stream и указывает корневое правило.

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar (System.IO.Stream stream, string ruleName);
new System.Speech.Recognition.Grammar : System.IO.Stream * string -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream, ruleName As String)

Параметры

stream
Stream

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

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

Исключения

Невозможно разрешить ruleName или оно не является открытым или ruleNamenull и грамматическое описание не определяет корневое правило.

stream имеет значение null.

Поток не содержит допустимого описания или не описывает грамматику, содержащую ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере загружается локальный файл SRGS (cities.xml) из файлового потока и указывается правило, используемое в качестве корня грамматики. Содержимое файла cities.xml отображается в xml-примере, следующем за примером C#.

// Load a cities grammar from an I/O stream, use a specific  
// rule as the root of the grammar, and return the new grammar.   
private static Grammar CreateGrammarFromStream2()  
{  
  FileInfo file = new FileInfo(@"c:\temp\cities.xml");  
  Grammar citiesGrammar = new Grammar(file.OpenRead(), "Main");  
  citiesGrammar.Name = "Stream Cities Grammar 2";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Комментарии

Этот конструктор не передает никакие параметры обработчику инициализации, а описание не должно определять обработчик инициализации, требующий аргументов.

Этот конструктор может создать Grammar экземпляр из следующих форматов:

Этот конструктор компилирует файлы грамматики ФОРМАТА XML в двоичный формат, чтобы оптимизировать их для загрузки и потребления подсистемой распознавания речи. Вы можете сократить время, необходимое для создания Grammar объекта из грамматики формата XML, скомпилируя грамматику заранее с помощью одного из Compile методов.

Чтобы создать из Grammar потока и указать базовый универсальный код ресурса (URI), используемый для разрешения относительных ссылок на правила, используйте Grammar конструктор.

См. также раздел

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

Grammar(String)

Инициализирует новый экземпляр класса Grammar из файла.

public:
 Grammar(System::String ^ path);
public Grammar (string path);
new System.Speech.Recognition.Grammar : string -> System.Speech.Recognition.Grammar
Public Sub New (path As String)

Параметры

path
String

Путь к файлу, описывающему грамматику для распознавания речи в поддерживаемом формате.

Исключения

path содержит пустую строку ("") или файл описывает грамматику, которая не содержит корневого правила.

path имеет значение null.

Файл не содержит допустимого описания или не описывает грамматику, содержащую ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере загружается грамматика распознавания речи из локального Grammar SRGS-файла для создания объекта. Содержимое файла cities.xml отображается в xml-примере, следующем за примером C#.

// Load a cities grammar from a local file and  
// return the new grammar.   
private static Grammar CreateGrammarFromFile()  
{  
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml");  
  citiesGrammar.Name = "SRGS File Cities Grammar";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Комментарии

Этот конструктор не передает никакие параметры обработчику инициализации, а описание не должно определять обработчик инициализации, требующий аргументов.

Этот конструктор может создать Grammar экземпляр из следующих форматов:

Этот конструктор компилирует файлы грамматики ФОРМАТА XML в двоичный формат, чтобы оптимизировать их для загрузки и потребления подсистемой распознавания речи. Вы можете сократить время, необходимое для создания Grammar объекта из грамматики формата XML, скомпилируя грамматику заранее с помощью одного из Compile методов.

Грамматика SRGS может определять корневое правило. Чтобы создать Grammar объект из строки и указать корневое правило, используйте Grammar конструктор.

Чтобы создать объект, указывающий базовый Grammar URI для разрешения относительных ссылок на правила, откройте файл в потоке файлов и используйте Grammar.Grammar конструктор.

См. также раздел

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

Grammar(SrgsDocument)

Инициализирует новый экземпляр класса Grammar из объекта SrgsDocument.

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument);
public Grammar (System.Speech.Recognition.SrgsGrammar.SrgsDocument srgsDocument);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.SrgsGrammar.SrgsDocument -> System.Speech.Recognition.Grammar
Public Sub New (srgsDocument As SrgsDocument)

Параметры

srgsDocument
SrgsDocument

Ограничения для грамматики распознавания речи.

Исключения

srgsDocument не содержит корневое правило.

srgsDocument имеет значение null.

srgsDocument содержит ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере создается грамматика распознавания речи в экземпляре SrgsDocument , который затем используется для создания Grammar объекта.

private static Grammar CreateSrgsDocumentGrammar()  
{  
  // Create the SrgsDocument.  
  SrgsDocument document = new SrgsDocument();  

  // Create the Cities rule and add it to the document.  
  SrgsRule citiesRule = new SrgsRule("Cities");  

  SrgsOneOf cityChoice = new SrgsOneOf();  
  cityChoice.Add(new SrgsItem("Seattle"));  
  cityChoice.Add(new SrgsItem("Los Angeles"));  
  cityChoice.Add(new SrgsItem("New York"));  
  cityChoice.Add(new SrgsItem("Miami"));  

  citiesRule.Add(cityChoice);  
  document.Rules.Add(citiesRule);  

  // Create the Main rule and add it to the document.  
  SrgsRule mainRule = new SrgsRule("Main");  
  mainRule.Scope = SrgsRuleScope.Public;  

  SrgsItem item = new SrgsItem("I would like to fly from");  
  item.Add(new SrgsRuleRef(citiesRule));  
  item.Add(new SrgsText("to"));  
  item.Add(new SrgsRuleRef(citiesRule));  

  mainRule.Add(item);  
  document.Rules.Add(mainRule);  

  // Set the root rule.  
  document.Root = mainRule;  

  // Create the Grammar object.  
  Grammar citiesGrammar = new Grammar(document);  
  citiesGrammar.Name = "SrgsDocument Cities Grammar";  

  return citiesGrammar;  
}  

Комментарии

Этот конструктор не передает параметры обработчику инициализации SrgsDocument и не должен содержать обработчик инициализации, требующий аргументов.

Может SrgsDocument иметь корневое правило. Чтобы создать объект, указывающий Grammar корневое правило, используйте Grammar конструктор или Grammar конструктор.

Чтобы создать распознавание Grammar речи из и SrgsDocument указать базовый универсальный код ресурса (URI), используемый для разрешения относительных ссылок на правила, используйте Grammar конструктор.

См. также раздел

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

Grammar(String, String)

Инициализирует новый экземпляр класса Grammar из файла и указывает корневое правило.

public:
 Grammar(System::String ^ path, System::String ^ ruleName);
public Grammar (string path, string ruleName);
new System.Speech.Recognition.Grammar : string * string -> System.Speech.Recognition.Grammar
Public Sub New (path As String, ruleName As String)

Параметры

path
String

Путь к файлу, описывающему грамматику для распознавания речи в поддерживаемом формате.

ruleName
String

Идентификатор правила для использования в качестве точки входа грамматики распознавания речи или значение null, чтобы использовать корневое правило по умолчанию описания грамматики.

Исключения

Невозможно разрешить ruleName или оно не является открытым или path является пустой строкой (""), или ruleNamenullи грамматическое описание не определяет корневое правило.

path имеет значение null.

Файл не содержит допустимого описания или не описывает грамматику, содержащую ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере загружается локальный файл SRGS (cities.xml) из файла и указывается правило, используемое в качестве корня грамматики. Содержимое файла cities.xml отображается в XML-примере, следующем за примером C#.

// Load a cities grammar from a local file, use a specific  
// rule as the root of the grammar, and return the new grammar.  
private static Grammar CreateGrammarFromFile2()  
{  
  Grammar citiesGrammar = new Grammar(@"c:\temp\cities.xml", "Main");  
  citiesGrammar.Name = "SRGS File Cities Grammar 2";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Комментарии

Этот конструктор не передает параметры обработчику инициализации, а описание не должно определять обработчик инициализации, требующий аргументов.

Этот конструктор может создать Grammar экземпляр из следующих форматов:

Этот конструктор компилирует файлы грамматики в формате XML в двоичный формат, чтобы оптимизировать их для загрузки и использования подсистемой распознавания речи. Можно сократить время, необходимое для создания Grammar объекта из грамматики формата XML, заранее скомпилируя грамматику, используя один из Compile методов.

Чтобы создать базовый Grammar универсальный код ресурса (URI), используемый для разрешения относительных ссылок на правила, откройте файловый поток для файла и используйте Grammar конструктор.

См. также раздел

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

Grammar(GrammarBuilder)

Инициализирует новый экземпляр класса Grammar из объекта GrammarBuilder.

public:
 Grammar(System::Speech::Recognition::GrammarBuilder ^ builder);
public Grammar (System.Speech.Recognition.GrammarBuilder builder);
new System.Speech.Recognition.Grammar : System.Speech.Recognition.GrammarBuilder -> System.Speech.Recognition.Grammar
Public Sub New (builder As GrammarBuilder)

Параметры

builder
GrammarBuilder

Экземпляр GrammarBuilder, содержащий ограничения для грамматики распознавания речи.

Примеры

В следующем примере создается грамматика распознавания речи с помощью Choices и GrammarBuilder объектов. Конструктор Grammar создает Grammar объект из GrammarBuilder объекта.

// Create a grammar using a GrammarBuilder and return the new grammar.   
private static Grammar CreateGrammarBuilderGrammar()  
{  
  GrammarBuilder builder = new GrammarBuilder();  

  Choices cityChoice = new Choices (new string[]   
  {"Seattle", "New York", "Miami", "Los Angeles"});  

  builder.Append("I would like to fly from");  
  builder.Append(cityChoice);  
  builder.Append("to");  
  builder.Append(cityChoice);  

  Grammar citiesGrammar = new Grammar(builder);  
  citiesGrammar.Name = "GrammarBuilder Cities Grammar";  

  return citiesGrammar;  
}  

См. также раздел

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

Grammar(Stream)

Инициализирует новый экземпляр класса Grammar из Stream.

public:
 Grammar(System::IO::Stream ^ stream);
public Grammar (System.IO.Stream stream);
new System.Speech.Recognition.Grammar : System.IO.Stream -> System.Speech.Recognition.Grammar
Public Sub New (stream As Stream)

Параметры

stream
Stream

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

Исключения

stream описывает грамматику, которая не содержит корневое правило.

stream имеет значение null.

Поток не содержит допустимого описания грамматики или не описывает грамматику, содержащую ссылку на правило, которая не может быть разрешена.

Примеры

В следующем примере создается грамматика распознавания речи из локального файла SRGS (cities.xml) с помощью файлового потока. Содержимое файла cities.xml появляется в примере C#.

// Load a cities grammar from an I/O stream and    
// return the new grammar.   
private static Grammar CreateGrammarFromStream()  
{  
  string fileName = @"c:\temp\cities.xml";  
  Grammar citiesGrammar =  
    new Grammar(new FileStream(fileName, FileMode.Open));  
  citiesGrammar.Name = "Stream Cities Grammar";  
  return citiesGrammar;  
}  
<?xml version="1.0" encoding="UTF-8" ?>  
<grammar version="1.0" xml:lang="en-US"  
         xmlns="http://www.w3.org/2001/06/grammar"  
         tag-format="semantics/1.0" root="Main">  

  <!-- cities.xml:   
    Defines an SRGS grammar for requesting a flight. This grammar includes  
    a Cities rule that lists the cities that can be used for departures  
    and destinations. -->  

  <rule id="Main">  
    <item>  
      I would like to fly from <ruleref uri="#Cities"/>  
      to <ruleref uri="#Cities"/>  
    </item>  
  </rule>  

  <rule id="Cities" scope="public">  
    <one-of>  
      <item>Seattle</item>  
      <item>Los Angeles</item>  
      <item>New York</item>  
      <item>Miami</item>  
    </one-of>  
  </rule>  
</grammar>  

Комментарии

Этот конструктор не передает никакие параметры обработчику инициализации, а описание не должно определять обработчик инициализации, требующий аргументов.

Этот конструктор может создать Grammar экземпляр из следующих форматов:

Этот конструктор компилирует файлы грамматики ФОРМАТА XML в двоичный формат, чтобы оптимизировать их для загрузки и потребления подсистемой распознавания речи. Вы можете сократить время, необходимое для создания Grammar объекта из грамматики формата XML, скомпилируя грамматику заранее с помощью одного из Compile методов.

Грамматика SRGS может определять корневое правило. Чтобы создать Grammar объект из потока и указать корневое правило, используйте Grammar конструктор или Grammar конструктор.

Чтобы создать Grammar объект из потока и указать базовый универсальный код ресурса (URI), используемый для разрешения относительных ссылок на правила, используйте Grammar конструктор.

См. также раздел

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