Grammar 建構函式

定義

初始化 Grammar 類別的新執行個體。

多載

名稱 Description
Grammar()

初始化 Grammar 類別的新執行個體。

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

從 的Grammar實例初始化該類別的新實例SrgsDocument,並指定規則名稱為文法的入口點,以及一個用於解析相對參照的基礎 URI。

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

初始化類別 a 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)

初始化該類別的新實例GrammarStream

備註

你可以使用Grammar建構函式從SrgsDocumentGrammarBuilder物件或物件、包含支援格式文法描述的檔案或 a Stream 建立Grammar實例。 支援的格式包括以下幾種:

接受 XML 格式文法檔案的文法建構器會將 XML 文法編譯成二進位格式,以優化語音辨識引擎的載入與使用。 你可以透過事先編譯文法(使用其中一種Grammar方法)來減少從 XML 格式文法建構Compile物件所需的時間。

語音辨識文法可以定義根規則。 若要建立 Grammar 指定要使用哪條規則作為根規則的物件,請使用接受參數的 ruleName 建構子。

要建立 Grammar 一個指定基底 URI 以解析相對規則參考的物件,請使用一個承載參數的 baseUri 建構子。

Grammar()

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化 Grammar 類別的新執行個體。

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

適用於

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

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從 的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);
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 根規則。 此參數可能是空值。

例外狀況

  • 任何參數都包含無效值。

  • SrgsDocument指定 的 srgsDocument 不包含 中ruleName指定的規則。

  • 陣列參數的內容與規則中任何初始化處理器的參數都不相符。

  • 文法有一個相對規則參考,無法被文法的預設基礎 Uri 規則或提供的 baseUriURI 解析。

備註

初始化處理器的參數也可以被指定。

這很重要

使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入

適用於

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

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化類別 a 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);
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 包含文法規範的輸入/輸出物件(包括檔案、VisualStudio 資源和 DLL)。

ruleName
String

規則的識別碼可作為語音辨識文法的入口點,或 null 使用文法描述的預設根規則。

baseUri
Uri

用來解析文法描述中任何相對規則引用的基礎 URI,或 null

parameters
Object[]

將參數傳給由入口點屬性指定的 OnInit 初始化處理器,或是被建立的 Grammar 根規則。 此參數可能是空值。

例外狀況

  • 任何參數都包含無效值。

  • stream 一個不包含由 所 ruleName指定的規則的文法相連。

  • 陣列參數的內容與規則中任何初始化處理器的參數都不相符。

  • 文法包含一個相對規則參考,無法被文法的預設基礎 Uri 規則或提供的 baseUriURI 解析。

備註

初始化處理器的參數也可以被指定。

這很重要

使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入

適用於

Grammar(SrgsDocument, String, Uri)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從物件初始化該類別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);
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

用來解析 、 或 null中任何相對規則參考SrgsDocument的基礎 URI。

例外狀況

ruleName 無法解決或非公開,或 ruleNamenullsrgsDocument 不包含根規則。

srgsDocumentnull

srgsDocument 包含一個無法解析的規則參考。

範例

以下範例在 中 SrgsDocument 建立一個語音辨識文法,其中包含對 cities.xml 檔案的相對規則參考,並指定一個用來解析該規則參考的 URI。 cities.xml 檔案的內容出現在 C# 範例後的 XML 範例中。

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驗證 。 然而,LoadGrammarSpeechRecognitionEngine若 或 SpeechRecognizer 物件的方法無法解析文法描述中所有規則引用,則會拋出例外。 若 baseUri 不是 null,該 LoadGrammar 方法會使用 URI 來解析任何無法解決的規則參考。 若 baseUri 代表一個檔案,則該 LoadGrammar 方法在嘗試解析相對規則參考時,會同時使用指定的檔案與檔案的目錄。

這很重要

使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入

另請參閱

適用於

Grammar(SrgsDocument, String, Object[])

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從 的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);
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 根規則。 此參數可能是空值。

例外狀況

  • 任何參數都包含無效值。

  • SrgsDocument指定 的 srgsDocument 不包含由 ruleName所指定的規則。

  • 陣列參數的內容與規則中任何初始化處理器的參數都不相符。

備註

初始化處理器的參數也可以被指定。

適用於

Grammar(Stream, String, Uri)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化從串流中新建的類別實例 Grammar ,指定根規則,並定義基礎的統一資源識別碼(URI)以解析相對規則參照。

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName, Uri ^ baseUri);
public Grammar(System.IO.Stream stream, 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 無法解決或不公開,或 ruleName 是 是 但 null 文法描述未定義根規則。

streamnull

串流中沒有有效的描述,也沒有描述包含無法解析的規則參考的文法。

範例

以下範例是從檔案串流載入本地 SRGS 檔案(shuttle.xml)。 該檔案包含對 cities.xml 檔案中規則的相對規則參考,並指定一個基礎 URI 用於解析該規則參考。 shuttle.xml 和 cities.xml 檔案的內容會出現在 C# 範例後的 XML 範例中。

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驗證 。 然而,LoadGrammarSpeechRecognitionEngine若 或 SpeechRecognizer 物件的方法無法解析文法描述中所有規則引用,則會拋出例外。 若 baseUri 不是 null,該 LoadGrammar 方法會使用 URI 來解析任何無法解決的規則參考。 如果 baseUri 代表一個檔案,則在嘗試解析相對規則參考時,會 LoadGrammar 同時使用指定的檔案與檔案的目錄。

這很重要

使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入

另請參閱

適用於

Grammar(Stream, String, Object[])

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化該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);
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 包含文法規範的輸入/輸出物件(包括檔案、VisualStudio 資源和 DLL)。

