Grammar 建構函式
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
初始化 Grammar 類別的新執行個體。
多載
| 名稱 | Description |
|---|---|
| Grammar() |
初始化 Grammar 類別的新執行個體。 |
| Grammar(SrgsDocument, String, Uri, Object[]) |
從 的Grammar實例初始化該類別的新實例SrgsDocument,並指定規則名稱為文法的入口點,以及一個用於解析相對參照的基礎 URI。 |
| Grammar(Stream, String, Uri, Object[]) | |
| Grammar(SrgsDocument, String, Uri) |
從物件初始化該類別Grammar的新實例SrgsDocument,指定根規則,並定義一個基本的統一資源識別碼(URI)以解析相對規則參照。 |
| Grammar(SrgsDocument, String, Object[]) |
從 的Grammar實例初始化該類別的新實例SrgsDocument,並指定規則名稱作為文法的入口點。 |
| Grammar(Stream, String, Uri) |
初始化從串流中新建的類別實例 Grammar ,指定根規則,並定義基礎的統一資源識別碼(URI)以解析相對規則參照。 |
| Grammar(Stream, String, Object[]) | |
| Grammar(String, String, Object[]) |
從包含文法定義的檔案初始化該類別的新實例 Grammar ,並指定規則名稱作為文法的入口點。 |
| Grammar(SrgsDocument, String) |
從物件初始化該類別Grammar的新實例SrgsDocument,並指定根規則。 |
| Grammar(Stream, String) | |
| Grammar(String) |
從檔案初始化該類別的新實例 Grammar 。 |
| Grammar(SrgsDocument) |
從物件Grammar初始化該類別的新實例SrgsDocument。 |
| Grammar(String, String) |
從檔案初始化該類別的新實例 Grammar ,並指定根規則。 |
| Grammar(GrammarBuilder) |
初始化該類別的新實例 Grammar ,從物件 GrammarBuilder 中初始化。 |
| Grammar(Stream) |
備註
你可以使用Grammar建構函式從SrgsDocumentGrammarBuilder物件或物件、包含支援格式文法描述的檔案或 a Stream 建立Grammar實例。 支援的格式包括以下幾種:
符合 W3C 語音辨識文法規範(SRGS)版本 1.0 的 XML 格式檔案
已編譯成帶有 .cfg 副檔名的二進位檔案的文法
接受 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。
例外狀況
任何參數都包含無效值。
SrgsDocument指定 的
srgsDocument不包含 中ruleName指定的規則。陣列參數的內容與規則中任何初始化處理器的參數都不相符。
文法有一個相對規則參考,無法被文法的預設基礎 Uri 規則或提供的
baseUriURI 解析。
備註
初始化處理器的參數也可以被指定。
這很重要
使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入。
適用於
Grammar(Stream, String, Uri, Object[])
- 來源:
- Grammar.cs
- 來源:
- Grammar.cs
- 來源:
- Grammar.cs
- 來源:
- Grammar.cs
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())
參數
- ruleName
- String
規則的識別碼可作為語音辨識文法的入口點,或 null 使用文法描述的預設根規則。
- baseUri
- Uri
用來解析文法描述中任何相對規則引用的基礎 URI,或 null。
例外狀況
任何參數都包含無效值。
與
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 無法解決或非公開,或 ruleName 和 nullsrgsDocument 不包含根規則。
srgsDocument 為 null。
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 方法在嘗試解析相對規則參考時,會同時使用指定的檔案與檔案的目錄。
這很重要
使用這種類型的實例與不受信任的資料存在安全風險。 此物件僅用於受信任的資料。 如需詳細資訊,請參閱 驗證所有輸入。
另請參閱
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognitionEngine
- SpeechRecognizer
- 語音辨識文法規範
適用於
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 使用文法描述的預設根規則。
例外狀況
任何參數都包含無效值。
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 文法描述未定義根規則。
stream 為 null。
串流中沒有有效的描述,也沒有描述包含無法解析的規則參考的文法。
範例
以下範例是從檔案串流載入本地 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 實例:
符合 W3C 語音辨識文法規範(SRGS)版本 1.0 的 XML 格式檔案
已編譯成帶有 .cfg 副檔名的二進位檔案的文法
此建構器會將 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
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())
參數
- ruleName
- String
規則的識別碼可作為語音辨識文法的入口點,或 null 使用文法描述的預設根規則。
例外狀況
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 使用文法描述的預設根規則。
例外狀況
任何參數都包含無效值。
由
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 無法解決或非公開,或 ruleName 和 nullsrgsDocument 不包含根規則。
srgsDocument 為 null。
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建構子。
另請參閱
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- 語音辨識文法規範
適用於
Grammar(Stream, String)
- 來源:
- Grammar.cs
- 來源:
- Grammar.cs
- 來源:
- Grammar.cs
- 來源:
- Grammar.cs
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 文法描述未定義根規則。
stream 為 null。
串流中沒有有效的描述,也沒有描述包含無法解析的規則參考的文法。
範例
以下範例從檔案串流載入本地 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 實例:
符合 W3C 語音辨識文法規範(SRGS)版本 1.0 的 XML 格式檔案
已編譯成帶有 .cfg 副檔名的二進位檔案的文法
此建構器會將 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 包含空字串(“”),或是檔案描述的文法不包含根規則。
path 為 null。
該檔案不包含有效的描述,也沒有描述包含無法解析的規則參考的文法。
範例
以下範例是從本地 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 實例:
符合 W3C 語音辨識文法規範(SRGS)版本 1.0 的 XML 格式檔案
已編譯成帶有 .cfg 副檔名的二進位檔案的文法
此建構器會將 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 不包含根規則。
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 應該包含需要參數的初始化處理器。
A SrgsDocument 可以有根規則。 若要建立 Grammar 指定根規則的物件,請使用 Grammar or Grammar 建構子。
若要從 建立語音辨識GrammarSrgsDocument,並指定一個基礎 URI 以解析相對規則參照,請使用建構子。Grammar
另請參閱
- System.Speech.Recognition.SrgsGrammar
- SrgsDocument
- SpeechRecognizer
- SpeechRecognitionEngine
- 語音辨識文法規範
適用於
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 且文法描述未定義根規則。
path 為 null。
該檔案不包含有效的描述,也沒有描述包含無法解析的規則參考文法。
範例
以下範例從檔案載入本地 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 實例:
符合 W3C 語音辨識文法規範(SRGS)版本 1.0 的 XML 格式檔案
已編譯成帶有 .cfg 副檔名的二進位檔案的文法
此建構器會將 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。 建構子從Grammar該GrammarBuilder物件創造一個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
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 實例:
符合 W3C 語音辨識文法規範(SRGS)版本 1.0 的 XML 格式檔案
已編譯成帶有 .cfg 副檔名的二進位檔案的文法
此建構器會將 XML 格式的文法檔案編譯成二進位格式,以優化語音辨識引擎的載入與使用。 你可以透過事先編譯文法(使用其中一種Grammar方法)來減少從 XML 格式文法建構Compile物件所需的時間。
SRGS 文法可以定義根規則。 若要從串流建立 Grammar 物件並指定根規則,請使用 Grammar or Grammar 建構子。
若要從串流建立Grammar物件並指定一個基礎 URI 以解析相對規則參照,請使用建構子。Grammar