GrammarBuilder.AppendRuleReference 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將文法檔案或文法規則附加至目前的文法項目序列。
多載
AppendRuleReference(String) |
將文法定義檔附加至目前的文法項目序列。 |
AppendRuleReference(String, String) |
將指定的文法定義檔規則附加至目前的文法項目序列。 |
備註
這些 AppendRuleReference 方法可以從檔案附加文法檔或文法規則。 這些方法可讓應用程式使用預先部署或公開可用的文法規則。 應用程式必須具有指定文法檔案位置的讀取權限。
這些方法可以從下列格式讀取語音辨識文法。
符合 Microsoft 語音辨識文法二進位格式的二進位檔案 ( cfg 副檔名)
使用 .xml 副檔名將 XML 格式的 SRGS 文法檔編譯成二進位文法檔案,可減少搜尋相符的耗用時間,特別是在文法需要辨識大量的單字和片語時。 如需將 SRGS 文法編譯成 CFG 二進位格式的詳細資訊,請參閱 SrgsGrammarCompiler 。
AppendRuleReference(String)
將文法定義檔附加至目前的文法項目序列。
public:
void AppendRuleReference(System::String ^ path);
public void AppendRuleReference (string path);
member this.AppendRuleReference : string -> unit
Public Sub AppendRuleReference (path As String)
參數
- path
- String
檔案的路徑或通用資源識別項 (URI),這個檔案以支援的格式來描述語音辨識文法。
範例
下列 c # 範例會建立語音辨識文法,以使用 Cities
在本機 SRGS 檔案 grxml 中命名的規則。 Grxml 檔案的內容會出現在 c # 程式碼範例下方。
private static Grammar CreateCitiesGrammar1()
{
GrammarBuilder builder = new GrammarBuilder();
builder.AppendRuleReference("file://c:/temp/cities.grxml");
Grammar citiesGrammar = new Grammar(builder);
citiesGrammar.Name = "Cities Grammar 1";
return citiesGrammar;
}
<?xml version="1.0" encoding="UTF-16" ?>
<grammar version="1.0" xml:lang="en-US"
xmlns="http://www.w3.org/2001/06/grammar"
tag-format="semantics/1.0" root="Main">
<!-- cities.grxml:
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>
備註
引數提供的 URI path
可能是本機或遠端。 應用程式必須具有指定文法檔案位置的讀取權限。
W3C 語音辨識文法規格 (SRGS) 標記法可以定義根規則。 這個方法會將文法(開頭為其根規則)附加至目前的文法專案序列。 若要附加特定的文法規則,請使用 AppendRuleReference 方法。
另請參閱
適用於
AppendRuleReference(String, String)
將指定的文法定義檔規則附加至目前的文法項目序列。
public:
void AppendRuleReference(System::String ^ path, System::String ^ rule);
public void AppendRuleReference (string path, string rule);
member this.AppendRuleReference : string * string -> unit
Public Sub AppendRuleReference (path As String, rule As String)
參數
- path
- String
檔案的檔案路徑或通用資源識別項 (URI),這個檔案以支援的格式來描述語音辨識文法。
- rule
- String
要附加之規則的識別項,若要附加文法檔案的預設根規則則為 null
。
範例
下列 c # 範例會建立語音辨識文法,以使用 Cities
在本機 SRGS 檔案 grxml 中命名的規則。 Grxml 檔案的內容會出現在 c # 程式碼範例下方。
private static Grammar CreateCitiesGrammar2()
{
GrammarBuilder builder = new GrammarBuilder();
builder.Append("Does");
builder.AppendRuleReference(@"c:\temp\cities.grxml", "Cities");
builder.Append("have a shuttle");
Grammar citiesGrammar = new Grammar(builder);
citiesGrammar.Name = "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.grxml:
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>
備註
引數提供的 URI path
可能是本機或遠端。 應用程式必須具有指定文法檔案位置的讀取權限。
您可以使用 AppendRuleReference 方法,從其根規則開始附加文法檔案。