ruleName
String

規則的識別碼可作為語音辨識文法的入口點,或 null 使用文法描述的預設根規則。

parameters
Object[]

將參數傳給由入口點屬性指定的 OnInit 初始化處理器,或是被建立的 Grammar 根規則。 此參數可能是空值。

例外狀況

stream 與一個文法相連,該文法:

  • 不包含以下規則 ruleName

  • 需要與 以下設定不同的初始化參數 parameters

  • 包含一個無法由文法預設基礎 Uri 規則解析的相對規則參考。

備註

初始化處理器的參數也可以被指定。

適用於

Grammar(String, String, Object[])

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從包含文法定義的檔案初始化該類別的新實例 Grammar ,並指定規則名稱作為文法的入口點。

public:
 Grammar(System::String ^ path, System::String ^ ruleName, cli::array <System::Object ^> ^ parameters);
public Grammar(string path, string? ruleName, 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 根規則。 此參數可能是空值。

例外狀況

  • 任何參數都包含無效值。

  • path 指定的檔案不包含有效的文法或規則。ruleName

  • 陣列參數的內容與規則中任何初始化處理器的參數都不相符。

  • 文法有一個相對規則參考,無法被文法的預設基礎 Uri 規則解決。

備註

這很重要

使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入

初始化處理器的參數也可以被指定。

適用於

Grammar(SrgsDocument, String)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從物件初始化該類別Grammar的新實例SrgsDocument,並指定根規則。

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ srgsDocument, System::String ^ ruleName);
public Grammar(System.Speech.Recognition.SrgsGrammar.SrgsDocument? srgsDocument, 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 無法解決或非公開,或 ruleNamenullsrgsDocument 不包含根規則。

srgsDocumentnull

srgsDocument 包含一個無法解析的規則參考。

範例

以下範例在實 SrgsDocument 例中建立語音辨識文法,並指定一條規則作為文法的根規則。 範例中從實SrgsDocument例建構一個Grammar物件,並將其載入語音辨識引擎。

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 應該包含需要參數的初始化處理器。

若要從 建立GrammarSrgsDocument物件並指定一個基底 URI 以解析相對規則參照,請使用Grammar建構子。

另請參閱

適用於

Grammar(Stream, String)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化該Grammar類別的新實例Stream,並指定根規則。

public:
 Grammar(System::IO::Stream ^ stream, System::String ^ ruleName);
public Grammar(System.IO.Stream stream, 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 無法解決或不公開,或 ruleName 是 是 但 null 文法描述未定義根規則。

streamnull

串流中沒有有效的描述,也沒有描述包含無法解析的規則參考的文法。

範例

以下範例從檔案串流載入本地 SRGS 檔案(cities.xml),並指定一條規則作為文法根。 cities.xml 檔案的內容出現在 C# 範例後的 XML 範例中。

// 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物件所需的時間。

若要從串流建立 a Grammar ,並指定一個基礎 URI 來解析相對規則參照,請使用 Grammar 建構子。

另請參閱

適用於

Grammar(String)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從檔案初始化該類別的新實例 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 包含空字串(“”),或是檔案描述的文法不包含根規則。

pathnull

該檔案不包含有效的描述,也沒有描述包含無法解析的規則參考的文法。

範例

以下範例是從本地 SRGS 檔案載入語音辨識文法以建立 Grammar 物件。 cities.xml 檔案的內容出現在 C# 範例後的 XML 範例中。

// 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.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從物件Grammar初始化該類別的新實例SrgsDocument

public:
 Grammar(System::Speech::Recognition::SrgsGrammar::SrgsDocument ^ 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 不包含根規則。

srgsDocumentnull

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 應該包含需要參數的初始化處理器。

A SrgsDocument 可以有根規則。 若要建立 Grammar 指定根規則的物件,請使用 Grammar or Grammar 建構子。

若要從 建立語音辨識GrammarSrgsDocument,並指定一個基礎 URI 以解析相對規則參照,請使用建構子。Grammar

另請參閱

適用於

Grammar(String, String)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

從檔案初始化該類別的新實例 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 空字串(“”),或 ruleName 是, null 且文法描述未定義根規則。

pathnull

該檔案不包含有效的描述,也沒有描述包含無法解析的規則參考文法。

範例

以下範例從檔案載入本地 SRGS 檔案(cities.xml),並指定一條規則作為文法根。 cities.xml 檔案的內容出現在 C# 範例後的 XML 範例中。

// 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 以解析相對規則參考的 URI,請開啟該檔案的檔案串流並使用建構子。Grammar

另請參閱

適用於

Grammar(GrammarBuilder)

來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化該類別的新實例 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 包含語音辨識文法的限制條件。

範例

以下範例使用 和 GrammarBuilder 物件來建立語音辨識文法Choices。 建構子從GrammarGrammarBuilder物件創造一個Grammar物件。

// 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.cs
來源:
Grammar.cs
來源:
Grammar.cs
來源:
Grammar.cs

初始化該類別的新實例GrammarStream

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 描述一種不包含根規則的文法。

streamnull

該串流不包含有效的文法描述,或描述包含無法解析的規則參考文法。

範例

以下範例是從本地的 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 or Grammar 建構子。

若要從串流建立Grammar物件並指定一個基礎 URI 以解析相對規則參照,請使用建構子。Grammar

另請參閱

適用於