次の方法で共有


GrammarBuilder.AppendRuleReference メソッド

定義

文法ファイルまたは文法規則を文法要素の現在のシーケンスに追加します。

オーバーロード

名前 説明
AppendRuleReference(String)

文法定義ファイルを文法要素の現在のシーケンスに追加します。

AppendRuleReference(String, String)

文法定義ファイルの指定した規則を文法要素の現在のシーケンスに追加します。

注釈

AppendRuleReferenceメソッドは、ファイルから文法ファイルまたは文法規則を追加できます。 これらのメソッドを使用すると、アプリケーションは、事前にデプロイされた文法規則または一般公開されている文法規則を使用できます。 アプリケーションは、指定された文法ファイルの場所への読み取りアクセス権を持っている必要があります。

これらのメソッドは、次の形式から音声認識文法を読み取ることができます。

XML 形式の SRGS 文法ファイルを .cfg 拡張子を持つバイナリ文法ファイルにコンパイルすると、特に文法で多数の単語や語句を認識する必要がある場合に、一致する検索に要する時間を短縮できます。 SRGS 文法を CFG バイナリ形式にコンパイルする方法については、 SrgsGrammarCompilerを参照してください。

AppendRuleReference(String)

ソース:
GrammarBuilder.cs
ソース:
GrammarBuilder.cs
ソース:
GrammarBuilder.cs
ソース:
GrammarBuilder.cs

文法定義ファイルを文法要素の現在のシーケンスに追加します。

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# の例では、ローカルの SRGS ファイル cities.grxml で Cities という名前の規則を使用する音声認識文法を作成します。 cities.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>

注釈

Important

信頼されていないデータでこの型のインスタンスを使用することは、セキュリティ上のリスクです。 このオブジェクトは、信頼できるデータでのみ使用します。 詳細については、「すべての入力を検証する」を参照してください。

path引数によって提供される URI は、ローカルでもリモートでもかまいません。 アプリケーションは、指定された文法ファイルの場所への読み取りアクセス権を持っている必要があります。

W3C 音声認識文法仕様 (SRGS) 表現では、ルート規則を定義できます。 このメソッドは、文法要素の現在のシーケンスに、そのルート規則で始まる文法を追加します。 特定の文法規則を追加するには、 AppendRuleReference メソッドを使用します。

こちらもご覧ください

適用対象

AppendRuleReference(String, String)

ソース:
GrammarBuilder.cs
ソース:
GrammarBuilder.cs
ソース:
GrammarBuilder.cs
ソース:
GrammarBuilder.cs

文法定義ファイルの指定した規則を文法要素の現在のシーケンスに追加します。

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# の例では、ローカルの SRGS ファイル cities.grxml で Cities という名前の規則を使用する音声認識文法を作成します。 cities.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>

注釈

Important

信頼されていないデータでこの型のインスタンスを使用することは、セキュリティ上のリスクです。 このオブジェクトは、信頼できるデータでのみ使用します。 詳細については、「すべての入力を検証する」を参照してください。

path引数によって提供される URI は、ローカルでもリモートでもかまいません。 アプリケーションは、指定された文法ファイルの場所への読み取りアクセス権を持っている必要があります。

AppendRuleReferenceメソッドを使用して、ルート規則で始まる文法ファイルを追加できます。

こちらもご覧ください

適用対象