共用方式為


GrammarBuilder.AppendRuleReference 方法

定義

將文法檔案或文法規則附加至目前的文法項目序列。

多載

AppendRuleReference(String)

將文法定義檔附加至目前的文法項目序列。

AppendRuleReference(String, String)

將指定的文法定義檔規則附加至目前的文法項目序列。

備註

這些 AppendRuleReference 方法可以從檔案附加文法檔或文法規則。 這些方法可讓應用程式使用預先部署或公開可用的文法規則。 應用程式必須具有指定文法檔案位置的讀取權限。

這些方法可以從下列格式讀取語音辨識文法。

使用 .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 方法,從其根規則開始附加文法檔案。

另請參閱

適用於